From 9c07154b652829899c18d44cc3ff78101041723b Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6kt=C3=BCrk=20Y=C3=BCksek?= Date: Tue, 4 Jun 2019 14:46:45 -0400 Subject: [PATCH] sys-apps/rng-tools: fix a linking problem with USE=pkcs11 #684228 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In function init_pkcs11_entropy_source(), there is a call to ERR_reason_error_string(), which is defined in libcrypto. This causes linking problems for rng-tools under certain configurations: $ ./configure --disable-jitterentropy --without-nistbeacon --with-pkcs11 ... $ make ... gcc -pthread -g -O2 -pthread -o rngd rngd-rngd.o rngd-rngd_entsource.o rngd-rngd_linux.o rngd-util.o rngd-rngd_rdrand.o rdrand_asm.o rngd-rngd_pkcs11.o librngd.a -lsysfs -lgcrypt -lsysfs -lp11 -lgcrypt -lsysfs /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: rngd-rngd_pkcs11.o: undefined reference to symbol 'ERR_reason_error_string@@OPENSSL_1_1_0' /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libcrypto.so.1.1: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [Makefile:609: rngd] Error 1 make[2]: Leaving directory '/tmp/rng-tools' make[1]: *** [Makefile:888: all-recursive] Error 1 make[1]: Leaving directory '/tmp/rng-tools' make: *** [Makefile:458: all] Error 2 This symbol is defined in libcrypto: $ readelf --dyn-syms /usr/lib64/libcrypto.so | grep ERR_reason_error_string 314: 000000000012cf60 155 FUNC GLOBAL DEFAULT 12 ERR_reason_error_string@@OPENSSL_1_1_0 Linking rngd against libcrypto when pkcs11 is enabled fixes the issue. Bug: https://github.com/nhorman/rng-tools/pull/61 Closes: https://bugs.gentoo.org/684228 Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Göktürk Yüksek --- sys-apps/rng-tools/rng-tools-6.7.ebuild | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys-apps/rng-tools/rng-tools-6.7.ebuild b/sys-apps/rng-tools/rng-tools-6.7.ebuild index e674b8de1d30..ca5962d6923d 100644 --- a/sys-apps/rng-tools/rng-tools-6.7.ebuild +++ b/sys-apps/rng-tools/rng-tools-6.7.ebuild @@ -45,6 +45,14 @@ PATCHES=( src_prepare() { echo 'bin_PROGRAMS = randstat' >> contrib/Makefile.am || die + + # rngd_pkcs11.c needs to be linked against -lcrypto #684228 + # See: https://github.com/nhorman/rng-tools/pull/61 + if use pkcs11; then + sed -e '/rngd_pkcs11.c$/ a rngd_LDADD\t+= -lcrypto' \ + -i Makefile.am || die + fi + default mv README.md README || die -- 2.26.2