Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Oct 2011 23:30:51 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Robert Millan <rmh@freebsd.org>
Cc:        freebsd-fs@freebsd.org, Adrian Chadd <adrian@freebsd.org>
Subject:   Re: [PATCH] fix gratuitous dependencies in ZFS libraries / utilities
Message-ID:  <20111029213051.GG1713@garage.freebsd.pl>
In-Reply-To: <20111028200824.GA2757@thorin>
References:  <20111028200824.GA2757@thorin>

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

--5uO961YFyoDlzFnP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Oct 28, 2011 at 10:08:24PM +0200, Robert Millan wrote:
>=20
> Hi,
>=20
> Some of the ZFS libraries and utilities are linked with libraries they
> don't use:
>=20
>  - zinject doesn't use libavl
>  - ztest doesn't use libz
>  - zdb uses neither libavl nor libz
>  - zfs uses neither libbsdxml nor libm, nor libsbuf
>  - zpool uses neither libbsdxml nor libm, nor libsbuf
>=20
> In addition, libzfs needs libm because it uses pow(), however it isn't
> linked with -lm.  This went unnoticed because all its users had -lm befor=
e.
>=20
> Attached patch (tested with "make buildworld") fixes these problems.

Sounds good.

> Index: cddl/usr.bin/zinject/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/usr.bin/zinject/Makefile	(revision 226869)
> +++ cddl/usr.bin/zinject/Makefile	(working copy)
> @@ -19,8 +19,8 @@
>  CFLAGS+=3D -I${.CURDIR}/../../contrib/opensolaris/head
>  CFLAGS+=3D -I${.CURDIR}/../../lib/libumem
> =20
> -DPADD=3D	${LIBAVL} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBUUTIL=
} \
> +DPADD=3D	${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBUUTIL} \
>  	${LIBZFS} ${LIBZPOOL}
> -LDADD=3D	-lavl -lgeom -lm -lnvpair -lumem -luutil -lzfs -lzpool
> +LDADD=3D	-lgeom -lm -lnvpair -lumem -luutil -lzfs -lzpool
> =20
>  .include <bsd.prog.mk>
> Index: cddl/usr.bin/ztest/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/usr.bin/ztest/Makefile	(revision 226869)
> +++ cddl/usr.bin/ztest/Makefile	(working copy)
> @@ -18,8 +18,8 @@
>  CFLAGS+=3D -I${.CURDIR}/../../lib/libumem
> =20
>  DPADD=3D	${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBZPOOL} \
> -	${LIBPTHREAD} ${LIBZ} ${LIBAVL}
> -LDADD=3D	-lm -lnvpair -lumem -lzpool -lpthread -lz -lavl
> +	${LIBPTHREAD} ${LIBAVL}
> +LDADD=3D	-lm -lnvpair -lumem -lzpool -lpthread -lavl
> =20
>  CSTD=3D	c99
> =20
> Index: cddl/usr.sbin/zdb/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/usr.sbin/zdb/Makefile	(revision 226869)
> +++ cddl/usr.sbin/zdb/Makefile	(working copy)
> @@ -23,9 +23,9 @@
>  CFLAGS+=3D -I${.CURDIR}/../../../cddl/contrib/opensolaris/head
>  CFLAGS+=3D -I${.CURDIR}/../../lib/libumem
> =20
> -DPADD=3D	${LIBAVL} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBPTHREAD} ${LIBUM=
EM} \
> -	${LIBUUTIL} ${LIBZ} ${LIBZFS} ${LIBZPOOL}
> -LDADD=3D	-lavl -lgeom -lm -lnvpair -lpthread -lumem -luutil -lz -lzfs -l=
zpool
> +DPADD=3D	${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBPTHREAD} ${LIBUMEM} \
> +	${LIBUUTIL} ${LIBZFS} ${LIBZPOOL}
> +LDADD=3D	-lgeom -lm -lnvpair -lpthread -lumem -luutil -lzfs -lzpool
> =20
> =20
>  .include <bsd.prog.mk>
> Index: cddl/lib/libzfs/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/lib/libzfs/Makefile	(revision 226869)
> +++ cddl/lib/libzfs/Makefile	(working copy)
> @@ -6,8 +6,8 @@
>  .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzfs/common
> =20
>  LIB=3D	zfs
> -DPADD=3D	${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL}
> -LDADD=3D	-lmd -lpthread -lumem -lutil
> +DPADD=3D	${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} ${LIBM}
> +LDADD=3D	-lmd -lpthread -lumem -lutil -lm
> =20
>  SRCS=3D	deviceid.c \
>  	fsshare.c \
> Index: cddl/sbin/zfs/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/sbin/zfs/Makefile	(revision 226869)
> +++ cddl/sbin/zfs/Makefile	(working copy)
> @@ -21,8 +21,8 @@
>  CFLAGS+=3D -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common=
/sys
>  CFLAGS+=3D -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs
> =20
> -DPADD=3D	${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBUF} ${LIBUM=
EM} \
> +DPADD=3D	${LIBGEOM} ${LIBNVPAIR} ${LIBUMEM} \
>  	${LIBUTIL} ${LIBUUTIL} ${LIBZFS}
> -LDADD=3D	-lbsdxml -lgeom -lm -lnvpair -lsbuf -lumem -lutil -luutil -lzfs
> +LDADD=3D	-lgeom -lnvpair -lumem -lutil -luutil -lzfs
> =20
>  .include <bsd.prog.mk>
> Index: cddl/sbin/zpool/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- cddl/sbin/zpool/Makefile	(revision 226869)
> +++ cddl/sbin/zpool/Makefile	(working copy)
> @@ -26,8 +26,8 @@
>  CFLAGS+=3D -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzpool/c=
ommon
>  CFLAGS+=3D -I${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/stat/common
> =20
> -DPADD=3D	${LIBAVL} ${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBU=
F} \
> +DPADD=3D	${LIBAVL} ${LIBGEOM} ${LIBNVPAIR} \
>  	${LIBUMEM} ${LIBUTIL} ${LIBUUTIL} ${LIBZFS}
> -LDADD=3D	-lavl -lbsdxml -lgeom -lm -lnvpair -lsbuf -lumem -lutil -luutil=
 -lzfs
> +LDADD=3D	-lavl -lgeom -lnvpair -lumem -lutil -luutil -lzfs
> =20
>  .include <bsd.prog.mk>

--=20
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://yomoli.com

--5uO961YFyoDlzFnP
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAk6scIsACgkQForvXbEpPzSsQwCgqycNxm/aDYTL+4fB0iTEw1/+
EZIAoMecKDtb/Ayyi9OK+DtVRXuAXT5m
=5RDT
-----END PGP SIGNATURE-----

--5uO961YFyoDlzFnP--



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