Commit Graph

54 Commits

Author SHA1 Message Date
Brian Behlendorf 9ee04032de Linux 2.6.31 logical block size compatibility.
Autoconf check for bdev_logical_block_size() helper which replaced
bdev_hardsect_size() as the correct way to get the sector size.
2009-11-12 12:49:01 -08:00
Brian Behlendorf 5bf14d3400 Update zpool-configs to be udev aware.
To simplify creation and management of test configurations the
dragon and x4550 configureis have been integrated with udev.  Our
current best guess as to how we'll actually manage the disks in
these systems is with a udev mapping scheme.  The current leading
scheme is to map each drive to a simpe <CHANNEL><RANK> id.  In
this mapping each CHANNEL is represented by the letters a-z, and
the RANK is represented by the numbers 1-n.  A CHANNEL should
identify a group of RANKS which are all attached to a single
controller, each RANK represents a disk.  This provides a nice
mechanism to locate a specific drive given a known hardware
configuration.  Various hardware vendors use a similar scheme.

A nice side effect of these changes is it allowed me to make
the raid0/raid10/raidz/raidz2 setup functions generic.  This
makes adding new test configs easy, you just need to create
a udev rules file for your test config which conforms to the
naming scheme.
2009-10-21 11:38:51 -07:00
Brian Behlendorf a09d33e929 Update build system for libblkid integration 2009-10-15 16:25:18 -07:00
Brian Behlendorf 09a8c99097 Additional build system update for libefi library.
This include updating all the Makefile.am to have the correct
include paths and libraries.  In addition, the zlib m4 macro was
updated to more correctly integrate with the Makefiles.  And I
added two new macros libblkid and libuuid which will be needed by
subsequent commits for blkid and uuid support respectively.  The
blkid support is optional, the uuid support is mandatory for libefi.
2009-10-14 15:47:41 -07:00
Brian Behlendorf cb91bbe6ce Additional set of build system tweaks for libefi library. 2009-10-09 16:37:32 -07:00
Brian Behlendorf 4f555da51d Add zfs-test package which includes test infrastructure.
This change extends the existing in-tree test infrastructure such
that it can also be run as part of a the installed package.  This
simplifies testing on multiple systems and is generally all around
useful.  The scripts may still be run in-tree and will use the
in-tree build products as long as .script-config exists.
2009-08-17 21:35:06 -07:00
Brian Behlendorf 9cabcac115 Required autoconf support for vdev_disk integration with 2.6.30 kernels.
2.6.22 API change
Unused destroy_dirty_buffers arg removed from prototype.

2.6.24 API change
Empty write barriers are now supported and we should use them.

2.6.24 API change
Size argument dropped from bio_endio and bi_end_io, because the
bi_end_io is only called once now when the request is complete.
There is no longer any need for a size argument.  This also means
that partial IO's are no longer possibe and the end_io callback
should not check bi->bi_size.  Finally, the return type was updated
to void.

2.6.28 API change
open/close_bdev_excl() renamed to open/close_bdev_exclusive().

2.6.29 API change
BIO_RW_SYNC renamed to BIO_RW_SYNCIO.
2009-07-29 17:14:23 -07:00
Brian Behlendorf 3a431c68c2 Remove LINUXINCLUDE from autoconf wrapper, breaks 2.6.28+ kernels.
Modern kernel build systems at least post 2.6.16 will set this properly
so we should not.  In fact post 2.6.28 the include headers have moved
under arch so the guess we make here is completely wrong.  Letting
the kernel build system set this ensure it will be correct.  Also
drop the ulimit from the Makefile which, not surprisingly, turns out
to be very non-portable.  If your expecting failures set the ulimit
in your shell before kicking off the test suite.
2009-07-27 10:39:28 -07:00
Brian Behlendorf 18ffe73d3f Check arch/default/ path when detecting kernel objects on SLES
We still preferentially use arch/arch looking for a native version
but if that fails it is acceptable to use default.
2009-07-24 16:26:17 -07:00
Brian Behlendorf f984d28e0c Cleanly handle --with-linux=NONE and --with-spl=NONE options
when used to generate source rpms.  These should not be fatal
because we actually don't need them until we build the source
rpm.  When doing mock build this is important because these
dependent rpms will only be installed if they are specificed
in the source rpms spec file.
2009-07-02 10:44:43 -07:00
Brian Behlendorf ef0a712858 Distro friendly build system / packaging improvements.
These changes bring the zfs-0.4.4 tree in to compliance with
the spl-0.4.4 packaging changes.  The bottom line is 2 source
rpms and 4 binary rpms will now be generated when creating
packages there will be:

zfs-<version>.src.rpm
- Fully rebuildable source rpm for libzfs and utils.
zfs-modules-<version>.src.rpm
- Fully rebuildable source rpm for kernel modules.

zfs-<version>.<arch>.rpm
- Binary rpm for libzfs and utils.  The utils in this package are
  compatible with all zfs-module rpms of the same version.
zfs-devel-<version>.<arch>.rpm
- Binary rpm containing headers for building against libzfs libraries.

zfs-modules-<verion>-<kernel>.arch.rpm
- Binary rpm containing the kernel modules for a specific kernel build.
  The package name contains the kernel version and you should have one
  of these packages installed to match every kernel on your system.
zfs-modules-devel-<verion>-<kernel>.arch.rpm
- Binary rpm containing development header and module symbols needed
  for building additional kernel modules which are dependent on the
  zfs module stack.

Expect minor interations on these changes as I validate they work
properly on CHAOS, RHEL, Fedora, and SLES style distros.
2009-07-01 10:53:05 -07:00
Brian Behlendorf 0f1012be0a Add basic zlib autoconf check for user space build. 2009-06-09 16:09:17 -07:00
Brian Behlendorf 999035eb32 Only powerpc64 is currently supported not powerpc. 2009-06-09 14:20:44 -07:00
Brian Behlendorf 9c347d872f Core target arch support for conditional compilation of SUBDIRs
which is used by libspl for it's arch specific atomic implementations.
2009-06-08 16:07:43 -07:00
Brian Behlendorf 119a28815f - Update build system to SPL_META_VERSION not VERSION.
- ZFS_LINUX_COMPILE_IFELSE drop explicit CC and force the kernel build
  system to set it this ensure -m64 is set only when appropriate.
2009-05-22 14:49:41 -07:00
Brian Behlendorf d855b57b7c SLES Fixes (Part 1):
- ZFS_AC_KERNEL updated to exclude -obj entries in /usr/src/ when
  attempting to automatically detect your kernel source.
- ZFS_AC_KERNEL check for *-obj directory when attempting to
  detect the objects for your kernel source.
- ZFS_AC_SPL updated to additionally check for Modules.symvers build
  product.  This seems to be specific to SLES system, for Vanilla,
  Fedora, RHEL, and Chaos kernels the symbol file is just called
  Module.symvers.
- ZFS_CHECK_SYMBOL_EXPORT also should also check the exported SPL
  symbols in addition to the exported core kernel systems.
2009-05-22 09:26:36 -07:00
Brian Behlendorf f8764e9947 Add NONE option for --with-linux and --with-spl.
This is used when you need to configure the project but you don't
actually intend to build it.  Thus you don't really need access to
either the kernel or spl headers and symbols.  At Livermore I use
this when I only intend to use the 'make dist' or 'make srpm' target.
2009-03-12 16:31:28 -07:00
Brian Behlendorf f2e7d57653 Packaging update
Make LINUX_VERSION available to Makefile's, add packaging
for user space include headers.
2009-03-12 15:07:29 -07:00
Brian Behlendorf 74432ad2fb Remove remaining compiler flags for disabling specific compiler checks.
All these errors are now either addressed in a gcc-* topic branch, or
in whatever branch the original warning was introduced by (i.e. I fixed
the bug which just went unnoticed until now due to the compiler flags)
2009-03-12 10:55:56 -07:00
Brian Behlendorf 031709f9d5 Remove --Wno-unused and -Wno-missing braces gcc-* patches have been
added to address these issues.  Other instances unused variables will
be addressed in the topic branch which caused the problem.
2009-03-11 22:12:00 -07:00
Brian Behlendorf 64119ce40d Remove -Wno-parentheses this is handled by the gcc-no-parentheses branch. 2009-03-11 13:59:34 -07:00
Brian Behlendorf 4e945fb768 Remove -Wno-unknown-pragmas compile option, all unknown pragmas
have been removed by the gcc-ident-pragmas topic branch.
2009-03-11 13:14:08 -07:00
Brian Behlendorf c8e569dd1c Build system and packaging (RPM support) (Part 2)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:13:30 -07:00
Brian Behlendorf b1b76c6634 Build system and packaging (RPM support) (Part 1)
An update to the build system to properly support all commonly
    used Makefile targets these include:

      make all        # Build everything
      make install    # Install everything
      make clean      # Clean up build products
      make distclean  # Clean up everything
      make dist       # Create package tarball
      make srpm       # Create package source RPM
      make rpm        # Create package binary RPMs
      make tags       # Create ctags and etags for everything

    Extra care was taken to ensure that the source RPMs are fully
    rebuildable against Fedora/RHEL/Chaos kernels.  To build binary
    RPMs from the source RPM for your system simply run:

      rpmbuild --rebuild zfs-x.y.z-1.src.rpm

    This will produce two binary RPMs with correct 'requires'
    dependencies for your kernel.  One will contain all zfs modules
    and support utilities, the other is a devel package for compiling
    additional kernel modules which are dependant on the zfs.

      zfs-x.y.z-1_<kernel version>.x86_64.rpm
      zfs-devel-x.y.2-1_<kernel version>.x86_64.rpm
2009-03-10 11:10:50 -07:00
Brian Behlendorf 4365c44425 Properly detect and set HAVE_GPL_ONLY_SYMBOLS based on license 2009-02-03 09:59:54 -08:00
Brian Behlendorf 6932f09bb5 Reference module not modules in SPL for consistency 2009-01-15 10:14:21 -08:00
Brian Behlendorf d7f4512ed3 Quiet warnings for now 2009-01-09 11:29:00 -08:00
Brian Behlendorf 8c549cdfd6 Add MODDIR directory 2008-12-23 11:06:08 -08:00
Brian Behlendorf fa020b0f7e Remove -Wshadow for now 2008-12-18 13:57:27 -08:00
Brian Behlendorf a7b063d224 Add DEFAULT_INCLUDE to rules, adjust = to += accordingly 2008-12-16 08:58:41 -08:00
Brian Behlendorf cc420402bf Moving addition configure checks to m4 macros 2008-12-15 16:46:34 -08:00
Brian Behlendorf 2712912cb8 Use old autoconf stratagy 2008-12-15 16:27:22 -08:00
Brian Behlendorf 574e2cec0d Minor context change to ease merging 2008-12-15 10:41:15 -08:00
Brian Behlendorf 2bdf9cfae3 Moving all kernel+user configure magic to the correct topic branches where the features are introduced or needed 2008-12-15 10:40:22 -08:00
Brian Behlendorf e631cff898 Remove lustre config, we really shouldn't need this. A user space build -should- be able to contain all the needed APIs. If this is not the case we can reintroduce this. 2008-12-15 10:28:14 -08:00
Brian Behlendorf 9fbc572a59 Refine Makefiles 2008-12-12 10:57:05 -08:00
Brian Behlendorf f429331a49 Remove redundant build options 2008-12-12 10:27:10 -08:00
Brian Behlendorf 2d5777f9a7 Use AM_CFLAGS 2008-12-12 10:15:59 -08:00
Brian Behlendorf 6d78e69193 Add missing include patch 2008-12-12 10:10:16 -08:00
Brian Behlendorf 98ce19f04c Update avl, nvpair, spl to unique build dirs 2008-12-11 13:54:57 -08:00
Brian Behlendorf 5b29fa2d78 Disable unknown pragmas 2008-12-05 16:53:29 -08:00
Brian Behlendorf 644386044b Add -Wno-unknown-pragmas 2008-12-05 15:03:48 -08:00
Brian Behlendorf 9405542384 Update EXTRA_DIST 2008-12-05 14:56:15 -08:00
Brian Behlendorf 18266508c7 Change libport+libsolcompat references to libspl 2008-12-05 14:20:33 -08:00
Brian Behlendorf 9baaa468ac Refresh zfs-branch 2008-12-05 09:46:11 -08:00
Brian Behlendorf 42baae9615 Removed build system from master branch, will relocate to linux-zfs-branch 2008-12-01 15:38:41 -08:00
Brian Behlendorf 62b749c8c8 Working version of M4 macro config 2008-11-26 15:32:39 -08:00
Brian Behlendorf f0e648ca02 Make everything a M4 macro, it's just cleaner that way 2008-11-26 14:29:45 -08:00
Brian Behlendorf e833fd4a5c Additional buidl system cleanup. Starting to move all
of the kernel specific build info in to config/kernel,
likewise and user specific build flags should go in
config/user.  This seems like a reasonable way to go.
2008-11-26 14:06:23 -08:00
Brian Behlendorf dbceaca71d Prefix META_ALIAS with ZFS_ 2008-11-26 13:28:44 -08:00