X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel;h=d7d52ad07f33b135aff69aaa195d2d758792d998;hb=e833fd4a5c1fc22077c36782070837553f60b258;hp=22a43aaa70d4046cb09e944264f75c75fb68b05b;hpb=c9a913795679c3f5895de8258f31269530c5eaed;p=zfs.git diff --git a/config/kernel b/config/kernel index 22a43aa..d7d52ad 100644 --- a/config/kernel +++ b/config/kernel @@ -1 +1,51 @@ # Default ZFS kernel mode configuration + +# Kernel build make options +KERNELMAKE_PARAMS= +#KERNELMAKE_PARAMS="V=1" # Enable verbose module build + +# Kernel build cpp flags +KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL " +KERNELCPPFLAGS="$KERNELCPPFLAGS -I$splsrc -I$splsrc/include -I$TOPDIR" + +# Minimally required for pread() functionality an other GNU goodness +HOSTCFLAGS="$HOSTCFLAGS -ggdb -O2 -std=c99 -D_GNU_SOURCE -D__EXTENSIONS__ " + +# XXX: Quiet warnings not covered by the gcc-* patches +# XXX: Once all the warnings are resolved these flags should be removed +HOSTCFLAGS="$HOSTCFLAGS -Wno-switch -Wno-unused -Wno-missing-braces -Wno-parentheses " +HOSTCFLAGS="$HOSTCFLAGS -Wno-uninitialized -fno-strict-aliasing " + +# Expected defines not covered by zfs_config.h or spl_config.h +HOSTCFLAGS="$HOSTCFLAGS -DHAVE_SPL -D_POSIX_PTHREAD_SEMANTICS " +HOSTCFLAGS="$HOSTCFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT " +HOSTCFLAGS="$HOSTCFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\" " + +# Expected default include paths additional paths added by Makefiles +HOSTCFLAGS="$HOSTCFLAGS -I$TOPDIR " + +if test "$kernelbuild" != "$kernelsrc"; then + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$kernelbuild" +fi + +# XXX: I really, really hate this... but to ensure the kernel build +# system compiles C files shared between a library and a kernel module, +# we need to ensure each file has a unique make target. To do that +# I'm creating symlinks for each shared file at configure time. It +# may be possible something better can be done in the Makefile but it +# will take some serious investigation and I don't have the time now. + +echo "Creating symlinks for additional make targets" +ln -f -s $LIBDIR/libport/u8_textprep.c $LIBDIR/libport/ku8_textprep.c +ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/kavl.c +ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/uavl.c +ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/knvpair.c +ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/unvpair.c +ln -f -s $LIBDIR/libzcommon/zfs_deleg.c $LIBDIR/libzcommon/kzfs_deleg.c +ln -f -s $LIBDIR/libzcommon/zfs_prop.c $LIBDIR/libzcommon/kzfs_prop.c +ln -f -s $LIBDIR/libzcommon/zprop_common.c $LIBDIR/libzcommon/kzprop_common.c +ln -f -s $LIBDIR/libzcommon/compress.c $LIBDIR/libzcommon/kcompress.c +ln -f -s $LIBDIR/libzcommon/list.c $LIBDIR/libzcommon/klist.c +ln -f -s $LIBDIR/libzcommon/zfs_namecheck.c $LIBDIR/libzcommon/kzfs_namecheck.c +ln -f -s $LIBDIR/libzcommon/zfs_comutil.c $LIBDIR/libzcommon/kzfs_comutil.c +ln -f -s $LIBDIR/libzcommon/zpool_prop.c $LIBDIR/libzcommon/kzpool_prop.c