Package: fpc / 3.0.4+dfsg-22

fix-units-path-to-be-multi-arch-safe.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
From: Abou Al Montacir <abou.almontacir@sfr.fr>
Date: Sun, 12 Nov 2017 22:24:15 +0100
Description: Change path of unit files to make it support MA co-installation.
 (Closes: Bug#73368)
Bug-Debian: http://bugs.debian.org/73368

diff --git a/fpcsrc/utils/fpcm/fpcmake.ini b/fpcsrc/utils/fpcm/fpcmake.ini
index 313b2807..2f27ade3 100644
--- a/fpcsrc/utils/fpcm/fpcmake.ini
+++ b/fpcsrc/utils/fpcm/fpcmake.ini
@@ -330,6 +330,11 @@ endif
 
 export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 
+ifndef DEB_HOST_MULTIARCH
+DEB_HOST_MULTIARCH=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+endif
+export DEB_HOST_MULTIARCH
+
 [fpmakefpcdetect]
 #####################################################################
 # FPC Binary and Version Detection
@@ -407,7 +412,7 @@ ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
 ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+override FPCDIR=/usr/lib/${DEB_HOST_MULTIARCH}/fpc/$(FPC_VERSION)
 endif
 else
 override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
@@ -635,7 +640,7 @@ endif
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}/fpc/$(FPC_VERSION)
 else
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
 endif
@@ -678,7 +683,7 @@ endif
 # Where to install shared libraries
 ifndef INSTALL_LIBDIR
 ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
+INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
@@ -788,7 +793,7 @@ INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
 
 ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}
 endif
 
 #####################################################################
diff --git a/fpcsrc/packages/fpmkunit/src/fpmkunit.pp b/fpcsrc/packages/fpmkunit/src/fpmkunit.pp
index 1938f2aa..d4125163 100644
--- a/fpcsrc/packages/fpmkunit/src/fpmkunit.pp
+++ b/fpcsrc/packages/fpmkunit/src/fpmkunit.pp
@@ -4410,6 +4410,17 @@ end;
 ****************************************************************************}
 
 procedure TFPCDefaults.CompilerDefaults;
+const
+{$ifdef CPUARMHF}
+  gnu = 'gnueabihf';
+{$endif CPUARMHF}
+{$ifdef CPUARMEL}
+  gnu = 'gnueabi';
+{$endif CPUARMEL}
+{$ifndef CPUARM}
+  gnu = 'gnu';
+{$endif CPUARM}
+  FullTarget = {$I %FPCTARGETCPU%} + '-' + {$I %FPCTARGETOS%} + '-' + gnu;
 var
   BD : String;
 begin
@@ -4420,7 +4431,7 @@ begin
   BD:=FixPath(GetEnvironmentVariable('FPCDIR'), False);
   if BD='' then
     begin
-      BD:='/usr/local/lib/fpc/'+FCompilerVersion;
+      BD:='/usr/lib/' + LowerCase(FullTarget) + '/fpc/'+FCompilerVersion;
       if not DirectoryExists(BD) and
          DirectoryExists('/usr/lib/fpc/'+FCompilerVersion) then
         BD:='/usr/lib/fpc/'+FCompilerVersion;
@@ -4442,7 +4453,7 @@ begin
 
   // Where to find the units by default
   if (FGlobalUnitDir='') then
-    GlobalUnitDir:=IncludeTrailingPathDelimiter(BD)+'units'+PathDelim+Target;
+    GlobalUnitDir:=IncludeTrailingPathDelimiter(BD);
 end;