OpenZFS on Linux and FreeBSD
Go to file
Etienne Dechamps df7cc5bc71 Fake modpost stage for LINUX_COMPILE.
Currently, when building a test case, we're compiling an entire Linux
module from beginning to end. This includes the MODPOST stage, which
generates a "conftest.mod.c" file with some boilerplate module
declaration code.

This poses a problem when configuring for built-in on kernels which have
loadable module support disabled. In this case conftest.mod.c is
referencing disabled code, resulting in a compilation failure, thus
breaking the tests.

This patch fixes the issue by faking the modpost stage when the
--enable-linux-builtin option is provided.  It does so by forcing the
modpost command to be /bin/true, and using an empty conftest.mod.c file.
The test module still compiles fine, although the result isn't loadable,
but we don't really care at this point.

Note it is important to preserve the modpost stage when building out of
tree.  This allows for the posibility of configure checks to leverage
this phase to identify GPL-only symbols.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue zfsonlinux/zfs#851
2012-07-26 15:12:10 -07:00
cmd Cleanly support debug packages 2012-02-27 14:24:22 -08:00
config Fake modpost stage for LINUX_COMPILE. 2012-07-26 15:12:10 -07:00
include Optimize spl_rwsem_is_locked() 2012-07-13 13:07:39 -07:00
lib Cleanly support debug packages 2012-02-27 14:24:22 -08:00
module Fix undefined reference on spl_mutex_spin_max(). 2012-07-26 14:54:53 -07:00
patches Reimplement rwlocks for Linux lock profiling/analysis. 2009-09-18 16:09:47 -07:00
scripts Cleanly support debug packages 2012-02-27 14:24:22 -08:00
.gitignore Ignore unsigned module build products 2010-03-11 14:29:17 -08:00
AUTHORS Public Release Prep 2010-05-17 15:18:00 -07:00
COPYING Public Release Prep 2010-05-17 15:18:00 -07:00
ChangeLog Prep for spl-0.5.0 tag 2010-08-13 09:33:50 -07:00
DISCLAIMER Public Release Prep 2010-05-17 15:18:00 -07:00
INSTALL Public Release Prep 2010-05-17 15:18:00 -07:00
META SPL 0.6.0-rc9 2012-06-14 11:45:59 -07:00
Makefile.am Move spl.release generation to configure step 2012-07-12 12:13:47 -07:00
Makefile.in Don't build packages that haven't been selected. 2012-07-26 14:54:32 -07:00
PKGBUILD-spl-modules.in Add make rule for building Arch Linux packages 2011-12-14 16:44:10 -08:00
PKGBUILD-spl.in Add make rule for building Arch Linux packages 2011-12-14 16:44:10 -08:00
README.markdown Fix markdown rendering 2010-09-15 09:05:34 -07:00
autogen.sh Public Release Prep 2010-05-17 15:18:00 -07:00
configure Fake modpost stage for LINUX_COMPILE. 2012-07-26 15:12:10 -07:00
configure.ac Move spl.release generation to configure step 2012-07-12 12:13:47 -07:00
spl-modules.spec.in Remove Chaos 4.x RPM support 2012-07-02 15:17:08 -07:00
spl.release.in Move spl.release generation to configure step 2012-07-12 12:13:47 -07:00
spl.spec.in Fix rpm dependencies 2012-01-18 11:24:36 -08:00
spl_config.h.in Detect kernels that honor gfp flags passed to vmalloc() 2012-07-11 11:44:27 -07:00

README.markdown

The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of the Solaris kernel APIs. This shim layer makes it possible to run Solaris kernel code in the Linux kernel with relatively minimal modification. This can be particularly useful when you want to track upstream Solaris development closely and dont want the overhead of maintaining a large patch which converts Solaris primitives to Linux primitives.

To build packages for your distribution:

$ ./configure
$ make pkg

Full documentation for building, configuring, and using the SPL can be found at: http://zfsonlinux.org