Browse Source

Set PIC_OPT if -Cg of -fPIC option is used, also use -KPIC for mips and mipsel ASTARGET if PIC_OPT is set

git-svn-id: trunk@32588 -
pierre 9 years ago
parent
commit
42e08b4c01
2 changed files with 36 additions and 161 deletions
  1. 19 155
      rtl/linux/Makefile
  2. 17 6
      rtl/linux/Makefile.fpc

+ 19 - 155
rtl/linux/Makefile

@@ -1,11 +1,11 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-09-05 rev 31523]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-01-04 rev 29399]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-aros x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos i8086-win16 aarch64-linux aarch64-darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
-LIMIT83fs = go32v2 os2 emx watcom msdos win16
+LIMIT83fs = go32v2 os2 emx watcom msdos
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
@@ -185,12 +185,6 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-ifeq ($(SUBARCH),)
-$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
-endif
-override FPCOPT+=-Cp$(SUBARCH)
-endif
 ifeq ($(FULL_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
@@ -532,12 +526,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
 endif
@@ -610,15 +598,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads classes fgl rtlconsts dos cwstring fpcylix
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
 endif
@@ -778,12 +757,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
 endif
@@ -856,15 +829,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -1024,12 +988,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_LOADERS+=$(LOADERS)
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_LOADERS+=$(LOADERS)
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -1102,15 +1060,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override TARGET_LOADERS+=$(LOADERS)
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_LOADERS+=$(LOADERS)
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_LOADERS+=$(LOADERS)
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_LOADERS+=$(LOADERS)
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
@@ -1270,12 +1219,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_RSTS+=math typinfo sysconst rtlconsts
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_RSTS+=math typinfo sysconst rtlconsts
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
@@ -1348,15 +1291,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_RSTS+=math typinfo sysconst rtlconsts
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_RSTS+=math typinfo sysconst rtlconsts
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_RSTS+=math typinfo sysconst rtlconsts
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=syslinux linux
 endif
@@ -1516,12 +1450,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override CLEAN_UNITS+=syslinux linux
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override CLEAN_UNITS+=syslinux linux
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override CLEAN_UNITS+=syslinux linux
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override CLEAN_UNITS+=syslinux linux
 endif
@@ -1594,15 +1522,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override CLEAN_UNITS+=syslinux linux
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override CLEAN_UNITS+=syslinux linux
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override CLEAN_UNITS+=syslinux linux
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override CLEAN_UNITS+=syslinux linux
-endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
@@ -1763,12 +1682,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
@@ -1841,15 +1754,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
@@ -2009,12 +1913,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
@@ -2087,15 +1985,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
-endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -2255,12 +2144,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override COMPILER_TARGETDIR+=.
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),x86_64-aros)
-override COMPILER_TARGETDIR+=.
-endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
 override COMPILER_TARGETDIR+=.
 endif
@@ -2333,15 +2216,6 @@ endif
 ifeq ($(FULL_TARGET),i8086-msdos)
 override COMPILER_TARGETDIR+=.
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),aarch64-linux)
-override COMPILER_TARGETDIR+=.
-endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
-override COMPILER_TARGETDIR+=.
-endif
 override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors  classes fgl sysconst rtlconsts types
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -2738,16 +2612,6 @@ STATICLIBPREFIX=
 STATICLIBEXT=.a
 SHORTSUFFIX=d16
 endif
-ifeq ($(OS_TARGET),embedded)
-EXEEXT=.bin
-SHORTSUFFIX=emb
-endif
-ifeq ($(OS_TARGET),win16)
-STATICLIBPREFIX=
-STATICLIBEXT=.a
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w16
-endif
 ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
 FPCMADE=fpcmade.$(SHORTSUFFIX)
 ZIPSUFFIX=$(SHORTSUFFIX)
@@ -3014,7 +2878,6 @@ endif
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
-override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
@@ -3027,7 +2890,6 @@ endif
 ifndef CROSSCOMPILE
 ifneq ($(BINUTILSPREFIX),)
 override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
-override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
 endif
 endif
 ifdef UNITDIR
@@ -3127,9 +2989,6 @@ endif
 ifdef OPT
 override FPCOPT+=$(OPT)
 endif
-ifdef FPMAKEBUILDOPT
-override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
-endif
 ifdef FPCOPTDEF
 override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
 endif
@@ -3338,7 +3197,7 @@ endif
 fpc_sourceinstall: distclean
 	$(MKDIR) $(INSTALL_SOURCEDIR)
 	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
 ifdef HASEXAMPLES
 	$(MKDIR) $(INSTALL_EXAMPLEDIR)
 endif
@@ -3424,10 +3283,6 @@ endif
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
-ifdef LOCALFPMAKEBIN
-	-$(DEL) $(LOCALFPMAKEBIN)
-	-$(DEL) $(FPMAKEBINOBJ)
-endif
 fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
@@ -3565,6 +3420,12 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+ifneq ($(findstring -Cg ,$(COMPILER)),)
+  PIC_OPT=1
+endif
+ifneq ($(findstring -fPIC ,$(COMPILER)),)
+  PIC_OPT=1
+endif
 ifeq ($(ARCH),i386)
   ASTARGET=--32
 endif
@@ -3575,18 +3436,21 @@ ifeq ($(ARCH),powerpc64)
   ASTARGET=-a64
 endif
 ifeq ($(ARCH),mips)
-  ASTARGET=-32 -mips32 -EB
+  ASTARGET=-32 -mabi=32 -mips2 -EB
+  ifeq ($(PIC_OPT),1)
+    ASTARGET+= -KPIC
+  endif
   ASSHAREDOPT=-KPIC
 endif
 ifeq ($(ARCH),mipsel)
-  ASTARGET=-32 -mips32 -EL
+  ASTARGET=-32 -mabi=32 -mips2 -EL
+  ifeq ($(PIC_OPT),1)
+    ASTARGET+= -KPIC
+  endif
   ASSHAREDOPT=-KPIC
 endif
 ifeq ($(ARCH),sparc)
-  ifneq ($(findstring -Cg ,$(COMPILER)),)
-    ASTARGET+=-K PIC --defsym PIC=1
-  endif
-  ifneq ($(findstring -fPIC ,$(COMPILER)),)
+  ifeq ($(PIC_OPT),1)
     ASTARGET+=-K PIC --defsym PIC=1
   endif
 endif

+ 17 - 6
rtl/linux/Makefile.fpc

@@ -125,6 +125,14 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 # Put $(SYSTEMUNIT) unit dependencies together.
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
+# Set PIC_OPT to 1 if -Cg or -fPIC is used
+ifneq ($(findstring -Cg ,$(COMPILER)),)
+  PIC_OPT=1
+endif
+ifneq ($(findstring -fPIC ,$(COMPILER)),)
+  PIC_OPT=1
+endif
+
 # Select 32/64 mode
 ifeq ($(ARCH),i386)
   ASTARGET=--32
@@ -137,19 +145,22 @@ ifeq ($(ARCH),powerpc64)
 endif
 # Select 32/64 mode
 ifeq ($(ARCH),mips)
-  ASTARGET=-32 -mips32 -EB
+  ASTARGET=-32 -mabi=32 -mips2 -EB
+  ifeq ($(PIC_OPT),1)
+    ASTARGET+= -KPIC
+  endif
   ASSHAREDOPT=-KPIC
 endif
 ifeq ($(ARCH),mipsel)
-  ASTARGET=-32 -mips32 -EL
+  ASTARGET=-32 -mabi=32 -mips2 -EL
+  ifeq ($(PIC_OPT),1)
+    ASTARGET+= -KPIC
+  endif
   ASSHAREDOPT=-KPIC
 endif
 
 ifeq ($(ARCH),sparc)
-  ifneq ($(findstring -Cg ,$(COMPILER)),)
-    ASTARGET+=-K PIC --defsym PIC=1
-  endif
-  ifneq ($(findstring -fPIC ,$(COMPILER)),)
+  ifeq ($(PIC_OPT),1)
     ASTARGET+=-K PIC --defsym PIC=1
   endif
 endif