From c5c787ea417c1a1c9f0fdb7ef3a5b807521f0093 Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Thu, 29 Aug 2013 22:33:01 +0200 Subject: [PATCH] Fix build problems of btrfs and packagefs for x86_64. * Both filesystems used to link to a static kernel-zlib, which was being built with -fno-pic. This doesn't work on x86_64 as the filesystem add-ons are meant to be relocatable, which requires their code to be compiled as position independent. Solve that by moving zlib into the kernel, so any add-on can just use it from there (packagefs is mandatory, so we can't really do without zlib anyway). --- src/add-ons/kernel/file_systems/btrfs/Jamfile | 1 - src/add-ons/kernel/file_systems/packagefs/Jamfile | 4 ++-- src/system/kernel/Jamfile | 2 ++ src/system/kernel/lib/zlib/Jamfile | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/add-ons/kernel/file_systems/btrfs/Jamfile b/src/add-ons/kernel/file_systems/btrfs/Jamfile index dc246b44f9..4cdc5a4cda 100644 --- a/src/add-ons/kernel/file_systems/btrfs/Jamfile +++ b/src/add-ons/kernel/file_systems/btrfs/Jamfile @@ -18,5 +18,4 @@ KernelAddon btrfs : DirectoryIterator.cpp Inode.cpp Volume.cpp - : kernel_libz.a ; diff --git a/src/add-ons/kernel/file_systems/packagefs/Jamfile b/src/add-ons/kernel/file_systems/packagefs/Jamfile index d03b2a8236..ccbc4c51cc 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Jamfile +++ b/src/add-ons/kernel/file_systems/packagefs/Jamfile @@ -6,7 +6,7 @@ UsePrivateKernelHeaders ; UsePrivateHeaders package shared storage ; -local subDirs = +local subDirs = indices nodes package @@ -123,7 +123,7 @@ KernelAddon packagefs $(HAIKU_PACKAGE_FS_PACKAGE_READER_SOURCES_V1) $(libSharedSources) - : $(TARGET_KERNEL_LIBSUPC++) kernel_libz.a + : $(TARGET_KERNEL_LIBSUPC++) ; diff --git a/src/system/kernel/Jamfile b/src/system/kernel/Jamfile index 551317d75b..d22a28bf7d 100644 --- a/src/system/kernel/Jamfile +++ b/src/system/kernel/Jamfile @@ -128,6 +128,7 @@ KernelLd kernel_$(TARGET_ARCH) : kernel_lib_posix.o kernel_lib_posix_arch_$(TARGET_ARCH).o kernel_misc.o + kernel_zlib.o $(TARGET_KERNEL_LIBSUPC++) @@ -170,6 +171,7 @@ if $(HAIKU_ARCH) = x86_64 { kernel_lib_posix.o kernel_lib_posix_arch_$(TARGET_ARCH).o kernel_misc.o + kernel_zlib.o $(TARGET_KERNEL_LIBSUPC++) diff --git a/src/system/kernel/lib/zlib/Jamfile b/src/system/kernel/lib/zlib/Jamfile index 8017d685c0..c41149b950 100644 --- a/src/system/kernel/lib/zlib/Jamfile +++ b/src/system/kernel/lib/zlib/Jamfile @@ -17,7 +17,7 @@ LOCATE on [ FGristFiles $(zlibSources) ] = $(zlibSourceDirectory) ; Depends [ FGristFiles $(zlibSources) ] : [ BuildFeatureAttribute zlib : sources ] ; -KernelStaticLibrary kernel_libz.a : +KernelMergeObject kernel_zlib.o : $(zlibSources) - : -fno-pic + : $(TARGET_KERNEL_PIC_CCFLAGS) ;