Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Oct 2011 22:08:24 +0200
From:      Robert Millan <rmh@freebsd.org>
To:        Kostik Belousov <kostikbel@gmail.com>, Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-fs@freebsd.org
Subject:   [PATCH] fix gratuitous dependencies in ZFS libraries / utilities
Message-ID:  <20111028200824.GA2757@thorin>

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

--ADZbWkCsHQ7r3kzd
Content-Type: multipart/mixed; boundary="Kj7319i9nmIyA2yE"
Content-Disposition: inline


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


Hi,

Some of the ZFS libraries and utilities are linked with libraries they
don't use:

 - 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

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 before.

Attached patch (tested with "make buildworld") fixes these problems.

--=20
Robert Millan

--Kj7319i9nmIyA2yE
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="gratuitous_dependencies.diff"
Content-Transfer-Encoding: quoted-printable

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} ${LIBUMEM=
} \
-	${LIBUUTIL} ${LIBZ} ${LIBZFS} ${LIBZPOOL}
-LDADD=3D	-lavl -lgeom -lm -lnvpair -lpthread -lumem -luutil -lz -lzfs -lzp=
ool
+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/s=
ys
 CFLAGS+=3D -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs
=20
-DPADD=3D	${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBUF} ${LIBUMEM=
} \
+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/com=
mon
 CFLAGS+=3D -I${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/stat/common
=20
-DPADD=3D	${LIBAVL} ${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBUF}=
 \
+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>

--Kj7319i9nmIyA2yE--

--ADZbWkCsHQ7r3kzd
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/kFreeBSD)

iQIcBAEBCAAGBQJOqwu3AAoJELd1onhloKnOreAQAImOMVpFCbvH1BKT8HjsoBSI
5hdC4b3HcCvzEyo7RUGH5TWHSK36uRm6I/bBco7RQDXmJOqbFoCjsjfqPDASgg5d
FfYEH4adbdAVLuWsX5CnqeyzZcHpFWiFLVsuRXTMef4+J54hokLdJsxBxyK+Bw+W
MFh7OWhgy3QPR1WjKyalUXTRKjHZByrfyD+tp9H00z8VSBZn0S7nGZyXu9pURqDL
1UDQ2hN8T7wXozVLdOuzB/ufh0Govdn5T4+cNdWCYJ1h/ff7efAzD/+8BmzYeDFg
UDJD43sOgwYVIqXsFgzvksug43RyHsLXsT+oI5e0j722v5utXUGGL9NN7POAQGzH
i3wBZy1Z/6uKuwUDjQZrmJog+PU0Chh+HvlUkX4TQ/rbBbYBPMnwwSum9wFA5a86
o4yL+DDFHBlX/1p5EZXTDhGFfLW5H36gQty27ShRMHI4sacGcZkBlmipSNlVpi/P
vEhmjnyN3UlYdynYNqAWKDFz5ElADqhwPf0ISYeghSVSnHrkkurnVUwlBMXKNDFW
eeL0H+SIMEQDd+gJj4o6VYgwo9TR+4ZPzNKcYqHx0L/ChIBxEYdgvPOYHn4DDiDb
TLXcRFzMLmjmbeTudHGkWf8/wFfLkc/fhW5Q4uNUnUbRtHE6xB9JjCLc4cUPGEjn
YlzRE3ii1ky44E4BOhsu
=0vB7
-----END PGP SIGNATURE-----

--ADZbWkCsHQ7r3kzd--



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