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>

index | next in thread | previous in thread | raw e-mail

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



home | help

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