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).
This commit is contained in:
@@ -18,5 +18,4 @@ KernelAddon btrfs :
|
||||
DirectoryIterator.cpp
|
||||
Inode.cpp
|
||||
Volume.cpp
|
||||
: kernel_libz.a
|
||||
;
|
||||
|
||||
@@ -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++)
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -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++)
|
||||
|
||||
|
||||
@@ -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)
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user