Commit Graph

4050 Commits

Author SHA1 Message Date
Brian Behlendorf 1e4fb7391c Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-28 16:53:03 -07:00
Brian Behlendorf 1510a95acd Add splat module to zfs.sh script
The splat module is only needed for the spl regression tests.
But if we add it to MODULES then 'zfs.sh -u' will be able to
unload it if needed,  The downside if 'zfs.sh' will always
load it but it's overhead is minimal and in a production
setting you'll always be doing a 'modprobe zfs' anyway so
this is really just for testing.
2010-07-28 16:47:30 -07:00
Brian Behlendorf 9662934bd9 Add uninstall Makefile targets
Extend the Makefiles with an uninstall target to cleanly
remove a package which was installed with 'make install'.

Additionally, ensure a 'depmod -a' is run as part of the
install to update the module dependency information.
2010-07-28 16:47:26 -07:00
Brian Behlendorf 21ff93d4df Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-28 16:39:01 -07:00
Brian Behlendorf 26e61dd074 Generate common.sh with paths from configure
The common.sh script assumed that it was either being run from
in-tree or was installed under /usr/libexec/zfs.  If this was
not the case, because of say the default --prefix=/usr/local,
then the paths would be wrong.  To fix this common.sh is now
generated from common.sh.in with the correct path information
provided at configure time.
2010-07-28 16:30:45 -07:00
Brian Behlendorf 3ed4f42120 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-28 09:41:35 -07:00
Brian Behlendorf 0f237a4379 Add Debian and Slackware style packaging via alien
The long term fix for Debian and Slackware style packaging is
to add native support for building these packages.  Unfortunately,
that is a large chunk of work I don't have time for right now.
That said it would be nice to have at least basic packages for
these distributions.

As a quick short/medium term solution I've settled on using alien
to convert the RPM packages to DEB or TGZ style packages.  The
build system has been updated with the following build targets
which will first build RPM packages and then convert them as
needed to the target package type:

  make rpm: Create .rpm packages
  make deb: Create .deb packages
  make tgz: Create .tgz packages
  make pkg: Create the right package type for your distribution

The solution comes with lot of caveats and your mileage may vary.
But basically the big limitations are that the resulting packages:

  1) Will not have the correct dependency information.
  2) Will not include the kernel version in the release.
  3) Will not handle all differences between distributions.

But the resulting packages should be easy to install and remove
from your system and take care of running 'depmod -a' and such.
As I said at the top this is not the right long term solution.
If any of the upstream distribution maintainers want to jump in
and help do this right for their distribution I'd love the help.
2010-07-28 09:37:04 -07:00
Brian Behlendorf f920386365 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-23 11:43:04 -07:00
Brian Behlendorf 758275af4f Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-07-23 11:42:23 -07:00
Brian Behlendorf 2eee7b0ee5 Merge branch 'fix-branch' into refs/top-bases/zfs-branch 2010-07-23 11:42:22 -07:00
Brian Behlendorf d43294230a Merge commit 'refs/top-bases/fix-branch' into fix-branch 2010-07-23 11:42:21 -07:00
Brian Behlendorf 4471454be8 Merge branch 'fix-stack-ztest' into refs/top-bases/fix-branch 2010-07-23 11:42:21 -07:00
Brian Behlendorf 085c18fa55 Merge commit 'refs/top-bases/fix-stack-ztest' into fix-stack-ztest 2010-07-23 11:42:20 -07:00
Ned Bass be92edb218 Add extra guard space if needed
Some buggy NPTL threading implementations include the guard area within
the stack size allocations.  In this case we need to allocate an extra
page to account for the guard area since we only have two pages of usable
stack on Linux.  Added an autoconf test that detects such implementations
by running a test program designed to segfault if the bug is present.
Set a flag NPTL_GUARD_WITHIN_STACK that is tested to decide if extra
stack space must be allocated for the guard area.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-07-23 11:38:00 -07:00
Ned Bass 16a9f68137 Autoconf check for buggy stack guard region
Some buggy NPTL threading implementations include the guard area within
the stack size allocations.  In this case we need to allocate an extra
page to account for the guard area since we only have two pages of usable
stack on Linux.  Added an autoconf test that detects such implementations
by running a test program designed to segfault if the bug is present.
Set a flag NPTL_GUARD_WITHIN_STACK that is tested to decide if extra
stack space must be allocated for the guard area.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-07-23 11:35:20 -07:00
Brian Behlendorf f00f30038a Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-23 10:44:36 -07:00
Brian Behlendorf 7fa6f8b93a Restrict usage of -fstack-check option
The stack check implementation in older versions of gcc has
a fairly low default limit on STACK_CHECK_MAX_FRAME_SIZE of
roughly 4096.  This results in numerous warning when it is
used with code which was designed to run in user space and
thus may be relatively stack heavy.  The avoid these warnings,
which are fatal with -Werror, this patch targets the use of
-fstack-check to libraries which are compiled in both user
space and kernel space.  The only utility which uses this
flag is ztest which is designed to simulate running in the
kernel and must meet the -fstack-check requirements.  All
other user space utilities do not use -fstack-check.

  warning: frame size too large for reliable stack checking
  warning: try reducing the number of local variables
2010-07-23 10:38:07 -07:00
Brian Behlendorf c0932825ea Reduce stack move path local to heap
To use the -fstack-check gcc option each stack frame must be
keep reasonably small.  In this case the path local is moved
from the stack to the heap to keep us under the limit.

  warning: frame size too large for reliable stack checking
  warning: try reducing the number of local variables
2010-07-23 10:36:49 -07:00
Brian Behlendorf 064837c20a Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-21 10:09:04 -07:00
Brian Behlendorf acd6237623 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-07-21 10:08:25 -07:00
Brian Behlendorf f39882ec1f Merge branch 'fix-branch' into refs/top-bases/zfs-branch 2010-07-21 10:08:24 -07:00
Brian Behlendorf e16508d660 Merge commit 'refs/top-bases/fix-branch' into fix-branch 2010-07-21 10:08:23 -07:00
Brian Behlendorf a2cf158872 Merge branch 'fix-stack-ztest' into refs/top-bases/fix-branch 2010-07-21 10:08:22 -07:00
Brian Behlendorf 8d6a2d0626 Merge commit 'refs/top-bases/fix-stack-ztest' into fix-stack-ztest 2010-07-21 10:08:22 -07:00
Ned Bass 75d868af70 Fixed typo that set thread STACK_SIZE to 24k instead of 8k
__linux__ was mispelled as _linux_ so #ifdef was always
selecting the Solaris STACK_SIZE value.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-07-21 10:04:21 -07:00
Brian Behlendorf 6d72cb7326 Fix pthread stack size on 32-bit platforms
For some reason which remains mysterious to me the shared library
which calls pthread_create() must be linked with -pthread.  If this
is not done on 32-bit system the default ulimit stack size is used.
Surprisingly, on a 64-bit system the stack limit specified by the
pthread_attr is honored even when -pthread is not passed when linking
the shared library.
2010-07-21 09:59:39 -07:00
Brian Behlendorf e03cc2e17f Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-17 16:04:54 -07:00
Ned Bass 84f737b448 Only try to unload modules whose use count is 0
This avoids errors from zfs.sh -u when, for example, zlib_deflate is in
use by btrfs.
2010-07-17 16:00:54 -07:00
Brian Behlendorf 567c45541e Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-14 12:49:22 -07:00
Brian Behlendorf 548c9c6829 Use $target_cpu instead of `arch`
We should not be using arch for a few reasons.  First off it might
not be installed on their system, and secondly they may be trying
to cross-compile.
2010-07-14 12:44:42 -07:00
Brian Behlendorf d81440c8ab Check sourcelink is set before passing to readlink
When no source was found in any of the expected paths treat
this as fatal and provide the user with a hint as to what
they should do.
2010-07-14 12:44:37 -07:00
Brian Behlendorf bd576fc191 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-14 10:43:11 -07:00
Brian Behlendorf dccff58e11 Only make compiler warnings fatal with --enable-debug
While in theory I like the idea of compiler warnings always being
fatal.  In practice this causes problems when small harmless errors
cause build failures for end users.  To handle this I've updated
the build system such that -Werror is only used when --enable-debug
is passed to configure.  This is how I always build when developing
so I'll catch all build warnings and end users will not get stuck
by minor issues.
2010-07-14 10:41:48 -07:00
Brian Behlendorf b5f7613698 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-12 10:23:52 -07:00
Brian Behlendorf 99694a2e81 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-07-12 10:23:05 -07:00
Brian Behlendorf 4b576456c7 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2010-07-12 10:23:04 -07:00
Brian Behlendorf 930b48bd2c Merge commit 'refs/top-bases/gcc-branch' into gcc-branch 2010-07-12 10:23:03 -07:00
Brian Behlendorf b1ac2755a0 Merge branch 'gcc-fortify-source' into refs/top-bases/gcc-branch 2010-07-12 10:23:03 -07:00
Brian Behlendorf 007b891fc7 Fix -Werror=format-security compiler option
Noticed under Ubuntu kernel builds, there were two instances where
printf() was not called with a "%s" and instread directly printed
the string.  This can potentially result in a crash and is considered
bad form by gcc.  It has been fixed by adding the needed "%s".
2010-07-12 10:11:48 -07:00
Brian Behlendorf 99fead1822 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-02 14:03:11 -07:00
Lars Johannsen 77f748fd1c Allow config/build to work with autoconf-2.65
As of autoconf-2.65 the AC_LANG_SOURCE source macro no longer
includes the confdef.h results when expanded.  To handle this
simply explicitly include confdef.h in conftest.c.  This will
cause two copies to of confdef.h to be added to the test for
earlier autoconf versions but this is not harmful.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-07-02 13:56:00 -07:00
Brian Behlendorf e624241845 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-01 20:46:26 -07:00
Brian Behlendorf 61119d3f5b Linux-2.6.33 compat, check <generated/utsrelease.h> for UTS_RELEASE
It seems the upstream community moved the definition of UTS_RELEASE
yet again as of linux-2.6.33.  Update the build system to check in
all three possible locations where your kernel version may be defined.

    $kernelbuild/include/linux/version.h
    $kernelbuild/include/linux/utsrelease.h
    $kernelbuild/include/generated/utsrelease.h
2010-07-01 20:43:36 -07:00
Brian Behlendorf 7febafe089 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-07-01 10:42:50 -07:00
Brian Behlendorf 7f54d558c9 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-07-01 10:42:01 -07:00
Brian Behlendorf 428d8d8a9b Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2010-07-01 10:42:00 -07:00
Brian Behlendorf 6de663ff06 Merge commit 'refs/top-bases/gcc-branch' into gcc-branch 2010-07-01 10:41:59 -07:00
Brian Behlendorf 049a26b800 Merge branch 'gcc-fortify-source' into refs/top-bases/gcc-branch 2010-07-01 10:41:59 -07:00
Brian Behlendorf 8db31e251d Update zfs.spec.in to reference updated README.markdown file
The spec file references the README by the previous name which
has changed to make it github friendly.  This results in an
rpm build failure.
2010-07-01 10:36:00 -07:00
Brian Behlendorf 3b54f5030e Use VERIFY() for asprintf due to rpm -D_FORTIFY_SOURCE=2
This check is part of ztest and a memory failure here is unlikely.
However, if this does occur simply exiting is an perfectly valid
way to handle the issue and it resulves the compiler warning.

        ztest.c:5522: error: ignoring return value of 'asprintf',
        declared with attribute warn_unused_result
2010-07-01 10:35:11 -07:00