From 42e08b4c01c6fdb2e7949c73286c07a5b926231e Mon Sep 17 00:00:00 2001 From: pierre Date: Sat, 5 Dec 2015 11:45:09 +0000 Subject: [PATCH] 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 - --- rtl/linux/Makefile | 174 +++++------------------------------------ rtl/linux/Makefile.fpc | 23 ++++-- 2 files changed, 36 insertions(+), 161 deletions(-) diff --git a/rtl/linux/Makefile b/rtl/linux/Makefile index b2b232c12f..314713bd53 100644 --- a/rtl/linux/Makefile +++ b/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 diff --git a/rtl/linux/Makefile.fpc b/rtl/linux/Makefile.fpc index 1fa48410cc..b8d676419a 100644 --- a/rtl/linux/Makefile.fpc +++ b/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