git: 9e9c651caceb - main - cddl: fix missing ZFS library dependencies

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Mon, 15 Nov 2021 14:42:35 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=9e9c651caceb9ecd17131e8bb29791ba4cf1cec7

commit 9e9c651caceb9ecd17131e8bb29791ba4cf1cec7
Author:     Greg V <greg@unrelenting.technology>
AuthorDate: 2021-10-16 16:29:28 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2021-11-15 14:42:07 +0000

    cddl: fix missing ZFS library dependencies
    
    In 9fae47666 zfsd got a libspl dependency to avoid undefined references.
    However that workaround did not help external consumers of libzfs_core.
    
    Fix all missing dependencies lld 13 and the rtld complain about.
    
    Reviewed by:    freqlabs, markj
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D32521
---
 Makefile.inc1                      | 8 ++++++--
 cddl/lib/Makefile                  | 4 +++-
 cddl/lib/libavl/Makefile           | 1 +
 cddl/lib/libnvpair/Makefile        | 1 +
 cddl/lib/libzfs_core/Makefile      | 2 +-
 cddl/lib/libzutil/Makefile         | 2 +-
 cddl/usr.sbin/zfsd/Makefile.common | 2 +-
 share/mk/src.libnames.mk           | 6 ++++--
 8 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/Makefile.inc1 b/Makefile.inc1
index ba1c74adabe1..6d6991a395c2 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -3027,11 +3027,15 @@ _cddl_lib_libzfs_core= cddl/lib/libzfs_core
 _cddl_lib_libzfs= cddl/lib/libzfs
 _cddl_lib_libzfsbootenv= cddl/lib/libzfsbootenv
 
+cddl/lib/libavl__L: cddl/lib/libspl__L
+
+cddl/lib/libnvpair__L: cddl/lib/libspl__L
+
 cddl/lib/libtpool__L: cddl/lib/libspl__L
 
-cddl/lib/libzutil__L: cddl/lib/libavl__L cddl/lib/libtpool__L
+cddl/lib/libzutil__L: cddl/lib/libavl__L lib/libgeom__L lib/msun__L cddl/lib/libtpool__L
 
-cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L
+cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L cddl/lib/libspl__L cddl/lib/libzutil__L
 
 cddl/lib/libzfs__L: cddl/lib/libzfs_core__L lib/msun__L lib/libutil__L
 cddl/lib/libzfs__L: lib/libthr__L lib/libmd__L lib/libz__L cddl/lib/libumem__L
diff --git a/cddl/lib/Makefile b/cddl/lib/Makefile
index ae6862f70443..5ca0d56b291a 100644
--- a/cddl/lib/Makefile
+++ b/cddl/lib/Makefile
@@ -36,11 +36,13 @@ _pam_zfs_key=	pam_zfs_key
 .endif
 .endif
 
+SUBDIR_DEPEND_libavl=		libspl
 SUBDIR_DEPEND_libctf=		libspl
 SUBDIR_DEPEND_libdtrace=	libctf
+SUBDIR_DEPEND_libnvpair=	libspl
 SUBDIR_DEPEND_libtpool=		libspl
 SUBDIR_DEPEND_libuutil=		libavl libspl
-SUBDIR_DEPEND_libzfs_core=	libnvpair
+SUBDIR_DEPEND_libzfs_core=	libnvpair libspl libzutil
 SUBDIR_DEPEND_libzfs=	libavl libnvpair libumem libuutil libzfs_core libzutil
 SUBDIR_DEPEND_libzpool=	libavl libnvpair libumem libicp
 SUBDIR_DEPEND_libzutil=	libavl libtpool
diff --git a/cddl/lib/libavl/Makefile b/cddl/lib/libavl/Makefile
index 2f7b9ad30856..b5e3b458f982 100644
--- a/cddl/lib/libavl/Makefile
+++ b/cddl/lib/libavl/Makefile
@@ -4,6 +4,7 @@
 
 PACKAGE=	runtime
 LIB=	avl
+LIBADD=	spl
 SRCS=	avl.c
 WARNS?=	3
 CFLAGS+= -DIN_BASE
diff --git a/cddl/lib/libnvpair/Makefile b/cddl/lib/libnvpair/Makefile
index 670253eff7c1..aaf76ed3fb28 100644
--- a/cddl/lib/libnvpair/Makefile
+++ b/cddl/lib/libnvpair/Makefile
@@ -4,6 +4,7 @@
 .PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libnvpair
 
 LIB=	nvpair
+LIBADD=	spl
 
 PACKAGE=	runtime
 # user
diff --git a/cddl/lib/libzfs_core/Makefile b/cddl/lib/libzfs_core/Makefile
index abe0348f2313..5a7475f55428 100644
--- a/cddl/lib/libzfs_core/Makefile
+++ b/cddl/lib/libzfs_core/Makefile
@@ -7,7 +7,7 @@
 
 
 LIB=	zfs_core
-LIBADD=	nvpair
+LIBADD=	nvpair spl zutil
 PACKAGE=	runtime
 
 INCS=	libzfs_core.h
diff --git a/cddl/lib/libzutil/Makefile b/cddl/lib/libzutil/Makefile
index 85467151a5bb..2e6b53658b22 100644
--- a/cddl/lib/libzutil/Makefile
+++ b/cddl/lib/libzutil/Makefile
@@ -5,7 +5,7 @@
 .PATH: ${SRCTOP}/sys/contrib/openzfs/module/os/freebsd/zfs
 
 LIB=	zutil
-LIBADD=	avl tpool
+LIBADD=	avl geom m tpool
 PACKAGE=	runtime
 
 INCS = zutil_import.h
diff --git a/cddl/usr.sbin/zfsd/Makefile.common b/cddl/usr.sbin/zfsd/Makefile.common
index c18c796ce0ed..5e9257d7b37e 100644
--- a/cddl/usr.sbin/zfsd/Makefile.common
+++ b/cddl/usr.sbin/zfsd/Makefile.common
@@ -26,7 +26,7 @@ CFLAGS+= -I${SRCTOP}/cddl/usr.sbin
 # use issetugid(2)
 CFLAGS+= -D_MACHINE_FLOAT_H_ -DHAVE_ISSETUGID
 
-LIBADD+=	devdctl zfs zfs_core util geom bsdxml sbuf nvpair avl spl uutil zutil
+LIBADD+=	devdctl zfs util geom bsdxml sbuf nvpair avl uutil zutil
 
 cscope:
 	find ${.CURDIR} -type f -a \( -name "*.[ch]" -o -name "*.cc" \) \
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index 227691804e2a..7873d05d18da 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -260,6 +260,7 @@ LIBVERIEXEC?=	${LIBVERIEXECDIR}/libveriexec.a
 _DP_80211=	sbuf bsdxml
 _DP_9p=		sbuf
 _DP_archive=	z bz2 lzma bsdxml zstd
+_DP_avl=	spl
 _DP_zstd=	pthread
 .if ${MK_BLACKLIST} != "no"
 _DP_blacklist+=	pthread
@@ -380,6 +381,7 @@ _DP_stats=	sbuf pthread
 _DP_stdthreads=	pthread
 _DP_tacplus=	md
 _DP_ncursesw=	tinfow
+_DP_nvpair=	spl
 _DP_panelw=	ncursesw
 _DP_rpcsec_gss=	gssapi
 _DP_smb=	kiconv
@@ -391,9 +393,9 @@ _DP_uutil=	avl spl
 _DP_zfs=	md pthread umem util uutil m avl bsdxml crypto geom nvpair \
 	z zfs_core zutil
 _DP_zfsbootenv= zfs nvpair
-_DP_zfs_core=	nvpair
+_DP_zfs_core=	nvpair spl zutil
 _DP_zpool=	md pthread z icp spl nvpair avl umem
-_DP_zutil=	avl tpool
+_DP_zutil=	avl geom m tpool
 _DP_be=		zfs spl nvpair zfsbootenv
 _DP_netmap=
 _DP_ifconfig=	m