Change path of unit files to make it support MA co-installation.
authorAbou Al Montacir <abou.almontacir@sfr.fr>
Sun, 12 Nov 2017 21:24:15 +0000 (22:24 +0100)
committerPeter Michael Green <plugwash@debian.org>
Sat, 22 Aug 2020 13:17:07 +0000 (14:17 +0100)
Bug-Debian: http://bugs.debian.org/73368

(Closes: Bug#73368)

Gbp-Pq: Name fix-units-path-to-be-multi-arch-safe.patch

fpcsrc/packages/fpmkunit/src/fpmkunit.pp
fpcsrc/utils/fpcm/fpcmake.ini

index 0bd65c2158b34f82f022e1f20ab10319cb10bb50..24db2699618e5ae993119b1259eff151f406e663 100644 (file)
@@ -4538,6 +4538,9 @@ begin
   BinInstallDir:='';
   LibInstallDir:='';
   ExamplesInstallDir:='';
+  if GlobalUnitDir = '' then begin
+    GlobalUnitDir := FBaseInstallDir;
+  end;
 end;
 
 
@@ -4884,6 +4887,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
@@ -4894,7 +4908,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;
index 2e6518d4eb5374871af4601909d8989ca974eca6..fdd9ccb66d4a0200a6001569aecd74a5d8d29648 100644 (file)
@@ -338,6 +338,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
@@ -415,7 +420,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))))))
@@ -641,7 +646,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
@@ -684,7 +689,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
@@ -794,7 +799,7 @@ INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
 
 ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}
 endif
 
 #####################################################################