On 08/08/2018 07:00 PM, Jim Fehlig wrote:
While local builds succeed fine, a build worker building in a chroot
environment is encountering errors when linking some items in tools/nss
and tests, e.g.
[ 469s] libtool: link: gcc -shared -fPIC -DPIC -Wl,--whole-archive
nss/.libs/libnss_libvirt_impl.a -Wl,--no-whole-archive -lpthread -lutil -ltirpc
-fstack-protector-strong -grecord-gcc-switches -O2 -fstack-protector-strong -g
-Wl,--version-script=./nss/libvirt_nss.syms -Wl,-z -Wl,relro -Wl,-z -Wl,now
-Wl,--no-copy-dt-needed-entries -Wl,-z -Wl,defs -grecord-gcc-switches -O2
-fstack-protector-strong -g -pthread -Wl,-soname -Wl,libnss_libvirt.so.2 -o
nss/.libs/libnss_libvirt.so.2
[ 469s] nss/.libs/libnss_libvirt_impl.a(libvirt_nss_la-virjsoncompat.o): In function
`virJSONJanssonOnce':
[ 469s] /home/abuild/rpmbuild/BUILD/libvirt-4.6.0/src/util/virjsoncompat.c:63: undefined
reference to `dlopen'
[ 469s] /home/abuild/rpmbuild/BUILD/libvirt-4.6.0/src/util/virjsoncompat.c:79: undefined
reference to `dlsym'
...
A similar problem was fixed in commit b018ada3 and inspires this fix.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
tools/Makefile.am | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 1452d984a0..26c887649e 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -527,7 +527,8 @@ nss_libnss_libvirt_impl_la_CFLAGS = \
nss_libnss_libvirt_impl_la_LIBADD = \
../gnulib/lib/libgnu.la \
- ../src/libvirt-nss.la
+ ../src/libvirt-nss.la \
+ $(DLOPEN_LIBS)
nss_libnss_libvirt_la_SOURCES =
nss_libnss_libvirt_la_LDFLAGS = \
@@ -554,7 +555,8 @@ nss_libnss_libvirt_guest_impl_la_CFLAGS = \
nss_libnss_libvirt_guest_impl_la_LIBADD = \
../gnulib/lib/libgnu.la \
- ../src/libvirt-nss.la
+ ../src/libvirt-nss.la \
+ $(DLOPEN_LIBS)
nss_libnss_libvirt_guest_la_SOURCES =
nss_libnss_libvirt_guest_la_LDFLAGS = \
While I agree that we need to put DLOPEN_LIBS somewhere shouldn't be
that the lib that compiles virjsoncompat.c in? I mean, that is the
source of the dependency and therefore anything linking with it will
need similar treatment. Something among these lines (quickly written and
untested patch):
diff --git i/src/Makefile.am w/src/Makefile.am
index a4f213480e..51c134f08e 100644
--- i/src/Makefile.am
+++ w/src/Makefile.am
@@ -744,6 +744,7 @@ libvirt_setuid_rpc_client_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(LIBXML_LIBS) \
$(SECDRIVER_LIBS) \
+ $(DLOPEN_LIBS) \
$(NULL)
libvirt_setuid_rpc_client_la_CFLAGS = \
-DLIBVIRT_SETUID_RPC_CLIENT \
@@ -1000,6 +1001,7 @@ libvirt_nss_la_CFLAGS = \
$(NULL)
libvirt_nss_la_LDFLAGS = \
$(AM_LDFLAGS) \
+ $(DLOPEN_LIBS) \
$(NULL)
endif WITH_NSS
diff --git i/src/util/Makefile.inc.am w/src/util/Makefile.inc.am
index 8ef9ee1dfa..c5c50f1844 100644
--- i/src/util/Makefile.inc.am
+++ w/src/util/Makefile.inc.am
@@ -278,6 +278,7 @@ libvirt_util_la_LIBADD = \
$(NUMACTL_LIBS) \
$(ACL_LIBS) \
$(GNUTLS_LIBS) \
+ $(DLOPEN_LIBS) \
$(NULL)
Michal