Refresh zfs-branch
This commit is contained in:
parent
9364d361b8
commit
9baaa468ac
|
@ -0,0 +1,4 @@
|
|||
Brian Behlendorf <behlendorf1@llnl.gov>,
|
||||
Herb Wartens <wartens2@llnl.gov>,
|
||||
Jim Garlick <garlick@llnl.gov>,
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
|
@ -0,0 +1,114 @@
|
|||
2008-11-19 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.4.0
|
||||
|
||||
* : ZFS project migrated from Subversion which leveraged a
|
||||
quilt based patch stack to Git and a TopGit managed patch
|
||||
stack. The new method treats all patches as Git branches
|
||||
which can be more easily shared for distributed development.
|
||||
Consult the top level GIT file for detailed information on
|
||||
how to properly develop for this package using Git+TopGit.
|
||||
|
||||
2008-11-12 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.3.4
|
||||
|
||||
* zfs-07-create-dev-zfs.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Make libzfs create /dev/zfs if it doesn't exist.
|
||||
|
||||
* zfs-05-check-zvol-size.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Properly check zvol size under Linux.
|
||||
|
||||
* zfs-04-no-openat-fdopendir.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Do not use openat() and fdopendir() since they are not available
|
||||
on older systems.
|
||||
|
||||
* zfs-03-fix-bio-sync.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Fix memory corruption in RHEL4 due to synchronous IO becoming
|
||||
asynchronous.
|
||||
|
||||
2008-11-06 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* zfs-02-zpios-fix-stuck-thread-memleak.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Fix stuck threads and memory leaks when errors occur while writing.
|
||||
|
||||
* zfs-01-zpios-arg-corruption.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Fix zpios cmd line argument corruption problem.
|
||||
|
||||
* zfs-00-minor-fixes.patch:
|
||||
Ricardo M. Correia <Ricardo.M.Correia@sun.com>
|
||||
- Minor build system improvements
|
||||
- Minor script improvements
|
||||
- Create a full copy and not a link tree with quilt
|
||||
- KPIOS_MAJOR changed from 231 to 232
|
||||
- BIO_RW_BARRIER flag removed from IO request
|
||||
|
||||
2008-06-30 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.3.3
|
||||
|
||||
* : Minor script updates and tweaks to be compatible with
|
||||
the latest version of the SPL.
|
||||
|
||||
2008-06-13 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* vdev_disk.diff: Replace vdev_disk implementation which was
|
||||
based on the kmalloc'ed logical address space with a version
|
||||
which works with vmalloc'ed memory in the virtual address space.
|
||||
This was done to support the new SPL slab implementation which
|
||||
is based on virtual addresses to avoid the need for contigeously
|
||||
allocated memory.
|
||||
|
||||
2008-06-05 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* arc-vm-integration.diff: Reduce maximum default arc memory
|
||||
usage to 1/4 of total system memory. Because all the bulk data
|
||||
is still allocated on the slab memory fragmentation is a serious
|
||||
concern. To address this in the short term we simply need to
|
||||
leave lots of free memory.
|
||||
|
||||
* fix-stack.diff: First step towards reducing stack usage so
|
||||
we can run the full ZFS stack using a stock kernel.
|
||||
|
||||
2008-06-04 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.3.2
|
||||
|
||||
* : Extensive improvements to the build system to detect kernel
|
||||
API changes so we can flexibly build with a wider range of kernel
|
||||
versions. The code has now been testing with the 2.6.18-32chaos
|
||||
and 2.6.25.3-18.fc9 kernels, however we should also be compatible
|
||||
with other kernels in the range of 2.6.18-2.6.25. The only
|
||||
remaining issue preventing us from running with a stock
|
||||
kernel is ZFS stack usage.
|
||||
|
||||
2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.3.1
|
||||
|
||||
* : License headers including URCL added for release.
|
||||
|
||||
2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Tag zfs-0.3.0
|
||||
|
||||
* configure.ac: Improved autotools support and configurable debug.
|
||||
|
||||
2008-05-15 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : Updating original ZFS sources to build 89 which
|
||||
includes the new write throttling changes plus support
|
||||
for using ZFS as your root device. Neither of which
|
||||
will work exactly right without some more work but this
|
||||
gets us much closers to the latest source.
|
||||
|
||||
|
||||
2008-02-28 Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
|
||||
* : First attempt based on SPL module and zfs-lustre sources
|
|
@ -0,0 +1,186 @@
|
|||
=========================== WHY USE GIT+TOPGIT? ==========================
|
||||
|
||||
Three major concerns were on our mind when setting up this project.
|
||||
|
||||
o First we needed to structure the project in such a way that it would be
|
||||
easy to rebase all of our changes on the latest official ZFS release
|
||||
from Sun. We absolutely need to be able to benefit from the upstream
|
||||
improvements and not get locked in to an old version of the code base.
|
||||
|
||||
o Secondly, we wanted to be able to easily manage our changes in terms
|
||||
of a patch stack or graph. This allows us to easily isolate specific
|
||||
changes and push them upstream for inclusion. It also allows us to
|
||||
easily update or drop specific changes based on what occurs upstream.
|
||||
|
||||
o Thirdly we needed our DVCS to be integrated with the management of this
|
||||
patch stack or graph. We have tried other methods in the past such as
|
||||
SVN+Quilt but have found managing the patch stack becomes cumbersome.
|
||||
By using Git+TopGit to more tightly integrate our patches in to the repo
|
||||
we expect several benefits. One of the most important will be the
|
||||
ability to easily work on the patch's with a distributed development
|
||||
team, additionally the repo can track patch history, and we can utilize
|
||||
Git to merge patches and resolve conflicts.
|
||||
|
||||
TopGit is designed to specifically address these concerns by providing
|
||||
tools to simplify the handling of large numbers of interdependent topic
|
||||
branches. When using a TopGit aware repo every topic branch represents
|
||||
a 'patch' and that branch references its dependent branches. The union
|
||||
of all these branches is your final source base.
|
||||
|
||||
========================= SETTING UP GIT+TOPGIT ==========================
|
||||
|
||||
First off you need to install a Git package on your system. For my
|
||||
purposes I have been working on a RHEL5 system with git version 1.5.4.5
|
||||
installed and it has been working well. You will also need to go get
|
||||
the latest version of TopGit which likely is not packaged nicely so you
|
||||
will need to build it from source. You can use Git to clone TopGit
|
||||
from the official site here and your all set:
|
||||
|
||||
> git clone git://repo.or.cz/w/topgit.git
|
||||
> make
|
||||
> make install # Default installs to $(HOME)
|
||||
|
||||
========================== TOPGIT AND ZFS ================================
|
||||
|
||||
One you have Git and TopGit installed you will want to clone a copy of
|
||||
the Linux ZFS repo. While this project does not yet have a public home
|
||||
it hopefully will some day. In the meanwhile if you have VPN access to
|
||||
LLNL you can clone the latest official repo here. Cloning a TopGit
|
||||
controlled repo is very similar to cloning a normal Git repo, but you
|
||||
need to remember to use 'tg remote' to populate all topic branches.
|
||||
|
||||
> git clone http://eris.llnl.gov/git/zfs.git zfs
|
||||
> cd zfs
|
||||
> tg remote --populate origin
|
||||
|
||||
Now that you have the Linux ZFS repo the first thing you will probably
|
||||
want to do is have a look at all the topic branches. TopGit provides
|
||||
a summary command which shows all the branches and a brief summary for
|
||||
each branch obtained from the .topmsg files.
|
||||
|
||||
> tg summary
|
||||
0 feature-branch [PATCH] feature-branch
|
||||
feature-commit-cb [PATCH] feature commit cb
|
||||
feature-zap-cursor-to-key [PATCH] feature zap cursor to key
|
||||
...
|
||||
|
||||
By convention all TopGit branches are usually prefixed with 't/', however
|
||||
I have chosen not to do this for simplicity. A different convention I have
|
||||
adopted is to tag the top most TopGit branch as 'top' for easy reference.
|
||||
This provides a consistent label to be used when you need to reference the
|
||||
branch which contains the union of all topic branches.
|
||||
|
||||
One thing you may also notice about the 'tg summary' command is it does
|
||||
not show the branches in dependent order. This is done because TopGit allows
|
||||
each branch to express multiple dependencies as a DAC. Initially this seemed
|
||||
like an added complication which I planned to avoid by just implementing a
|
||||
stack using the graph. However, this ended up being problematic because
|
||||
with a stack when a change was made to a branch near the base, it was a
|
||||
very expensive operation to merge the change up to the top of the stack.
|
||||
By defining the dependencies as a graph it is possible to keep the depth
|
||||
much shallower thus minimizing the merging. It has also proved insightful
|
||||
as to each patches actual dependencies.
|
||||
|
||||
To see the dependencies you will need to use the --graphviz option and pipe
|
||||
the result to dot for display. The following command works fairly well for
|
||||
me. Longer term it would be nice to update this option to use a preferred
|
||||
config options stored in the repo.
|
||||
|
||||
> tg summary --graphviz | dot -Txlib -Nfontsize=8
|
||||
|
||||
========================= UPDATING A TOPIC BRANCH ========================
|
||||
|
||||
Updating a topic branch in TopGit is a pretty straight forward but there
|
||||
are a few rules you need to be aware of. The basic process involves
|
||||
checking out the relevant topic branch where the changes need to be made,
|
||||
making the changes, committing the changes to the branch and then merging
|
||||
those changes in to dependent branches. TopGit provides some tools to make
|
||||
this pretty easy, although it may be a little sluggish depending on how many
|
||||
dependent branches are impacted by the change. Here is an example:
|
||||
|
||||
> git checkout modify-topic-branch # Checkout the proper branch
|
||||
> ...update branch... # Update the branch
|
||||
> git commit -a # Commit your changes
|
||||
> git checkout top # Checkout the top branch
|
||||
> tg update # Recursively merge in new branch
|
||||
|
||||
Assuming you change does not introduce any conflicts your done. All branches
|
||||
were dependent on your change will have had the changed merged in. If your
|
||||
change introduced a conflict you will need to resolve the conflict and then
|
||||
continue on with the update.
|
||||
|
||||
========================== ADDING A TOPIC BRANCH =========================
|
||||
|
||||
Adding a topic branch in TopGit can be pretty straight forward. If your
|
||||
adding a non-conflicting patch in parallel with other patches of the same
|
||||
type, then things are pretty easy and TopGit does all the work.
|
||||
|
||||
> git co existing-topic-branch # Checkout the branch to add after
|
||||
> tg create new-topic-branch # Create a new topic branch
|
||||
> ...update .topmsg... # Update the branch message
|
||||
> ...create patch... # Update with your changes
|
||||
> git commit -a # Commit your changes
|
||||
> git co dependent-topic-branch # Checkout dependent branch
|
||||
> tg depend add new-topic-branch # Update dependencies
|
||||
> git checkout top # Checkout the top branch
|
||||
> tg update # Recursively merge in new branch
|
||||
|
||||
If you need to add your patch in series with another change things are
|
||||
a little more complicated. In this case TopGit does not yet support removing
|
||||
dependencies so you will need to do it by hand, as follows.
|
||||
|
||||
> git co existing-topic-branch # Checkout the branch to add after
|
||||
> tg create new-topic-branch # Create a new topic branch
|
||||
> ...update .topmsg... # Update the branch message
|
||||
> ...create patch... # Update with your changes
|
||||
> git commit -a # Commit your changes
|
||||
> git co dependent-topic-branch # Checkout dependent branch
|
||||
> ...update .topdeps... # Manually update dependencies
|
||||
> git commit -a # Commit your changes
|
||||
> tg update # TopGit update
|
||||
> git checkout top # Checkout the top branch
|
||||
> tg update # Recursively merge in new branch
|
||||
|
||||
Once your done, I find it is a good idea view the repo using the
|
||||
'tg summary --graphviz' command and verify the updated dependency graph.
|
||||
|
||||
========================= REMOVING A TOPIC BRANCH ========================
|
||||
|
||||
Removing a topic branch in TopGit is also currently not very easy. To remove
|
||||
a dependent branch the basic process is to commit a patch which reverts all
|
||||
changes on the branch. Then that reversion must be merged in to all dependent
|
||||
branches, the dependencies manually updated and finally the branch removed.
|
||||
If the branch is not empty you will not be able to remove it.
|
||||
|
||||
> git co delete-topic-branch # Checkout the branch to delete
|
||||
> tg patch | patch -R -p1 # Revert all branch changes
|
||||
> git commit -a # Commit your changes
|
||||
> git checkout top # Checkout the top branch
|
||||
> tg update # Recursively merge revert
|
||||
> git co dependent-topic-branch # Checkout dependent branch
|
||||
> ...update .topdeps... # Manually update dependencies
|
||||
> git commit -a # Commit your changes
|
||||
> tg delete delete-topic-branch # Delete empty topic branch
|
||||
|
||||
Once your done, I find it is a good idea view the repo using the
|
||||
'tg summary --graphviz' command and verify the updated dependency graph.
|
||||
|
||||
============================ TOPGIT TODO =================================
|
||||
|
||||
TopGit is still a young package which seems to be under active development
|
||||
by its author. It provides the minimum set of commands needed but there
|
||||
are clearly areas which simply have not yet been implemented. My short
|
||||
list of features includes:
|
||||
|
||||
o 'tg summary --deps', option to display a text version of the topic
|
||||
branch dependency DAC.
|
||||
|
||||
o 'tg depend list', list all topic branch dependencies.
|
||||
|
||||
o 'tg depend delete', cleanly remove a topic branch dependency.
|
||||
|
||||
o 'tg create', cleanly insert a topic branch in the middle
|
||||
of the graph and properly take care updating all dependencies.
|
||||
|
||||
o 'tg delete', cleanly delete a topic branch in the middle
|
||||
of the graph and properly take care updating all dependencies.
|
|
@ -0,0 +1,6 @@
|
|||
Meta: 1
|
||||
Name: zfs
|
||||
Branch: 1.0
|
||||
Version: 0.4.0
|
||||
Release: 1
|
||||
Release-Tags: relext
|
|
@ -0,0 +1,25 @@
|
|||
AUTOMAKE_OPTIONS = foreign dist-zip
|
||||
|
||||
SUBDIRS = doc scripts $(BUILDDIR)
|
||||
CONFIG_CLEAN_FILES = aclocal.m4 config.guess config.sub
|
||||
CONFIG_CLEAN_FILES += depcomp missing mkinstalldirs
|
||||
EXTRA_DIST = autogen.sh
|
||||
|
||||
.PHONY: quilt
|
||||
quilt: .quilt-$(BUILDDIR)
|
||||
autogen: .autogen-$(BUILDDIR)
|
||||
config: .config-$(BUILDDIR)
|
||||
.quilt-$(BUILDDIR):
|
||||
./scripts/quilt.sh -p $(NAME) -b $(BUILDDIR) -s $(SERIESFILE) -d $(PATCHDIR)
|
||||
echo $(BUILDDIR) >$@
|
||||
|
||||
unquilt:
|
||||
rm -rf $(BUILDDIR)
|
||||
rm -f .quilt-$(BUILDDIR)
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean: unquilt
|
||||
|
||||
rpms: dist Makefile
|
||||
rpmbuild -ta $(distdir).tar.gz
|
|
@ -0,0 +1,74 @@
|
|||
============================ ZFS KERNEL BUILD ============================
|
||||
|
||||
1) Build the SPL (Solaris Porting Layer) module which is designed to
|
||||
provide many Solaris APIs in the Linux kernel which are needed
|
||||
by ZFS. To build the SPL:
|
||||
|
||||
tar -xzf spl-x.y.z.tgz
|
||||
cd spl-x.y.z
|
||||
./configure --with-linux=<kernel src>
|
||||
make
|
||||
make check <as root>
|
||||
|
||||
2) Build ZFS, this port is based on build 89 of ZFS from OpenSolaris.
|
||||
You will need to have both the kernel and SPL source available.
|
||||
To build ZFS for use as a Linux kernel module (default):
|
||||
|
||||
tar -xzf zfs-x.y.z.tgz
|
||||
cd zfs-x.y.z
|
||||
./configure --with-linux=<kernel src> \
|
||||
--with-spl=<spl src>
|
||||
make
|
||||
make check <as root>
|
||||
|
||||
========================= ZFS USER LIBRARY BUILD =========================
|
||||
|
||||
1) Build ZFS, this port is based on build 89 of ZFS from OpenSolaris.
|
||||
To build ZFS as a userspace library:
|
||||
|
||||
tar -xzf zfs-x.y.z.tgz
|
||||
cd zfs-x.y.z
|
||||
./configure --zfsconfig=user
|
||||
make
|
||||
make check <as root>
|
||||
|
||||
============================ ZFS LUSTRE BUILD ============================
|
||||
|
||||
1) Build the SPL (Solaris Porting Layer) module which is designed to
|
||||
provide many Solaris APIs in the Linux kernel which are needed
|
||||
by ZFS. To build the SPL:
|
||||
|
||||
tar -xzf spl-x.y.z.tgz
|
||||
cd spl-x.y.z
|
||||
./configure --with-linux=<kernel src>
|
||||
make
|
||||
make check <as root>
|
||||
|
||||
2) Build ZFS, this port is based on build 89 of ZFS from OpenSolaris.
|
||||
To build ZFS as a userspace library for use by a Lustre filesystem:
|
||||
|
||||
tar -xzf zfs-x.y.z.tgz
|
||||
cd zfs-x.y.z
|
||||
./configure --zfsconfig=lustre \
|
||||
--with-linux=<kernel src> \
|
||||
--with-spl=<spl src>
|
||||
make
|
||||
make check <as root>
|
||||
|
||||
3) Provided is an in-kernel test application called zpios which can be
|
||||
used to simulate a Lustre IO load. It may be used as a stress test
|
||||
or as a performance to measure your configuration. To simplify testing
|
||||
there are scripts provided in the scripts/ directory. A single test
|
||||
can be run as follows:
|
||||
|
||||
WARNING: You MUST update DEVICES in the create-zpool.sh script
|
||||
to reference the devices you wish to use.
|
||||
|
||||
cd scripts
|
||||
./load-zfs.sh # Load the ZFS/SPL module stack
|
||||
./create-zpool.sh # Modify DEVICES to list your zpool devices
|
||||
./zpios.sh # Modify for your particular zpios test
|
||||
./unload-zfs.sh # Unload the ZFS/SPL module stack
|
||||
|
||||
Enjoy,
|
||||
Brian Behlendorf <behlendorf1@llnl.gov>
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
aclocal -I config &&
|
||||
libtoolize --automake --copy
|
||||
autoheader &&
|
||||
automake --add-missing --include-deps 2>/dev/null
|
||||
autoconf
|
||||
rm -rf autom4te.cache aclocal.m4
|
|
@ -0,0 +1 @@
|
|||
obj-m := conftest.o
|
|
@ -0,0 +1,3 @@
|
|||
EXTRA_DIST = zfs-build.m4
|
||||
EXTRA_DIST = kernel user lustre
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
dnl #
|
||||
dnl # Default ZFS kernel configuration
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
||||
dnl # Kernel build make options
|
||||
dnl # KERNELMAKE_PARAMS="V=1" # Enable verbose module build
|
||||
KERNELMAKE_PARAMS=
|
||||
|
||||
dnl # Kernel build cpp flags
|
||||
KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL "
|
||||
KERNELCPPFLAGS="$KERNELCPPFLAGS -I$splsrc -I$splsrc/include -I$TOPDIR"
|
||||
|
||||
dnl # Required for pread() functionality an other GNU goodness
|
||||
HOSTCFLAGS="$HOSTCFLAGS -ggdb -O2 -std=c99 "
|
||||
HOSTCFLAGS="$HOSTCFLAGS -D_GNU_SOURCE -D__EXTENSIONS__ "
|
||||
|
||||
dnl # XXX: Quiet warnings not covered by the gcc-* patches
|
||||
dnl # XXX: Remove once all the warnings are resolved
|
||||
HOSTCFLAGS="$HOSTCFLAGS -Wno-switch -Wno-unused -Wno-missing-braces "
|
||||
HOSTCFLAGS="$HOSTCFLAGS -Wno-parentheses "
|
||||
HOSTCFLAGS="$HOSTCFLAGS -Wno-uninitialized -fno-strict-aliasing "
|
||||
|
||||
dnl # 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 "
|
||||
HOSTCFLAGS="$HOSTCFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT "
|
||||
HOSTCFLAGS="$HOSTCFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\" "
|
||||
|
||||
dnl # Expected default include path
|
||||
HOSTCFLAGS="$HOSTCFLAGS -I$TOPDIR "
|
||||
|
||||
if test "$kernelbuild" != "$kernelsrc"; then
|
||||
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$kernelbuild"
|
||||
fi
|
||||
|
||||
AC_SUBST(KERNELMAKE_PARAMS)
|
||||
AC_SUBST(KERNELCPPFLAGS)
|
||||
AC_SUBST(HOSTCFLAGS)
|
||||
|
||||
dnl # XXX: I really, really hate this... but to ensure the kernel
|
||||
dnl # build system compiles C files shared between a library and a
|
||||
dnl # kernel module, we need to ensure each file has a unique make
|
||||
dnl # target. To do that I'm creating symlinks for each shared
|
||||
dnl # file at configure time. It may be possible something better
|
||||
dnl # can be done in the Makefile but it will take some serious
|
||||
dnl # investigation and I don't have the time now.
|
||||
|
||||
echo "creating symlinks for additional kernel 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
|
||||
])
|
|
@ -0,0 +1,4 @@
|
|||
dnl #
|
||||
dnl # Default ZFS lustre configuration
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_CONFIG_LUSTRE], [])
|
|
@ -0,0 +1,4 @@
|
|||
dnl #
|
||||
dnl # Default ZFS user configuration
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_CONFIG_USER], [])
|
|
@ -0,0 +1,387 @@
|
|||
AC_DEFUN([ZFS_AC_KERNEL], [
|
||||
ver=`uname -r`
|
||||
|
||||
AC_ARG_WITH([linux],
|
||||
AS_HELP_STRING([--with-linux=PATH],
|
||||
[Path to kernel source]),
|
||||
[kernelsrc="$withval"; kernelbuild="$withval"])
|
||||
|
||||
AC_ARG_WITH(linux-obj,
|
||||
AS_HELP_STRING([--with-linux-obj=PATH],
|
||||
[Path to kernel build objects]),
|
||||
[kernelbuild="$withval"])
|
||||
|
||||
AC_MSG_CHECKING([kernel source directory])
|
||||
if test -z "$kernelsrc"; then
|
||||
kernelbuild=
|
||||
sourcelink=/lib/modules/${ver}/source
|
||||
buildlink=/lib/modules/${ver}/build
|
||||
|
||||
if test -e $sourcelink; then
|
||||
kernelsrc=`(cd $sourcelink; /bin/pwd)`
|
||||
fi
|
||||
if test -e $buildlink; then
|
||||
kernelbuild=`(cd $buildlink; /bin/pwd)`
|
||||
fi
|
||||
if test -z "$kernelsrc"; then
|
||||
kernelsrc=$kernelbuild
|
||||
fi
|
||||
if test -z "$kernelsrc" -o -z "$kernelbuild"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
AC_MSG_ERROR([
|
||||
*** Please specify the location of the kernel source
|
||||
*** with the '--with-linux=PATH' option])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$kernelsrc])
|
||||
AC_MSG_CHECKING([kernel build directory])
|
||||
AC_MSG_RESULT([$kernelbuild])
|
||||
|
||||
AC_MSG_CHECKING([kernel source version])
|
||||
if test -r $kernelbuild/include/linux/version.h &&
|
||||
fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
|
||||
|
||||
kernsrcver=`(echo "#include <linux/version.h>";
|
||||
echo "kernsrcver=UTS_RELEASE") |
|
||||
cpp -I $kernelbuild/include |
|
||||
grep "^kernsrcver=" | cut -d \" -f 2`
|
||||
|
||||
elif test -r $kernelbuild/include/linux/utsrelease.h &&
|
||||
fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
|
||||
|
||||
kernsrcver=`(echo "#include <linux/utsrelease.h>";
|
||||
echo "kernsrcver=UTS_RELEASE") |
|
||||
cpp -I $kernelbuild/include |
|
||||
grep "^kernsrcver=" | cut -d \" -f 2`
|
||||
fi
|
||||
|
||||
if test -z "$kernsrcver"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
AC_MSG_ERROR([
|
||||
*** Cannot determine the version of the linux kernel source.
|
||||
*** Please prepare the kernel before running this script])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$kernsrcver])
|
||||
|
||||
kmoduledir=${INSTALL_MOD_PATH}/lib/modules/$kernsrcver
|
||||
LINUX=${kernelsrc}
|
||||
LINUX_OBJ=${kernelbuild}
|
||||
|
||||
AC_SUBST(LINUX)
|
||||
AC_SUBST(LINUX_OBJ)
|
||||
AC_SUBST(kmoduledir)
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_SPL], [
|
||||
|
||||
AC_ARG_WITH([spl],
|
||||
AS_HELP_STRING([--with-spl=PATH],
|
||||
[Path to spl source]),
|
||||
[splsrc="$withval"; splbuild="$withval"])
|
||||
|
||||
AC_ARG_WITH([spl-obj],
|
||||
AS_HELP_STRING([--with-spl-obj=PATH],
|
||||
[Path to spl build objects]),
|
||||
[splbuild="$withval"])
|
||||
|
||||
|
||||
AC_MSG_CHECKING([spl source directory])
|
||||
if test -z "$splsrc"; then
|
||||
splbuild=
|
||||
sourcelink=/tmp/`whoami`/spl
|
||||
buildlink=/tmp/`whoami`/spl
|
||||
|
||||
if test -e $sourcelink; then
|
||||
splsrc=`(cd $sourcelink; /bin/pwd)`
|
||||
fi
|
||||
if test -e $buildlink; then
|
||||
splbuild=`(cd $buildlink; /bin/pwd)`
|
||||
fi
|
||||
if test -z "$splsrc"; then
|
||||
splsrc=$splbuild
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$splsrc" -o -z "$splbuild"; then
|
||||
sourcelink=/lib/modules/${ver}/source
|
||||
buildlink=/lib/modules/${ver}/build
|
||||
|
||||
if test -e $sourcelink; then
|
||||
splsrc=`(cd $sourcelink; /bin/pwd)`
|
||||
fi
|
||||
if test -e $buildlink; then
|
||||
splbuild=`(cd $buildlink; /bin/pwd)`
|
||||
fi
|
||||
if test -z "$splsrc"; then
|
||||
splsrc=$splbuild
|
||||
fi
|
||||
if test -z "$splsrc" -o -z "$splbuild"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
AC_MSG_ERROR([
|
||||
*** Please specify the location of the spl source
|
||||
*** with the '--with-spl=PATH' option])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$splsrc])
|
||||
AC_MSG_CHECKING([spl build directory])
|
||||
AC_MSG_RESULT([$splbuild])
|
||||
|
||||
AC_MSG_CHECKING([spl source version])
|
||||
if test -r $splbuild/spl_config.h &&
|
||||
fgrep -q VERSION $splbuild/spl_config.h; then
|
||||
|
||||
splsrcver=`(echo "#include <spl_config.h>";
|
||||
echo "splsrcver=VERSION") |
|
||||
cpp -I $splbuild |
|
||||
grep "^splsrcver=" | cut -d \" -f 2`
|
||||
fi
|
||||
|
||||
if test -z "$splsrcver"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
AC_MSG_ERROR([
|
||||
*** Cannot determine the version of the spl source.
|
||||
*** Please prepare the spl source before running this script])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$splsrcver])
|
||||
|
||||
AC_MSG_CHECKING([spl Module.symvers])
|
||||
if test -r $splbuild/modules/Module.symvers; then
|
||||
splsymvers=$splbuild/modules/Module.symvers
|
||||
elif test -r $kernelbuild/Module.symvers; then
|
||||
splsymvers=$kernelbuild/Module.symvers
|
||||
fi
|
||||
|
||||
if test -z "$splsymvers"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
AC_MSG_ERROR([
|
||||
*** Cannot find extra Module.symvers in the spl source.
|
||||
*** Please prepare the spl source before running this script])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$splsymvers])
|
||||
AC_SUBST(splsrc)
|
||||
AC_SUBST(splsymvers)
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_LICENSE], [
|
||||
AC_MSG_CHECKING([license])
|
||||
AC_MSG_RESULT([CDDL])
|
||||
dnl # AC_DEFINE([HAVE_GPL_ONLY_SYMBOLS], [1],
|
||||
dnl # [Define to 1 if module is licensed under the GPL])
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_DEBUG], [
|
||||
AC_MSG_CHECKING([whether debugging is enabled])
|
||||
AC_ARG_ENABLE( [debug],
|
||||
AS_HELP_STRING([--enable-debug],
|
||||
[Enable generic debug support (default off)]),
|
||||
[ case "$enableval" in
|
||||
yes) zfs_ac_debug=yes ;;
|
||||
no) zfs_ac_debug=no ;;
|
||||
*) AC_MSG_RESULT([Error!])
|
||||
AC_MSG_ERROR([Bad value "$enableval" for --enable-debug]) ;;
|
||||
esac ]
|
||||
)
|
||||
if test "$zfs_ac_debug" = yes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG "
|
||||
HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG "
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_DEFINE([NDEBUG], [1],
|
||||
[Define to 1 to disable debug tracing])
|
||||
KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG "
|
||||
HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG "
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_CONFIG_SCRIPT], [
|
||||
SCRIPT_CONFIG=.script-config
|
||||
rm -f ${SCRIPT_CONFIG}
|
||||
echo "KERNELSRC=${LINUX}" >>${SCRIPT_CONFIG}
|
||||
echo "KERNELBUILD=${LINUX_OBJ}" >>${SCRIPT_CONFIG}
|
||||
echo "KERNELSRCVER=$kernsrcver" >>${SCRIPT_CONFIG}
|
||||
echo >>${SCRIPT_CONFIG}
|
||||
echo "SPLSRC=$splsrc" >>${SCRIPT_CONFIG}
|
||||
echo "SPLBUILD=$splbuild" >>${SCRIPT_CONFIG}
|
||||
echo "SPLSRCVER=$splsrcver" >>${SCRIPT_CONFIG}
|
||||
echo "SPLSYMVERS=$splsymvers" >>${SCRIPT_CONFIG}
|
||||
echo >>${SCRIPT_CONFIG}
|
||||
echo "ZFSSRC=${TOPDIR}/src" >>${SCRIPT_CONFIG}
|
||||
echo "ZFSBUILD=${ZFSDIR}" >>${SCRIPT_CONFIG}
|
||||
echo >>${SCRIPT_CONFIG}
|
||||
echo "TOPDIR=${TOPDIR}" >>${SCRIPT_CONFIG}
|
||||
echo "LIBDIR=${LIBDIR}" >>${SCRIPT_CONFIG}
|
||||
echo "CMDDIR=${CMDDIR}" >>${SCRIPT_CONFIG}
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_CONFIG], [
|
||||
|
||||
TOPDIR=`/bin/pwd`
|
||||
BUILDDIR=$ZFS_META_NAME #+$zfsconfig
|
||||
ZFSDIR=$TOPDIR/$BUILDDIR
|
||||
LIBDIR=$ZFSDIR/lib
|
||||
CMDDIR=$ZFSDIR/zcmd
|
||||
UNAME=`uname -r | cut -d- -f1`
|
||||
|
||||
AC_SUBST(UNAME)
|
||||
AC_SUBST(TOPDIR)
|
||||
AC_SUBST(BUILDDIR)
|
||||
AC_SUBST(ZFSDIR)
|
||||
AC_SUBST(LIBDIR)
|
||||
AC_SUBST(CMDDIR)
|
||||
AC_SUBST(UNAME)
|
||||
|
||||
AC_ARG_WITH([zfs-config],
|
||||
AS_HELP_STRING([--with-config=CONFIG],
|
||||
[Config file 'kernel|user|lustre']),
|
||||
[zfsconfig="$withval"])
|
||||
|
||||
AC_MSG_CHECKING([zfs config])
|
||||
AC_MSG_RESULT([$zfsconfig]);
|
||||
|
||||
case "$zfsconfig" in
|
||||
kernel) ZFS_AC_CONFIG_KERNEL ;;
|
||||
user) ZFS_AC_CONFIG_USER ;;
|
||||
lustre) ZFS_AC_CONFIG_LUSTRE ;;
|
||||
*)
|
||||
AC_MSG_RESULT([Error!])
|
||||
AC_MSG_ERROR([Bad value "$zfsconfig" for --with-config,
|
||||
user kernel|user|lustre]) ;;
|
||||
esac
|
||||
|
||||
ZFS_AC_CONFIG_SCRIPT
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_LINUX_CONFTEST
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_LINUX_CONFTEST], [
|
||||
cat >conftest.c <<_ACEOF
|
||||
$1
|
||||
_ACEOF
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_LANG_PROGRAM(C)([PROLOGUE], [BODY])
|
||||
dnl #
|
||||
m4_define([ZFS_LANG_PROGRAM], [
|
||||
$1
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
dnl Do *not* indent the following line: there may be CPP directives.
|
||||
dnl Don't move the `;' right after for the same reason.
|
||||
$2
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_LINUX_COMPILE_IFELSE / like AC_COMPILE_IFELSE
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_LINUX_COMPILE_IFELSE], [
|
||||
m4_ifvaln([$1], [ZFS_LINUX_CONFTEST([$1])])dnl
|
||||
rm -f build/conftest.o build/conftest.mod.c build/conftest.ko build/Makefile
|
||||
echo "obj-m := conftest.o" >build/Makefile
|
||||
dnl AS_IF([AC_TRY_COMMAND(cp conftest.c build && make [$2] CC="$CC" -f $PWD/build/Makefile LINUXINCLUDE="-Iinclude -include include/linux/autoconf.h" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])],
|
||||
AS_IF([AC_TRY_COMMAND(cp conftest.c build && make [$2] CC="$CC" LINUXINCLUDE="-Iinclude -include include/linux/autoconf.h" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])],
|
||||
[$4],
|
||||
[_AC_MSG_LOG_CONFTEST
|
||||
m4_ifvaln([$5],[$5])dnl])dnl
|
||||
rm -f build/conftest.o build/conftest.mod.c build/conftest.mod.o build/conftest.ko m4_ifval([$1], [build/conftest.c conftest.c])[]dnl
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_LINUX_TRY_COMPILE like AC_TRY_COMPILE
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_LINUX_TRY_COMPILE],
|
||||
[ZFS_LINUX_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE([ZFS_LANG_PROGRAM([[$1]], [[$2]])])],
|
||||
[modules],
|
||||
[test -s build/conftest.o],
|
||||
[$3], [$4])
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_LINUX_CONFIG
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_LINUX_CONFIG],
|
||||
[AC_MSG_CHECKING([whether Linux was built with CONFIG_$1])
|
||||
ZFS_LINUX_TRY_COMPILE([
|
||||
#ifndef AUTOCONF_INCLUDED
|
||||
#include <linux/config.h>
|
||||
#endif
|
||||
],[
|
||||
#ifndef CONFIG_$1
|
||||
#error CONFIG_$1 not #defined
|
||||
#endif
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
$2
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
$3
|
||||
])
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # ZFS_CHECK_SYMBOL_EXPORT
|
||||
dnl # check symbol exported or not
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_CHECK_SYMBOL_EXPORT],
|
||||
[AC_MSG_CHECKING([whether symbol $1 is exported])
|
||||
grep -q -E '[[[:space:]]]$1[[[:space:]]]' $LINUX/Module.symvers 2>/dev/null
|
||||
rc=$?
|
||||
if test $rc -ne 0; then
|
||||
export=0
|
||||
for file in $2; do
|
||||
grep -q -E "EXPORT_SYMBOL.*($1)" "$LINUX/$file" 2>/dev/null
|
||||
rc=$?
|
||||
if test $rc -eq 0; then
|
||||
export=1
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if test $export -eq 0; then
|
||||
AC_MSG_RESULT([no])
|
||||
$4
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # 2.6.x API change
|
||||
dnl # bio_end_io_t uses 2 args (size was dropped from prototype)
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_2ARGS_BIO_END_IO_T],
|
||||
[AC_MSG_CHECKING([whether bio_end_io_t wants 2 args])
|
||||
tmp_flags="$EXTRA_KCFLAGS"
|
||||
EXTRA_KCFLAGS="-Werror"
|
||||
ZFS_LINUX_TRY_COMPILE([
|
||||
#include <linux/bio.h>
|
||||
],[
|
||||
void (*wanted_end_io)(struct bio *, int) = NULL;
|
||||
bio_end_io_t *local_end_io;
|
||||
|
||||
local_end_io = wanted_end_io;
|
||||
],[
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1,
|
||||
[bio_end_io_t wants 2 args])
|
||||
],[
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
EXTRA_KCFLAGS="$tmp_flags"
|
||||
])
|
|
@ -0,0 +1,112 @@
|
|||
dnl #
|
||||
dnl # ZFS_AC_META
|
||||
dnl # Read metadata from the META file.
|
||||
dnl #
|
||||
dnl # AUTHOR:
|
||||
dnl # Chris Dunlap <cdunlap@llnl.gov>
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_META], [
|
||||
AC_MSG_CHECKING([metadata])
|
||||
|
||||
META="$srcdir/META"
|
||||
_zfs_ac_meta_got_file=no
|
||||
if test -f "$META"; then
|
||||
_zfs_ac_meta_got_file=yes
|
||||
|
||||
ZFS_META_NAME=_ZFS_AC_META_GETVAL([(?:NAME|PROJECT|PACKAGE)]);
|
||||
if test -n "$ZFS_META_NAME"; then
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_NAME], ["$ZFS_META_NAME"],
|
||||
[Define the project name.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_NAME])
|
||||
fi
|
||||
|
||||
ZFS_META_VERSION=_ZFS_AC_META_GETVAL([VERSION]);
|
||||
if test -n "$ZFS_META_VERSION"; then
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_VERSION], ["$ZFS_META_VERSION"],
|
||||
[Define the project version.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_VERSION])
|
||||
fi
|
||||
|
||||
ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([RELEASE]);
|
||||
if test -n "$ZFS_META_RELEASE"; then
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_RELEASE], ["$ZFS_META_RELEASE"],
|
||||
[Define the project release.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_RELEASE])
|
||||
fi
|
||||
|
||||
if test -n "$ZFS_META_NAME" -a -n "$ZFS_META_VERSION"; then
|
||||
ZFS_META_ALIAS="$ZFS_META_NAME-$ZFS_META_VERSION"
|
||||
test -n "$ZFS_META_RELEASE" &&
|
||||
ZFS_META_ALIAS="$ZFS_META_ALIAS-$ZFS_META_RELEASE"
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_ALIAS],
|
||||
["$ZFS_META_ALIAS"],
|
||||
[Define the project alias string.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_ALIAS])
|
||||
fi
|
||||
|
||||
ZFS_META_DATA=_ZFS_AC_META_GETVAL([DATE]);
|
||||
if test -n "$ZFS_META_DATA"; then
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_DATA], ["$ZFS_META_DATA"],
|
||||
[Define the project release date.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_DATA])
|
||||
fi
|
||||
|
||||
ZFS_META_AUTHOR=_ZFS_AC_META_GETVAL([AUTHOR]);
|
||||
if test -n "$ZFS_META_AUTHOR"; then
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_AUTHOR], ["$ZFS_META_AUTHOR"],
|
||||
[Define the project author.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_AUTHOR])
|
||||
fi
|
||||
|
||||
m4_pattern_allow([^LT_(CURRENT|REVISION|AGE)$])
|
||||
ZFS_META_LT_CURRENT=_ZFS_AC_META_GETVAL([LT_CURRENT]);
|
||||
ZFS_META_LT_REVISION=_ZFS_AC_META_GETVAL([LT_REVISION]);
|
||||
ZFS_META_LT_AGE=_ZFS_AC_META_GETVAL([LT_AGE]);
|
||||
if test -n "$ZFS_META_LT_CURRENT" \
|
||||
-o -n "$ZFS_META_LT_REVISION" \
|
||||
-o -n "$ZFS_META_LT_AGE"; then
|
||||
test -n "$ZFS_META_LT_CURRENT" || ZFS_META_LT_CURRENT="0"
|
||||
test -n "$ZFS_META_LT_REVISION" || ZFS_META_LT_REVISION="0"
|
||||
test -n "$ZFS_META_LT_AGE" || ZFS_META_LT_AGE="0"
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_LT_CURRENT],
|
||||
["$ZFS_META_LT_CURRENT"],
|
||||
[Define the libtool library 'current'
|
||||
version information.]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_LT_REVISION],
|
||||
["$ZFS_META_LT_REVISION"],
|
||||
[Define the libtool library 'revision'
|
||||
version information.]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED([ZFS_META_LT_AGE], ["$ZFS_META_LT_AGE"],
|
||||
[Define the libtool library 'age'
|
||||
version information.]
|
||||
)
|
||||
AC_SUBST([ZFS_META_LT_CURRENT])
|
||||
AC_SUBST([ZFS_META_LT_REVISION])
|
||||
AC_SUBST([ZFS_META_LT_AGE])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$_zfs_ac_meta_got_file])
|
||||
]
|
||||
)
|
||||
|
||||
AC_DEFUN([_ZFS_AC_META_GETVAL],
|
||||
[`perl -n\
|
||||
-e "BEGIN { \\$key=shift @ARGV; }"\
|
||||
-e "next unless s/^\s*\\$key@<:@:=@:>@//i;"\
|
||||
-e "s/^((?:@<:@^'\"#@:>@*(?:(@<:@'\"@:>@)@<:@^\2@:>@*\2)*)*)#.*/\\@S|@1/;"\
|
||||
-e "s/^\s+//;"\
|
||||
-e "s/\s+$//;"\
|
||||
-e "s/^(@<:@'\"@:>@)(.*)\1/\\@S|@2/;"\
|
||||
-e "\\$val=\\$_;"\
|
||||
-e "END { print \\$val if defined \\$val; }"\
|
||||
'$1' $META`]dnl
|
||||
)
|
|
@ -0,0 +1,141 @@
|
|||
#
|
||||
# This file is part of the ZFS Linux port.
|
||||
#
|
||||
# Copyright (c) 2008 Lawrence Livermore National Security, LLC.
|
||||
# Produced at Lawrence Livermore National Laboratory
|
||||
# Written by:
|
||||
# Brian Behlendorf <behlendorf1@llnl.gov>,
|
||||
# Herb Wartens <wartens2@llnl.gov>,
|
||||
# Jim Garlick <garlick@llnl.gov>
|
||||
# LLNL-CODE-403049
|
||||
#
|
||||
# CDDL HEADER START
|
||||
#
|
||||
# The contents of this file are subject to the terms of the
|
||||
# Common Development and Distribution License, Version 1.0 only
|
||||
# (the "License"). You may not use this file except in compliance
|
||||
# with the License.
|
||||
#
|
||||
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
||||
# or http://www.opensolaris.org/os/licensing.
|
||||
# See the License for the specific language governing permissions
|
||||
# and limitations under the License.
|
||||
#
|
||||
# When distributing Covered Code, include this CDDL HEADER in each
|
||||
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
||||
# If applicable, add the following below this CDDL HEADER, with the
|
||||
# fields enclosed by brackets "[]" replaced with your own identifying
|
||||
# information: Portions Copyright [yyyy] [name of copyright owner]
|
||||
#
|
||||
# CDDL HEADER END
|
||||
#
|
||||
|
||||
AC_INIT
|
||||
AC_LANG(C)
|
||||
ZFS_AC_META
|
||||
AC_CONFIG_AUX_DIR([config])
|
||||
AC_CANONICAL_SYSTEM
|
||||
AM_INIT_AUTOMAKE([$ZFS_META_NAME], [$ZFS_META_VERSION])
|
||||
AC_CONFIG_HEADERS([zfs_config.h])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_CC
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
zfsconfig=kernel
|
||||
kernelsrc=
|
||||
kernelbuild=
|
||||
splsrc=
|
||||
splbuild=
|
||||
|
||||
ZFS_AC_KERNEL
|
||||
ZFS_AC_SPL
|
||||
ZFS_AC_CONFIG
|
||||
ZFS_AC_LICENSE
|
||||
ZFS_AC_DEBUG
|
||||
ZFS_AC_2ARGS_BIO_END_IO_T
|
||||
|
||||
# Check for needed userspace bits
|
||||
AC_CHECK_HEADERS(sys/types.h sys/byteorder.h sys/isa_defs.h \
|
||||
sys/systeminfo.h sys/u8_textprep.h libdiskmgt.h)
|
||||
|
||||
AC_CHECK_FUNCS(strlcat strlcpy strnlen issetugid setmntent getexecname)
|
||||
|
||||
AC_CHECK_LIB([diskmgt], [libdiskmgt_error],
|
||||
[AC_DEFINE([HAVE_LIBDISKMGT], 1,
|
||||
[Define to 1 if 'libdiskmgt' library available])])
|
||||
|
||||
AC_CHECK_LIB([efi], [efi_alloc_and_init],
|
||||
[AC_DEFINE([HAVE_LIBEFI], 1,
|
||||
[Define to 1 if 'libefi' library available])])
|
||||
|
||||
AC_CHECK_LIB([share], [sa_init],
|
||||
[AC_DEFINE([HAVE_LIBSHARE], 1,
|
||||
[Define to 1 if 'libshare' library available])])
|
||||
|
||||
AC_EGREP_HEADER(ioctl, unistd.h,
|
||||
[AC_DEFINE([HAVE_IOCTL_IN_UNISTD_H], 1,
|
||||
[Define to 1 if ioctl() is defined in <unistd.h> header file])])
|
||||
|
||||
AC_EGREP_HEADER(ioctl, sys/ioctl.h,
|
||||
[AC_DEFINE([HAVE_IOCTL_IN_SYS_IOCTL_H], 1,
|
||||
[Define to 1 if ioctl() is defined in <sys/ioctl.h> header file])])
|
||||
|
||||
AC_EGREP_HEADER(ioctl, stropts.h,
|
||||
[AC_DEFINE([HAVE_IOCTL_IN_STROPTS_H], 1,
|
||||
[Define to 1 if ioctl() is defined in <stropts.h> header file])])
|
||||
|
||||
AC_EGREP_HEADER(strcmp, strings.h,
|
||||
[AC_DEFINE([HAVE_STRCMP_IN_STRINGS_H], 1,
|
||||
[Define to 1 if strcmpl() is defined in <strings.h> header file])])
|
||||
|
||||
AC_EGREP_HEADER(sysinfo, sys/systeminfo.h,
|
||||
[AC_DEFINE([HAVE_SYSINFO_IN_SYS_SYSTEMINFO_H], 1,
|
||||
[Define to 1 if sysinfo() is defined in <sys/systeminfo.h> header file])])
|
||||
|
||||
#AC_DEFINE([HAVE_ZVOL], 1, ["Define to 1 to include ZVOL support"])
|
||||
#AC_DEFINE([HAVE_ZPL], 1, ["Define to 1 to include ZPL support"])
|
||||
#AC_DEFINE([WANT_FAKE_IOCTL], 1, ["Define to 1 to use fake ioctl() support"])
|
||||
#AC_DEFINE([HAVE_DM_INUSE_SWAP], 1, ["None"])
|
||||
#AC_DEFINE([HAVE_UNICODE], 1, ["None"])
|
||||
#AC_DEFINE([HAVE_INTTYPES], 1, [Define to 1 if unint16 defined in <sys/types.h> header file])
|
||||
|
||||
AC_CONFIG_FILES([ Makefile
|
||||
config/Makefile
|
||||
doc/Makefile
|
||||
scripts/Makefile
|
||||
zfs/Makefile
|
||||
zfs/lib/Makefile
|
||||
zfs/lib/libnvpair/include/sys/Makefile
|
||||
zfs/lib/libnvpair/include/Makefile
|
||||
zfs/lib/libnvpair/Makefile
|
||||
zfs/lib/libavl/include/sys/Makefile
|
||||
zfs/lib/libavl/include/Makefile
|
||||
zfs/lib/libavl/Makefile
|
||||
zfs/lib/libuutil/include/Makefile
|
||||
zfs/lib/libuutil/Makefile
|
||||
zfs/lib/libzfs/include/Makefile
|
||||
zfs/lib/libzfs/Makefile
|
||||
zfs/lib/libumem/include/Makefile
|
||||
zfs/lib/libumem/Makefile
|
||||
zfs/lib/libumem/sys/Makefile
|
||||
zfs/lib/libzcommon/include/Makefile
|
||||
zfs/lib/libzcommon/include/sys/fm/fs/Makefile
|
||||
zfs/lib/libzcommon/include/sys/fm/Makefile
|
||||
zfs/lib/libzcommon/include/sys/Makefile
|
||||
zfs/lib/libzcommon/include/sys/fs/Makefile
|
||||
zfs/lib/libzcommon/Makefile
|
||||
zfs/lib/libzpool/Makefile
|
||||
zfs/lib/libspl/include/sys/Makefile
|
||||
zfs/lib/libspl/include/Makefile
|
||||
zfs/lib/libspl/Makefile
|
||||
zfs/zcmd/ztest/Makefile
|
||||
zfs/zcmd/Makefile
|
||||
zfs/zcmd/zfs/Makefile
|
||||
zfs/zcmd/zdb/Makefile
|
||||
zfs/zcmd/zinject/Makefile
|
||||
zfs/zcmd/zdump/Makefile
|
||||
zfs/zcmd/zpool/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
|
@ -0,0 +1 @@
|
|||
EXTRA_DIST = LEGAL
|
|
@ -0,0 +1,8 @@
|
|||
EXTRA_DIST = check.sh create-zpool.sh load-zfs.sh unload-zfs.sh
|
||||
EXTRA_DIST += profile-kpios-disk.sh profile-kpios-pids.sh
|
||||
EXTRA_DIST += profile-kpios-post.sh profile-kpios-pre.sh profile-kpios.sh
|
||||
EXTRA_DIST += survey.sh update-zfs.sh zpios-jbod.sh zpios.sh
|
||||
|
||||
check:
|
||||
./check.sh
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
prog=check.sh
|
||||
|
||||
die() {
|
||||
echo "${prog}: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ $(id -u) != 0 ]; then
|
||||
die "Must run as root"
|
||||
fi
|
||||
|
||||
./load-zfs.sh || die ""
|
||||
./unload-zfs.sh || die ""
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,39 @@
|
|||
#!/bin/bash
|
||||
|
||||
prog=create-zpool.sh
|
||||
. ../.script-config
|
||||
|
||||
# Device list, e.g.
|
||||
#
|
||||
# Single device
|
||||
#DEVICES="/dev/sda"
|
||||
#
|
||||
# All disks in a Sun Thumper/Thor
|
||||
#DEVICES="/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf \
|
||||
# /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl \
|
||||
# /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr \
|
||||
# /dev/sds /dev/sdt /dev/sdu /dev/sdv /dev/sdw /dev/sdx \
|
||||
# /dev/sdy /dev/sdz /dev/sdaa /dev/sdab /dev/sdac /dev/sdad \
|
||||
# /dev/sdae /dev/sdaf /dev/sdag /dev/sdah /dev/sdai /dev/sdaj \
|
||||
# /dev/sdak /dev/sdal /dev/sdam /dev/sdan /dev/sdao /dev/sdap \
|
||||
# /dev/sdaq /dev/sdar /dev/sdas /dev/sdat /dev/sdau /dev/sdav"
|
||||
#
|
||||
# Promise JBOD config
|
||||
#DEVICES="/dev/sdb /dev/sdc /dev/sdd \
|
||||
# /dev/sde /dev/sdf /dev/sdg \
|
||||
# /dev/sdh /dev/sdi /dev/sdj \
|
||||
# /dev/sdk /dev/sdl /dev/sdm"
|
||||
#
|
||||
DEVICES=""
|
||||
|
||||
echo
|
||||
echo "zpool create lustre <devices>"
|
||||
${CMDDIR}/zpool/zpool create -F lustre ${DEVICES}
|
||||
|
||||
echo
|
||||
echo "zpool list"
|
||||
${CMDDIR}/zpool/zpool list
|
||||
|
||||
echo
|
||||
echo "zpool status lustre"
|
||||
${CMDDIR}/zpool/zpool status lustre
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
|
||||
prog=load-zfs.sh
|
||||
. ../.script-config
|
||||
|
||||
spl_options=$1
|
||||
zpool_options=$2
|
||||
|
||||
spl_module=${SPLBUILD}/modules/spl/spl.ko
|
||||
zlib_module=/lib/modules/${KERNELSRCVER}/kernel/lib/zlib_deflate/zlib_deflate.ko
|
||||
zavl_module=${ZFSBUILD}/lib/libavl/zavl.ko
|
||||
znvpair_module=${ZFSBUILD}/lib/libnvpair/znvpair.ko
|
||||
zport_module=${ZFSBUILD}/lib/libport/zport.ko
|
||||
zcommon_module=${ZFSBUILD}/lib/libzcommon/zcommon.ko
|
||||
zpool_module=${ZFSBUILD}/lib/libzpool/zpool.ko
|
||||
zctl_module=${ZFSBUILD}/lib/libdmu-ctl/zctl.ko
|
||||
zpios_module=${ZFSBUILD}/lib/libzpios/zpios.ko
|
||||
|
||||
die() {
|
||||
echo "${prog}: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
load_module() {
|
||||
echo "Loading $1"
|
||||
/sbin/insmod $* || die "Failed to load $1"
|
||||
}
|
||||
|
||||
if [ $(id -u) != 0 ]; then
|
||||
die "Must run as root"
|
||||
fi
|
||||
|
||||
if /sbin/lsmod | egrep -q "^spl|^zavl|^znvpair|^zport|^zcommon|^zlib_deflate|^zpool"; then
|
||||
die "Must start with modules unloaded"
|
||||
fi
|
||||
|
||||
if [ ! -f ${zavl_module} ] ||
|
||||
[ ! -f ${znvpair_module} ] ||
|
||||
[ ! -f ${zport_module} ] ||
|
||||
[ ! -f ${zcommon_module} ] ||
|
||||
[ ! -f ${zpool_module} ]; then
|
||||
die "Source tree must be built, run 'make'"
|
||||
fi
|
||||
|
||||
load_module ${spl_module} ${spl_options}
|
||||
load_module ${zlib_module}
|
||||
load_module ${zavl_module}
|
||||
load_module ${znvpair_module}
|
||||
load_module ${zport_module}
|
||||
load_module ${zcommon_module}
|
||||
load_module ${zpool_module} ${zpool_options}
|
||||
load_module ${zctl_module}
|
||||
load_module ${zpios_module}
|
||||
|
||||
sleep 1
|
||||
echo "Successfully loaded ZFS module stack"
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
prog=unload-zfs.sh
|
||||
. ../.script-config
|
||||
|
||||
spl_module=${SPLBUILD}/modules/spl/spl.ko
|
||||
zlib_module=/lib/modules/${KERNELSRCVER}/kernel/lib/zlib_deflate/zlib_deflate.ko
|
||||
zavl_module=${ZFSBUILD}/lib/libavl/zavl.ko
|
||||
znvpair_module=${ZFSBUILD}/lib/libnvpair/znvpair.ko
|
||||
zport_module=${ZFSBUILD}/lib/libport/zport.ko
|
||||
zcommon_module=${ZFSBUILD}/lib/libzcommon/zcommon.ko
|
||||
zpool_module=${ZFSBUILD}/lib/libzpool/zpool.ko
|
||||
zctl_module=${ZFSBUILD}/lib/libdmu-ctl/zctl.ko
|
||||
zpios_module=${ZFSBUILD}/lib/libzpios/zpios.ko
|
||||
|
||||
die() {
|
||||
echo "${prog}: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
unload_module() {
|
||||
echo "Unloading $1"
|
||||
/sbin/rmmod $1 || die "Failed to unload $1"
|
||||
}
|
||||
|
||||
if [ $(id -u) != 0 ]; then
|
||||
die "Must run as root"
|
||||
fi
|
||||
|
||||
unload_module ${zpios_module}
|
||||
unload_module ${zctl_module}
|
||||
unload_module ${zpool_module}
|
||||
unload_module ${zcommon_module}
|
||||
unload_module ${zport_module}
|
||||
unload_module ${znvpair_module}
|
||||
unload_module ${zavl_module}
|
||||
unload_module ${zlib_module}
|
||||
|
||||
# Set DUMP=1 to generate debug logs on unload
|
||||
if [ -n "${DUMP}" ]; then
|
||||
sysctl -w kernel.spl.debug.dump=1
|
||||
# This is racy, I don't like it, but for a helper script it will do.
|
||||
SPL_LOG=`dmesg | tail -n 1 | cut -f5 -d' '`
|
||||
${SPLBUILD}/cmd/spl ${SPL_LOG} >${SPL_LOG}.log
|
||||
echo
|
||||
echo "Dumped debug log: ${SPL_LOG}.log"
|
||||
tail -n1 ${SPL_LOG}.log
|
||||
echo
|
||||
fi
|
||||
|
||||
unload_module ${spl_module}
|
||||
|
||||
echo "Successfully unloaded ZFS module stack"
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,16 @@
|
|||
subdir-m += lib
|
||||
subdir-m += zcmd
|
||||
|
||||
all:
|
||||
# Make the exported SPL symbols available to this module. There
|
||||
# is probably a better way to do this, but this will have to do
|
||||
# for now... an option to modpost perhaps.
|
||||
cp @splsymvers@ .
|
||||
|
||||
# Kick off the kernel build system
|
||||
$(MAKE) -C @LINUX@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ modules
|
||||
|
||||
install uninstall clean distclean maintainer-clean distdir:
|
||||
$(MAKE) -C @LINUX@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ $@
|
||||
|
||||
check:
|
|
@ -0,0 +1,10 @@
|
|||
subdir-m += libuutil # User space util support
|
||||
subdir-m += libumem # User space memory support
|
||||
subdir-m += libzfs # User space library support
|
||||
subdir-m += libspl # User space compatibility library
|
||||
|
||||
subdir-m += libzpool # Kernel | User SPA/DMU/ZVOL/ZPL
|
||||
|
||||
subdir-m += libavl # Kernel &| User space AVL tree support
|
||||
subdir-m += libnvpair # Kernel &| User space name/value support
|
||||
subdir-m += libzcommon # Kernel &| User space common support
|
|
@ -0,0 +1,31 @@
|
|||
subdir-m += include
|
||||
DISTFILES = avl.c
|
||||
|
||||
MODULE := zavl
|
||||
LIBRARY := libavl
|
||||
|
||||
# Compile as kernel module. Needed symlinks created for all
|
||||
# k* objects created by top level configure script.
|
||||
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libavl/include
|
||||
|
||||
obj-m := ${MODULE}.o
|
||||
|
||||
${MODULE}-objs += kavl.o # Generic AVL support
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += uavl.o
|
|
@ -0,0 +1 @@
|
|||
subdir-m += sys
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = avl.h avl_impl.h
|
|
@ -0,0 +1,34 @@
|
|||
subdir-m += include
|
||||
DISTFILES = libnvpair.c nvpair.c nvpair_alloc_fixed.c nvpair_alloc_system.c
|
||||
|
||||
MODULE := znvpair
|
||||
LIBRARY := libnvpair
|
||||
|
||||
# Compile as kernel module. Needed symlinks created for all
|
||||
# k* objects created by top level configure script.
|
||||
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
|
||||
obj-m := ${MODULE}.o
|
||||
|
||||
${MODULE}-objs += knvpair.o # Interfaces name/value pairs
|
||||
${MODULE}-objs += nvpair_alloc_spl.o # Generic alloc/free support
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += unvpair.o
|
||||
${LIBRARY}-objs += nvpair_alloc_system.o
|
||||
${LIBRARY}-objs += libnvpair.o
|
|
@ -0,0 +1,2 @@
|
|||
subdir-m += sys
|
||||
DISTFILES = libnvpair.h
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = nvpair.h nvpair_impl.h
|
|
@ -0,0 +1,37 @@
|
|||
subdir-m += include
|
||||
DISTFILES = port.c strlcat.c strlcpy.c strnlen.c u8_textprep.c
|
||||
|
||||
MODULE := zport
|
||||
LIBRARY := libzport
|
||||
|
||||
# Compile as kernel module. Needed symlinks created for all
|
||||
# k* objects created by top level configure script.
|
||||
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libport/include
|
||||
|
||||
obj-m := ${MODULE}.o
|
||||
|
||||
${MODULE}-objs += spl.o
|
||||
${MODULE}-objs += ku8_textprep.o
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += strlcpy.o
|
||||
${LIBRARY}-objs += strlcat.o
|
||||
${LIBRARY}-objs += strnlen.o
|
||||
${LIBRARY}-objs += port.o
|
||||
${LIBRARY}-objs += u8_textprep.o
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
subdir-m += sys
|
||||
|
||||
DISTFILES = fake_ioctl.h libdiskmgt.h libshare.h mntent.h stdlib.h
|
||||
DISTFILES += string.h strings.h stropts.h unistd.h
|
|
@ -0,0 +1,3 @@
|
|||
DISTFILES = byteorder.h debug.h efi_partition.h ioctl.h isa_defs.h
|
||||
DISTFILES += policy.h socket.h swap.h systeminfo.h systm.h time.h
|
||||
DISTFILES += types.h u8_textprep.h u8_textprep_data.h
|
|
@ -0,0 +1,40 @@
|
|||
subdir-m += include sys
|
||||
DISTFILES = COPYING COPYRIGHT OPENSOLARIS.LICENSE README README-alpha TODO
|
||||
DISTFILES += config.h envvar.c getpcstack.c init_lib.c misc.c misc.h
|
||||
DISTFILES += sol_compat.h umem.c umem_agent_support.c umem_base.h
|
||||
DISTFILES += umem_fail.c umem_fork.c umem_impl.h umem_update_thread.c
|
||||
DISTFILES += vmem.c vmem_base.c vmem_base.h vmem_mmap.c vmem_sbrk.c
|
||||
DISTFILES += vmem_stand.h
|
||||
|
||||
LIBRARY := libumem
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/sys
|
||||
|
||||
HOSTLDFLAGS += -pthread
|
||||
HOSTLDFLAGS += -ldl
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += envvar.o
|
||||
${LIBRARY}-objs += getpcstack.o
|
||||
${LIBRARY}-objs += init_lib.o
|
||||
${LIBRARY}-objs += misc.o
|
||||
${LIBRARY}-objs += umem.o
|
||||
${LIBRARY}-objs += umem_agent_support.o
|
||||
${LIBRARY}-objs += umem_fail.o
|
||||
${LIBRARY}-objs += umem_fork.o
|
||||
${LIBRARY}-objs += umem_update_thread.o
|
||||
${LIBRARY}-objs += vmem.o
|
||||
${LIBRARY}-objs += vmem_base.o
|
||||
${LIBRARY}-objs += vmem_mmap.o
|
||||
${LIBRARY}-objs += vmem_sbrk.o
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = umem.h
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = vmem.h vmem_impl_user.h
|
|
@ -0,0 +1,35 @@
|
|||
subdir-m += include
|
||||
DISTFILES = Makefile.in *.c
|
||||
|
||||
LIBRARY := libuutil
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -DNATIVE_BUILD
|
||||
|
||||
HOSTLDFLAGS += -pthread
|
||||
HOSTLDFLAGS += -lrt
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += uu_alloc.o
|
||||
${LIBRARY}-objs += uu_avl.o
|
||||
${LIBRARY}-objs += uu_dprintf.o
|
||||
${LIBRARY}-objs += uu_ident.o
|
||||
${LIBRARY}-objs += uu_list.o
|
||||
${LIBRARY}-objs += uu_misc.o
|
||||
${LIBRARY}-objs += uu_open.o
|
||||
${LIBRARY}-objs += uu_pname.o
|
||||
${LIBRARY}-objs += uu_strtoint.o
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = libuutil.h libuutil_common.h libuutil_impl.h
|
|
@ -0,0 +1,55 @@
|
|||
subdir-m += include
|
||||
DISTFILES = compress.c list.c zfs_comutil.c zfs_deleg.c zfs_namecheck.c
|
||||
DISTFILES += zfs_prop.c zpool_prop.c zprop_common.c
|
||||
|
||||
MODULE := zcommon
|
||||
LIBRARY := libzcommon
|
||||
|
||||
# Compile as kernel module. Needed symlinks created for all
|
||||
# k* objects created by top level configure script.
|
||||
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libport/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libavl/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
|
||||
obj-m := ${MODULE}.o
|
||||
|
||||
${MODULE}-objs += spl.o
|
||||
${MODULE}-objs += kzfs_deleg.o
|
||||
${MODULE}-objs += kzfs_prop.o
|
||||
${MODULE}-objs += kzprop_common.o
|
||||
${MODULE}-objs += kcompress.o
|
||||
${MODULE}-objs += klist.o
|
||||
${MODULE}-objs += kzfs_namecheck.o
|
||||
${MODULE}-objs += kzfs_comutil.o
|
||||
${MODULE}-objs += kzpool_prop.o
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += zfs_deleg.o
|
||||
${LIBRARY}-objs += zfs_prop.o
|
||||
${LIBRARY}-objs += zprop_common.o
|
||||
${LIBRARY}-objs += compress.o
|
||||
${LIBRARY}-objs += list.o
|
||||
${LIBRARY}-objs += zfs_namecheck.o
|
||||
${LIBRARY}-objs += zfs_comutil.o
|
||||
${LIBRARY}-objs += zpool_prop.o
|
|
@ -0,0 +1,2 @@
|
|||
subdir-m += sys
|
||||
DISTFILES = zfs_comutil.h zfs_deleg.h zfs_namecheck.h zfs_prop.h
|
|
@ -0,0 +1,14 @@
|
|||
subdir-m += fm fs
|
||||
|
||||
DISTFILES = arc.h bplist.h compress.h dbuf.h dmu.h dmu_impl.h
|
||||
DISTFILES += dmu_objset.h dmu_traverse.h dmu_tx.h dmu_zfetch.h
|
||||
DISTFILES += dnode.h dsl_dataset.h dsl_deleg.h dsl_dir.h dsl_pool.h
|
||||
DISTFILES += dsl_prop.h dsl_synctask.h list.h list_impl.h metaslab.h
|
||||
DISTFILES += metaslab_impl.h refcount.h rprwlock.h rrwlock.h spa.h
|
||||
DISTFILES += spa_boot.h spa_impl.h space_map.h txg.h txg_impl.h uberblock.h
|
||||
DISTFILES += uberblock_impl.h unique.h vdev.h vdev_disk.h vdev_file.h
|
||||
DISTFILES += vdev_impl.h zap.h zap_impl.h zap_leaf.h zfs_acl.h
|
||||
DISTFILES += zfs_context.h zfs_context_user.h zfs_ctldir.h zfs_debug.h
|
||||
DISTFILES += zfs_dir.h zfs_fuid.h zfs_i18n.h zfs_ioctl.h zfs_rlock.h
|
||||
DISTFILES += zfs_vfsops.h zfs_znode.h zil.h zil_impl.h zio.h
|
||||
DISTFILES += zio_checksum.h zio_compress.h zio_impl.h zvol.h
|
|
@ -0,0 +1 @@
|
|||
subdir-m += fs
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = zfs.h
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = zfs.h
|
|
@ -0,0 +1,46 @@
|
|||
subdir-m += include
|
||||
DISTFILES = libzfs_changelist.c libzfs_config.c libzfs_dataset.c
|
||||
DISTFILES += libzfs_graph.c libzfs_import.c libzfs_mount.c libzfs_pool.c
|
||||
DISTFILES += libzfs_sendrecv.c libzfs_status.c libzfs_util.c
|
||||
|
||||
LIBRARY := libzfs
|
||||
|
||||
# Compile as shared library. There's an extra useless host program
|
||||
# here called 'zu' because it was the easiest way I could convince
|
||||
# the kernel build system to construct a user space shared library.
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libdmu-ctl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzpool # For existing fletcher.c hack
|
||||
|
||||
HOSTLDFLAGS += -ldl -lm
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
|
||||
hostprogs-y := zu
|
||||
always := $(hostprogs-y)
|
||||
|
||||
zu-objs := zu.o ${LIBRARY}.so
|
||||
|
||||
${LIBRARY}-objs += libzfs_dataset.o # Interface for manipulating datasets
|
||||
${LIBRARY}-objs += libzfs_pool.o # Interface for manipulating pools
|
||||
${LIBRARY}-objs += libzfs_changelist.o # Support for property changes
|
||||
${LIBRARY}-objs += libzfs_config.o # Interface for manipulating configuration
|
||||
${LIBRARY}-objs += libzfs_graph.o # Support for dependent list for datasets
|
||||
${LIBRARY}-objs += libzfs_import.o # Discover and import pools
|
||||
${LIBRARY}-objs += libzfs_mount.o # Mount, unmount, and share datasets
|
||||
${LIBRARY}-objs += libzfs_status.o # Status
|
||||
${LIBRARY}-objs += libzfs_util.o # Misc support
|
||||
${LIBRARY}-objs += libzfs_sendrecv.o
|
|
@ -0,0 +1 @@
|
|||
DISTFILES = libzfs.h libzfs_impl.h
|
|
@ -0,0 +1,102 @@
|
|||
# NOTE: kernel.c, taskq.c, util.c unused by kernel port.
|
||||
# Potentially they should just be removed if we don't care
|
||||
# able user space lustre intergration from this source base.
|
||||
|
||||
DISTFILES = arc.c bplist.c dbuf.c dmu.c dmu_object.c dmu_objset.c
|
||||
DISTFILES += dmu_traverse.c dmu_tx.c dmu_zfetch.c dnode.c dnode_sync.c
|
||||
DISTFILES += dsl_dataset.c dsl_deleg.c dsl_dir.c dsl_pool.c dsl_prop.c
|
||||
DISTFILES += dsl_synctask.c fletcher.c gzip.c kernel.c lzjb.c metaslab.c
|
||||
DISTFILES += refcount.c sha256.c spa.c spa_boot.c spa_config.c spa_errlog.c
|
||||
DISTFILES += spa_history.c spa_misc.c space_map.c taskq.c txg.c uberblock.c
|
||||
DISTFILES += unique.c util.c vdev.c vdev_cache.c vdev_disk.c vdev_missing.c
|
||||
DISTFILES += vdev_file.c vdev_label.c vdev_mirror.c vdev_queue.c vdev_raidz.c
|
||||
DISTFILES += vdev_root.c zap.c zap_leaf.c zap_micro.c zfs_byteswap.c zfs_fm.c
|
||||
DISTFILES += zfs_znode.c zil.c zio.c zio_checksum.c zio_compress.c zio_inject.c
|
||||
|
||||
MODULE := zpool
|
||||
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libport/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libavl/include
|
||||
EXTRA_CFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
|
||||
obj-m := ${MODULE}.o
|
||||
|
||||
# DMU (Data Management Unit)
|
||||
${MODULE}-objs += dmu.o # Interfaces dmu core
|
||||
${MODULE}-objs += dmu_objset.o # Interfaces dmu objset open/close/manipulate
|
||||
${MODULE}-objs += dmu_object.o # Interfaces dmu alloc/free
|
||||
${MODULE}-objs += txg.o # Transaction model control threads
|
||||
${MODULE}-objs += dmu_tx.o # Interfaces dmu transaction create/manipulate
|
||||
${MODULE}-objs += dnode.o # Open context object-level support
|
||||
${MODULE}-objs += dnode_sync.o # Syncing context object-level support
|
||||
${MODULE}-objs += dbuf.o # Buffer management support
|
||||
${MODULE}-objs += dmu_zfetch.o # Data stream prefetch logic
|
||||
${MODULE}-objs += refcount.o # Generic refcount support
|
||||
#${MODULE}-objs += dmu_send.o # XXX missing: Snapshot send/received support
|
||||
|
||||
# DSL (Dataset and Snapshot Layer)
|
||||
${MODULE}-objs += dsl_dir.o # Namespace and management support
|
||||
${MODULE}-objs += dsl_dataset.o # Interfaces snapshot/rollback/clone
|
||||
${MODULE}-objs += dsl_pool.o # Pool-level support
|
||||
${MODULE}-objs += dsl_prop.o # Property manipulation support
|
||||
${MODULE}-objs += dsl_deleg.o # XXX: ?
|
||||
${MODULE}-objs += dsl_synctask.o# XXX: ?
|
||||
${MODULE}-objs += unique.o # Unique objset ID support
|
||||
|
||||
# ZAP (ZFS Attribute Processor)
|
||||
${MODULE}-objs += zap.o # Interfaces (fat)
|
||||
${MODULE}-objs += zap_leaf.o # Low-level support
|
||||
${MODULE}-objs += zap_micro.o # Interfaces (micro)
|
||||
|
||||
# ZIL (ZFS Intent Log)
|
||||
${MODULE}-objs += zil.o # Intent log
|
||||
|
||||
# ARC (Adaptive Replacement Cache)
|
||||
${MODULE}-objs += arc.o # Adaptive replacement cache
|
||||
|
||||
# SPA (Storage Pool Allocator)
|
||||
${MODULE}-objs += spa.o # Open/import/export/destroy support
|
||||
${MODULE}-objs += spa_misc.o # Misc support (includes locking)
|
||||
${MODULE}-objs += spa_config.o # Parse and update pool config data
|
||||
${MODULE}-objs += spa_errlog.o # Log of persistent pool-wide data errors
|
||||
${MODULE}-objs += spa_history.o # Command history support
|
||||
${MODULE}-objs += spa_boot.o # Bootable root partitions
|
||||
${MODULE}-objs += zfs_fm.o # Post reports of FMA consumption support
|
||||
|
||||
# ZIO (ZFS I/O Pipeline)
|
||||
${MODULE}-objs += zio.o # Interfaces zio core
|
||||
${MODULE}-objs += zio_checksum.o# Generic checksum interface
|
||||
${MODULE}-objs += fletcher.o # Fletcher 2 and 4 checksum algorithms
|
||||
${MODULE}-objs += sha256.o # SHA256 checksum algorithms
|
||||
${MODULE}-objs += zio_compress.o# Generic compression interface
|
||||
${MODULE}-objs += lzjb.o # LZJB compression algorithm
|
||||
${MODULE}-objs += gzip.o # GZIP compression algorithm
|
||||
${MODULE}-objs += uberblock.o # Basic uberblock routines
|
||||
${MODULE}-objs += bplist.o # Keeps track of list of block pointers
|
||||
${MODULE}-objs += metaslab.o # Bulk of DVA translation
|
||||
${MODULE}-objs += space_map.o # Keeps track of free space
|
||||
${MODULE}-objs += zio_inject.o # Framework for persistent error injection
|
||||
|
||||
# VDEV (Virtual Devices)
|
||||
${MODULE}-objs += vdev.o # Interfaces vdev code
|
||||
${MODULE}-objs += vdev_disk.o # Disk virtual device
|
||||
${MODULE}-objs += vdev_file.o # File virtual device
|
||||
${MODULE}-objs += vdev_mirror.o # N-Way mirroring
|
||||
${MODULE}-objs += vdev_raidz.o # RAID-Z grouping
|
||||
${MODULE}-objs += vdev_root.o # Top-level pseudo vdev
|
||||
${MODULE}-objs += vdev_missing.o# Special device for import
|
||||
${MODULE}-objs += vdev_label.o # Read/write indentifying label support
|
||||
${MODULE}-objs += vdev_cache.o # Simple device-level caching for reads
|
||||
${MODULE}-objs += vdev_queue.o # I/O scheduling algorithm for vdevs
|
||||
|
||||
# ZPL (ZFS Posix Layer)
|
||||
${MODULE}-objs += zfs_byteswap.o# Byteswap support for ZPL
|
||||
${MODULE}-objs += zfs_znode.o # Vnode to znode mapping
|
||||
|
||||
# Traversal
|
||||
${MODULE}-objs += dmu_traverse.o# Traversal code
|
||||
|
||||
# SPL (Solaris Porting Layer)
|
||||
${MODULE}-objs += spl.o # Linux kernel glue and misc support
|
|
@ -0,0 +1,6 @@
|
|||
subdir-m += zfs
|
||||
subdir-m += zpool
|
||||
#subdir-m += zdb
|
||||
#subdir-m += ztest
|
||||
#subdir-m += zdump
|
||||
#subdir-m += zinject
|
|
@ -0,0 +1,32 @@
|
|||
DISTFILES = Makefile.in zdb.c zdb_il.c
|
||||
|
||||
CMD := zdb
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/zdb/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += zdb_il.o
|
||||
${CMD}-objs += zdb.o # Core command
|
|
@ -0,0 +1,31 @@
|
|||
DISTFILES = Makefile.in zdump.c
|
||||
|
||||
CMD := zdump
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/zdump/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += zdump.o # Arg processing
|
|
@ -0,0 +1,32 @@
|
|||
DISTFILES = Makefile.in zfs_iter.c zfs_main.c zfs_util.h zfs_iter.h
|
||||
|
||||
CMD := zfs
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/zpool/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += zfs_main.o # Arg processing
|
||||
${CMD}-objs += zfs_iter.o # Iterator support
|
|
@ -0,0 +1,32 @@
|
|||
DISTFILES = Makefile.in translate.c zinject.c zinject.h
|
||||
|
||||
CMD := zinject
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/zinject/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += translate.o # Translation support
|
||||
${CMD}-objs += zinject.o # Core command
|
|
@ -0,0 +1,34 @@
|
|||
DISTFILES = Makefile.in zpool_main.c zpool_iter.c zpool_util.c zpool_vdev.c zpool_util.h
|
||||
|
||||
CMD := zpool
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/zpool/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += zpool_main.o # Arg processing
|
||||
${CMD}-objs += zpool_iter.o # Iterator support
|
||||
${CMD}-objs += zpool_util.o # Misc support
|
||||
${CMD}-objs += zpool_vdev.o # Converts vdevs to nvlists for libzfs
|
|
@ -0,0 +1,32 @@
|
|||
DISTFILES = Makefile.in ztest.c
|
||||
|
||||
CMD := ztest
|
||||
|
||||
HOSTCFLAGS += @HOSTCFLAGS@
|
||||
HOSTCFLAGS += -I@CMDDIR@/ztest/
|
||||
HOSTCFLAGS += -I@LIBDIR@/libsolcompat/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libport/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libavl/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libnvpair/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libumem/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libuutil/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzcommon/include
|
||||
HOSTCFLAGS += -I@LIBDIR@/libzfs/include
|
||||
|
||||
HOSTLDFLAGS += -lavl -L@LIBDIR@/libavl
|
||||
HOSTLDFLAGS += -lnvpair -L@LIBDIR@/libnvpair
|
||||
HOSTLDFLAGS += -lumem -L@LIBDIR@/libumem
|
||||
HOSTLDFLAGS += -luutil -L@LIBDIR@/libuutil
|
||||
HOSTLDFLAGS += -lzport -L@LIBDIR@/libport
|
||||
HOSTLDFLAGS += -lsolcompat -L@LIBDIR@/libsolcompat
|
||||
HOSTLDFLAGS += -lzcommon -L@LIBDIR@/libzcommon
|
||||
HOSTLDFLAGS += -lzfs -L@LIBDIR@/libzfs
|
||||
|
||||
# Additional shared library paths for executing binaries in-tree
|
||||
export LD_RUN_PATH = @LIBDIR@/libavl:@LIBDIR@/libnvpair:@LIBDIR@/libumem:@LIBDIR@/libuutil:@LIBDIR@/libport:@LIBDIR@/libsolcompat:@LIBDIR@/libzcommon:@LIBDIR@/libzfs
|
||||
|
||||
hostprogs-y := ${CMD}
|
||||
always := $(hostprogs-y)
|
||||
|
||||
${CMD}-objs += ztest.o # Core command
|
||||
|
Loading…
Reference in New Issue