From bd0604764ee1b12fde65c90eeb8621e68d0dd251 Mon Sep 17 00:00:00 2001 From: Fredrik Holmqvist Date: Wed, 6 Nov 2013 21:12:36 +0100 Subject: [PATCH] Setup -fno-pic or -fpic in Architecture Rules. EFI boot needs -fpic but all boot code was built with -fno-pic. This is now set accordingly in HAIKU_BOOT_CCFLAGS and HAIKU_BOOT_C++FLAGS. Also setup compile flags for EFI platform. --- build/jam/ArchitectureRules | 3 +++ src/system/boot/Jamfile | 1 - src/system/boot/arch/arm/Jamfile | 2 +- src/system/boot/arch/m68k/Jamfile | 8 ++++---- src/system/boot/loader/Jamfile | 3 --- src/system/boot/loader/file_systems/amiga_ffs/Jamfile | 1 - src/system/boot/loader/file_systems/bfs/Jamfile | 1 - src/system/boot/loader/file_systems/fat/Jamfile | 1 - src/system/boot/loader/file_systems/hfs_plus/Jamfile | 1 - src/system/boot/loader/file_systems/packagefs/Jamfile | 2 -- src/system/boot/loader/file_systems/tarfs/Jamfile | 2 -- src/system/boot/loader/net/Jamfile | 2 -- src/system/boot/platform/amiga_m68k/Jamfile | 2 +- src/system/boot/platform/atari_m68k/Jamfile | 2 +- src/system/boot/platform/bios_ia32/Jamfile | 2 +- src/system/boot/platform/generic/Jamfile | 1 - src/system/boot/platform/pxe_ia32/Jamfile | 2 +- src/system/boot/platform/raspberrypi_arm/Jamfile | 2 +- src/system/boot/platform/u-boot/Jamfile | 2 +- src/system/boot/platform/u-boot/arch/arm/Jamfile | 1 - src/system/boot/platform/u-boot/arch/ppc/Jamfile | 4 ++-- 21 files changed, 16 insertions(+), 29 deletions(-) diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index 0c824c4fdc..c0c35a1375 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -420,6 +420,9 @@ rule KernelArchitectureSetup architecture HAIKU_BOOT_C++FLAGS += -fpic -fno-stack-protector -fPIC -fshort-wchar -mno-red-zone -maccumulate-outgoing-args -Wno-error=unused-variable ; HAIKU_BOOT_LDFLAGS = -Bstatic -Bsymbolic -shared -nostdlib -znocombreloc -nostartfiles ; + } else { + HAIKU_BOOT_CCFLAGS += -fno-pic ; + HAIKU_BOOT_C++FLAGS += -fno-pic ; } # warning flags diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index c8099dfb83..72bb340278 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -47,7 +47,6 @@ BootMergeObject boot_libroot.o : strrchr.c strtol.c $(extraSources) - : -fno-pic ; AddResources haiku_loader : boot_loader.rdef ; diff --git a/src/system/boot/arch/arm/Jamfile b/src/system/boot/arch/arm/Jamfile index bea34280d0..c03776717b 100644 --- a/src/system/boot/arch/arm/Jamfile +++ b/src/system/boot/arch/arm/Jamfile @@ -49,7 +49,7 @@ BootMergeObject boot_arch_$(TARGET_KERNEL_ARCH).o : $(kernelDebugSources) $(librootArchObjects) - : -fno-pic + : : $(kernelLibArchObjects) ; diff --git a/src/system/boot/arch/m68k/Jamfile b/src/system/boot/arch/m68k/Jamfile index 4e3359bded..e6e5b947a6 100644 --- a/src/system/boot/arch/m68k/Jamfile +++ b/src/system/boot/arch/m68k/Jamfile @@ -16,24 +16,24 @@ local kernelLibArchObjects = BootMergeObject boot_arch_$(TARGET_KERNEL_ARCH).o : arch_elf.cpp $(librootArchObjects) - : -fno-pic + : : $(kernelLibArchObjects) ; BootMergeObject boot_arch_m68k_030.o : mmu_030.cpp - : -fno-pic -Wno-unused -mcpu=68030 + : -Wno-unused -mcpu=68030 ; BootMergeObject boot_arch_m68k_040.o : mmu_040.cpp - : -fno-pic -Wno-unused -mcpu=68040 -Wa,-m68040 + : -Wno-unused -mcpu=68040 -Wa,-m68040 ; BootMergeObject boot_arch_m68k_060.o : mmu_060.cpp - : -fno-pic -Wno-unused -mcpu=68060 + : -Wno-unused -mcpu=68060 ; SEARCH on [ FGristFiles arch_elf.cpp ] diff --git a/src/system/boot/loader/Jamfile b/src/system/boot/loader/Jamfile index a44793d93b..2884fe6950 100644 --- a/src/system/boot/loader/Jamfile +++ b/src/system/boot/loader/Jamfile @@ -90,8 +90,6 @@ BootStaticLibrary boot_loader : DataIO.cpp Referenceable.cpp - - : -fno-pic ; # The partition support is built in an extra static library @@ -110,7 +108,6 @@ BootStaticLibrary boot_partitions : intel.cpp PartitionMap.cpp PartitionMapParser.cpp - : -fno-pic ; # Tell Jam where to find the utility sources diff --git a/src/system/boot/loader/file_systems/amiga_ffs/Jamfile b/src/system/boot/loader/file_systems/amiga_ffs/Jamfile index 1b2d8bbc27..ce7ec5e28a 100644 --- a/src/system/boot/loader/file_systems/amiga_ffs/Jamfile +++ b/src/system/boot/loader/file_systems/amiga_ffs/Jamfile @@ -13,5 +13,4 @@ BootStaticLibrary boot_amiga_ffs : Volume.cpp Directory.cpp File.cpp - : -fno-pic ; diff --git a/src/system/boot/loader/file_systems/bfs/Jamfile b/src/system/boot/loader/file_systems/bfs/Jamfile index 25827bdd91..bf31e7578b 100644 --- a/src/system/boot/loader/file_systems/bfs/Jamfile +++ b/src/system/boot/loader/file_systems/bfs/Jamfile @@ -18,7 +18,6 @@ BootStaticLibrary boot_bfs : Stream.cpp BPlusTree.cpp QueryParserUtils.cpp - : -fno-pic ; SEARCH on [ FGristFiles BPlusTree.cpp ] diff --git a/src/system/boot/loader/file_systems/fat/Jamfile b/src/system/boot/loader/file_systems/fat/Jamfile index 52de886b8c..ec1ea39899 100644 --- a/src/system/boot/loader/file_systems/fat/Jamfile +++ b/src/system/boot/loader/file_systems/fat/Jamfile @@ -20,5 +20,4 @@ BootStaticLibrary boot_fatfs : Directory.cpp File.cpp Stream.cpp - : -fno-pic ; diff --git a/src/system/boot/loader/file_systems/hfs_plus/Jamfile b/src/system/boot/loader/file_systems/hfs_plus/Jamfile index 13bbb378ac..9617ab0bb3 100644 --- a/src/system/boot/loader/file_systems/hfs_plus/Jamfile +++ b/src/system/boot/loader/file_systems/hfs_plus/Jamfile @@ -8,5 +8,4 @@ SubDirC++Flags -fno-rtti ; BootStaticLibrary boot_hfs_plus : hfs_plus.cpp - : -fno-pic ; diff --git a/src/system/boot/loader/file_systems/packagefs/Jamfile b/src/system/boot/loader/file_systems/packagefs/Jamfile index 8ef09b5086..d1953b12a9 100644 --- a/src/system/boot/loader/file_systems/packagefs/Jamfile +++ b/src/system/boot/loader/file_systems/packagefs/Jamfile @@ -46,8 +46,6 @@ BootStaticLibrary boot_packagefs : # support kit CompressionAlgorithm.cpp ZlibCompressionAlgorithm.cpp - - : -fno-pic ; Includes [ FGristFiles ZlibCompressionAlgorithm.cpp ] diff --git a/src/system/boot/loader/file_systems/tarfs/Jamfile b/src/system/boot/loader/file_systems/tarfs/Jamfile index 8d1c40b916..c0dda86520 100644 --- a/src/system/boot/loader/file_systems/tarfs/Jamfile +++ b/src/system/boot/loader/file_systems/tarfs/Jamfile @@ -29,7 +29,6 @@ Depends [ FGristFiles $(zlibSources) ] BootStaticLibrary boot_zlib : $(zlibSources) - : -fno-pic ; @@ -41,5 +40,4 @@ Includes [ FGristFiles tarfs.cpp ] : [ BuildFeatureAttribute zlib : sources ] ; BootStaticLibrary boot_tarfs : tarfs.cpp - : -fno-pic ; diff --git a/src/system/boot/loader/net/Jamfile b/src/system/boot/loader/net/Jamfile index 5bb8291a3f..a06a45a80b 100644 --- a/src/system/boot/loader/net/Jamfile +++ b/src/system/boot/loader/net/Jamfile @@ -23,6 +23,4 @@ BootStaticLibrary boot_net : UDP.cpp $(tcp) $(iscsi) - - : -fno-pic ; diff --git a/src/system/boot/platform/amiga_m68k/Jamfile b/src/system/boot/platform/amiga_m68k/Jamfile index b867ef7f6f..e923167fe0 100644 --- a/src/system/boot/platform/amiga_m68k/Jamfile +++ b/src/system/boot/platform/amiga_m68k/Jamfile @@ -49,7 +49,7 @@ BootMergeObject boot_platform_amiga_m68k_other.o : #decode_edid.c #dump_edid.c - : -fno-pic #-Wa,--pcrel + : #-Wa,--pcrel : boot_platform_generic.a ; diff --git a/src/system/boot/platform/atari_m68k/Jamfile b/src/system/boot/platform/atari_m68k/Jamfile index e8eb76030b..0332881c8c 100644 --- a/src/system/boot/platform/atari_m68k/Jamfile +++ b/src/system/boot/platform/atari_m68k/Jamfile @@ -54,7 +54,7 @@ BootMergeObject boot_platform_atari_m68k_other.o : #decode_edid.c #dump_edid.c - : -fno-pic #-Wa,--pcrel + : #-Wa,--pcrel : boot_platform_generic.a ; diff --git a/src/system/boot/platform/bios_ia32/Jamfile b/src/system/boot/platform/bios_ia32/Jamfile index 934ddc0f0b..3f573c0ae3 100644 --- a/src/system/boot/platform/bios_ia32/Jamfile +++ b/src/system/boot/platform/bios_ia32/Jamfile @@ -47,7 +47,7 @@ BootMergeObject boot_platform_bios_ia32.o : decode_edid.c dump_edid.c - : -fno-pic + : : boot_platform_generic.a ; diff --git a/src/system/boot/platform/generic/Jamfile b/src/system/boot/platform/generic/Jamfile index 0ffd7b2cb5..758d9a83ee 100644 --- a/src/system/boot/platform/generic/Jamfile +++ b/src/system/boot/platform/generic/Jamfile @@ -9,7 +9,6 @@ BootStaticLibrary boot_platform_generic : text_menu.cpp video_blit.cpp video_splash.cpp - : -fno-pic ; Includes [ FGristFiles video_splash.cpp ] diff --git a/src/system/boot/platform/pxe_ia32/Jamfile b/src/system/boot/platform/pxe_ia32/Jamfile index 7adb3072ec..74d51b85ec 100644 --- a/src/system/boot/platform/pxe_ia32/Jamfile +++ b/src/system/boot/platform/pxe_ia32/Jamfile @@ -57,7 +57,7 @@ BootMergeObject boot_platform_pxe_ia32.o : $(bios_ia32_src) $(bios_ia32_edid_src) - : -fno-pic + : : boot_platform_generic.a ; diff --git a/src/system/boot/platform/raspberrypi_arm/Jamfile b/src/system/boot/platform/raspberrypi_arm/Jamfile index bd6a8abb0f..d9a102d80d 100644 --- a/src/system/boot/platform/raspberrypi_arm/Jamfile +++ b/src/system/boot/platform/raspberrypi_arm/Jamfile @@ -40,7 +40,7 @@ BootMergeObject boot_platform_raspberrypi_arm.o : arch_framebuffer_bcm2835.cpp $(genericPlatformSources) - : -fno-pic + : : boot_platform_generic.a ; diff --git a/src/system/boot/platform/u-boot/Jamfile b/src/system/boot/platform/u-boot/Jamfile index a2e84e18a5..52aed326fc 100644 --- a/src/system/boot/platform/u-boot/Jamfile +++ b/src/system/boot/platform/u-boot/Jamfile @@ -59,7 +59,7 @@ BootMergeObject boot_platform_u-boot_common.o : $(libFDTSources) - : -fno-pic + : : boot_platform_generic.a ; diff --git a/src/system/boot/platform/u-boot/arch/arm/Jamfile b/src/system/boot/platform/u-boot/arch/arm/Jamfile index 7463dc9a49..8a7939a5f1 100644 --- a/src/system/boot/platform/u-boot/arch/arm/Jamfile +++ b/src/system/boot/platform/u-boot/arch/arm/Jamfile @@ -16,7 +16,6 @@ BootMergeObject boot_platform_u-boot_arm.o : shell.S arch_mailbox.cpp - : -fno-pic ; #SEARCH on [ FGristFiles arch_cpu_asm.S ] diff --git a/src/system/boot/platform/u-boot/arch/ppc/Jamfile b/src/system/boot/platform/u-boot/arch/ppc/Jamfile index 639e56fd35..d7dbefb5d2 100644 --- a/src/system/boot/platform/u-boot/arch/ppc/Jamfile +++ b/src/system/boot/platform/u-boot/arch/ppc/Jamfile @@ -12,7 +12,7 @@ SubDirC++Flags -fno-rtti ; BootMergeObject boot_platform_u-boot_ppc_amcc440.o : arch_mmu_amcc440.cpp - : -fno-pic -mcpu=440 + : -mcpu=440 ; BootMergeObject boot_platform_u-boot_ppc.o : @@ -24,7 +24,7 @@ BootMergeObject boot_platform_u-boot_ppc.o : arch_start_kernel.S arch_cpu.cpp #mmu.cpp - : -fno-pic + : : boot_platform_u-boot_ppc_amcc440.o ;