Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Aug 2012 22:52:46 +0200
From:      Marius Strobl <marius@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r239077 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <20120805205246.GW58433@alchemy.franken.de>
In-Reply-To: <20120805202540.GH2676@deviant.kiev.zoral.com.ua>
References:  <201208052019.q75KJSkY022376@svn.freebsd.org> <20120805202540.GH2676@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 05, 2012 at 11:25:40PM +0300, Konstantin Belousov wrote:
> On Sun, Aug 05, 2012 at 08:19:28PM +0000, Marius Strobl wrote:
> > Author: marius
> > Date: Sun Aug  5 20:19:27 2012
> > New Revision: 239077
> > URL: http://svn.freebsd.org/changeset/base/239077
> > 
> > Log:
> >   Include <vm/vm_param.h> for PA_LOCK_COUNT in order to fix kernel build
> >   with options ZFS after r239065.
> 
> Thank you for catching this.
> But, this means that we do not have any LINT file which build ZFS
> statically ?
> 
> Would it make sense to add zfs somewhere ? Even if only for sparc64 ?

Bascially, "options ZFS" is available on at least amd64, i386, pc98,
powerpc64 and sparc64. At least for me it's handy in development as
I don't have to additionally copy around modules that are in sync
with testing kernels. I tried to add that option to all MD NOTES
files except powerpc (powerpc and powerpc64 share one NOTES but ZFS
only works on powerpc64 due to lack of 64-bit atomic operations on
powerpc). However, this causes linking the kernel to fail due to some
symbols being defined multiple times:
linking kernel
inflate.o: In function `z_inflateReset':
inflate.c:(.text+0x0): multiple definition of `z_inflateReset'
inflate.o:inflate.c:(.text+0x0): first defined here
inflate.o: In function `inflatePrime':
inflate.c:(.text+0xb0): multiple definition of `inflatePrime'
inflate.o:inflate.c:(.text+0xb0): first defined here
<...>
zlib.o: In function `_tr_tally':
zlib.c:(.text+0xc70): multiple definition of `_tr_tally'
trees.o:trees.c:(.text+0x910): first defined here
zlib.o: In function `_tr_init':
zlib.c:(.text+0x17b0): multiple definition of `_tr_init'
trees.o:trees.c:(.text+0x13e0): first defined here
zlib.o: In function `_tr_align':
zlib.c:(.text+0x1a90): multiple definition of `_tr_align'
trees.o:trees.c:(.text+0x16f0): first defined here
<...>
and so on ...
I currently can't remember the details but the fix seemed non-trivial
to me, short of creating something like LINT-ZFS kernel config files
similar to the LINT-VIMAGE etc we have. But generally, yes, building
LINT kernels with static ZFS would be great, especially as this
wasn't the first time it had been broken.

Marius




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120805205246.GW58433>