net-dns/libidn2-0.16-r1 fails with: idn2.c:(.text+0x19): undefined reference to `u8_strconv_from_locale' idn2.c:(.text+0x3c): undefined reference to `u8_to_u32' ../.libs/libidn2.so: undefined reference to `u8_strlen' ../.libs/libidn2.so: undefined reference to `uc_combining_class' ../.libs/libidn2.so: undefined reference to `uc_is_general_category' ../.libs/libidn2.so: undefined reference to `u32_to_u8' ../.libs/libidn2.so: undefined reference to `uninorm_nfc' ../.libs/libidn2.so: undefined reference to `uc_script' ../.libs/libidn2.so: undefined reference to `u32_normalize' ../.libs/libidn2.so: undefined reference to `uc_bidi_category' ../.libs/libidn2.so: undefined reference to `UC_CATEGORY_M' which presumably comes from : checking for libunistring... no, consider installing GNU libunistring But dev-libs/libunistring-0.9.7 is installed and rebuilt. It fails both distcc and -distcc -distcc-pump emerges.
Created attachment 475140 [details] emerge --info
Created attachment 475142 [details] emerge --info '=net-dns/libidn2-0.16-r1::gentoo'
Created attachment 475144 [details] emerge -pqv '=net-dns/libidn2-0.16-r1::gentoo'
Created attachment 475146 [details] libidn2-0.16-r1:20170604-071616.log.gz
I am having this issue on two different machines.
(In reply to samurai.no.dojo from comment #0) > checking for libunistring... no, consider installing GNU libunistring Where is your config.log?
Sorry to sound so noob: I do have (already provided) build log, and I lived with that configure log is part of it (almost from beginning of it till the "source configured" line). Can you hint me how to get it out of emerge? With thanks S I tried to provide all in message: * Messages for package net-dns/libidn2-0.16-r1: * ERROR: net-dns/libidn2-0.16-r1::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=net-dns/libidn2-0.16-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=net-dns/libidn2-0.16-r1::gentoo'`. * The complete build log is located at '/var/log/portage/build/net-dns/libidn2-0.16-r1:20170604-224318.log.gz'. * The ebuild environment file is located at '/tmp/portage/net-dns/libidn2-0.16-r1/temp/environment'. * Working directory: '/tmp/portage/net-dns/libidn2-0.16-r1/work/libidn2-0.16-abi_x86_32.x86' * S: '/tmp/portage/net-dns/libidn2-0.16-r1/work/libidn2-0.16' * * The following package has failed to build, install, or execute postinst: * * (net-dns/libidn2-0.16-r1:0/0::gentoo, ebuild scheduled for merge), Log file: * '/var/log/portage/build/net-dns/libidn2-0.16-r1:20170604-224318.log.gz' *
(In reply to samurai.no.dojo from comment #7) > Can you hint me how to get it out of emerge? The config.log files should in your case be at /tmp/portage/net-dns/libidn2-0.16-r1/work/libidn2-0.16-abi_x86_32.x86/config.log and /tmp/portage/net-dns/libidn2-0.16-r1/work/libidn2-0.16-abi_x86_64.amd64/config.log
Created attachment 475212 [details] 32bit config.log
Created attachment 475214 [details] 64bit config.log
(In reply to Jeroen Roovers from comment #8) Thank you, here you go
As far as I can tell, you need to re-emerge libunistring.
As I also posted on the forums about this: For what it's worth, I have been struggling with this issue on one of my systems as well. The suggestions have been on the right track but targeted disabling distcc for the wrong package. I disabled distcc and pump to rebuild *libunistring*... Once that was done, libidn2 built without this error. Hope this helps.
I have tried to rebuild libunstring before with no effect, but now I can confirm that rebuilding libunistring with FEATURES="-distcc -distcc-pump" is the right way to fix this problem. Should not we file another bug? S
Same here. 'FEATURES="${FEATURES} -distcc-pump -distcc" MAKEOPTS=-j2 emerge -1 dev-libs/libunistring' resolved the issue about libidn2.
Per a recommendation on the forum thread, I rebuilt libunistring with just pump disabled and then was still able to build libidn2 successfully.
The same issue happens when building net-libs/gnutls-3.5.14. Building libunistring without distcc solves it just as for libidn2.
(In reply to Zoltan Puskas from comment #17) I can confirm this too.
I hit the same problem with several packages on a host which is using distcc after I upgraded to dev-libs/libunistring-0.9.8: dev-lang/php-7.2.1::gentoo failed (configure phase) dev-lang/php-5.6.33::gentoo failed (configure phase) net-libs/gnutls-3.5.16::gentoo failed (configure phase) app-editors/vim-8.0.1428::gentoo failed (configure phase) media-gfx/exiv2-0.26_p20171104-r1::gentoo failed (configure phase) dev-vcs/git-2.15.1::gentoo failed (compile phase) dev-libs/libunistring-0.9.8 itself was built successfully using distcc. After rebuilding libunistring without distcc the previous failing packages passed configure/compile phase and were merged successfully. git: > [...] > x86_64-pc-linux-gnu-gcc -O2 -pipe -march=sandybridge -mtune=sandybridge -Wall -I. -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DSHA1_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-credential-cache -Wl,-O1 -Wl,--as-needed credential-cache.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt > /usr/lib64/libunistring.so.2: undefined reference to `amemxfrm' > collect2: error: ld returned 1 exit status > distcc[10847] ERROR: compile (null) on localhost failed > make: *** [Makefile:2206: git-http-push] Error 1 > make: *** Waiting for unfinished jobs.... > /usr/lib64/libunistring.so.2: undefined reference to `amemxfrm' > collect2: error: ld returned 1 exit status > distcc[10841] ERROR: compile (null) on localhost failed > make: *** [Makefile:2203: git-http-fetch] Error 1 > /usr/lib64/libunistring.so.2: undefined reference to `amemxfrm' > collect2: error: ld returned 1 exit status > distcc[10827] ERROR: compile (null) on localhost failed > make: *** [Makefile:2199: git-imap-send] Error 1 php: > [...] > checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E > checking for openssl support in libcurl... no > checking for gnutls support in libcurl... no > checking for curl_easy_perform in -lcurl... no > configure: error: There is something wrong. Please check config.log for more information. > > !!! Please attach the following file when seeking support: > !!! /var/tmp/portage/dev-lang/php-7.2.1/work/sapis-build/cli/config.log ...and in config.log: > | #define HAVE_CURL_SSL 1 > | /* end confdefs.h. */ > | #include <ac_nonexistent.h> > configure:23996: checking for openssl support in libcurl > configure:24024: x86_64-pc-linux-gnu-gcc -o conftest -lcurl conftest.c -lbz2 -lz -lpcre -lcrypto -lssl -lcrypto -lrt - > lm -ldl -lnsl -lxml2 -lz -lm -ldl -lcurl >&5 > /usr/lib64/libunistring.so.2: undefined reference to `amemxfrm' > collect2: error: ld returned 1 exit status > distcc[21400] ERROR: compile conftest.c on localhost failed > configure:24024: $? = 1 > configure: program exited with status 1 > configure: failed program was: > | /* confdefs.h */ > Same with gnutls: > [...] > checking for pthread_mutex_lock... yes > checking for libunistring... no > configure: error: > *** > *** Libunistring was not found. To use the included one, use --with-included-unistring > > > !!! Please attach the following file when seeking support: > !!! /var/tmp/portage/net-libs/gnutls-3.5.16/work/gnutls-3.5.16-abi_x86_64.amd64/config.log > configure:15383: checking for pthread_mutex_lock > configure:15383: x86_64-pc-linux-gnu-gcc -o conftest -O2 -pipe -march=sandybridge -mtune=sandybridge -Wl,-O1 -Wl,--as-n > eeded conftest.c >&5 > configure:15383: $? = 0 > configure:15383: result: yes > configure:18112: checking for libunistring > configure:18134: x86_64-pc-linux-gnu-gcc -o conftest -O2 -pipe -march=sandybridge -mtune=sandybridge -Wl,-O1 -Wl,--as-needed conftest.c -lunistring >&5 > /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/libunistring.so: undefined reference to `amemxfrm' > collect2: error: ld returned 1 exit status > distcc[6658] ERROR: compile conftest.c on localhost failed > configure:18134: $? = 1 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "GnuTLS" > | #define PACKAGE_TARNAME "gnutls" > | #define PACKAGE_VERSION "3.5.16" > | #define PACKAGE_STRING "GnuTLS 3.5.16" > | #define PACKAGE_BUGREPORT "bugs@gnutls.org" > | #define PACKAGE_URL "" > | #define PACKAGE "gnutls" > | #define VERSION "3.5.16" > [...] > | #define HAVE_VASPRINTF 1 > | #define HAVE_MMAP 1 > | #define HAVE___REGISTER > | /* end confdefs.h. */ > | #include <uninorm.h> > | int > | main () > | { > | u8_normalize(0, 0, 0, 0, 0); > | ; > | return 0; > | } > configure:18144: result: no > configure:18174: error: > *** > *** Libunistring was not found. To use the included one, use --with-included-unistring > > >
*** Bug 643886 has been marked as a duplicate of this bug. ***
*** Bug 675500 has been marked as a duplicate of this bug. ***
While restoring @world from binary packages, I ran into this: > >>> Emerging (1 of 51) media-libs/harfbuzz-2.5.0::gentoo > * Fetching files in the background. > * To view fetch progress, run in another terminal: > * tail -f /var/log/emerge-fetch.log > >>> Downloading 'http://gentoo.mirrors.pair.com/distfiles/harfbuzz-2.5.0.tar.xz' > wget: symbol lookup error: /usr/lib64/libunistring.so.2: undefined symbol: libunistring_uniwbrk_table > >>> Downloading 'http://mirror.lug.udel.edu/pub/gentoo/distfiles/harfbuzz-2.5.0.tar.xz' > wget: symbol lookup error: /usr/lib64/libunistring.so.2: undefined symbol: libunistring_uniwbrk_table > >>> Downloading 'http://mirrors.rit.edu/gentoo/distfiles/harfbuzz-2.5.0.tar.xz' > wget: symbol lookup error: /usr/lib64/libunistring.so.2: undefined symbol: libunistring_uniwbrk_table > >>> Downloading 'https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.5.0.tar.xz' > wget: symbol lookup error: /usr/lib64/libunistring.so.2: undefined symbol: libunistring_uniwbrk_table > !!! Couldn't download 'harfbuzz-2.5.0.tar.xz'. Aborting. > * Fetch failed for 'media-libs/harfbuzz-2.5.0', Log file: > * '/var/log/portage/build/media-libs/harfbuzz-2.5.0:20190527-035105.log.gz' Just running wget resulted in: > wget: symbol lookup error: /usr/lib64/libunistring.so.2: undefined symbol: libunistring_uniwbrk_table Rebuilding dev-libs/libunistring with pump node disabled didn't help but rebuilding it with distcc disabled altogether fixed the problem.
FEATURES=distcc-pump has been removed from portage.