Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 620738 - dev-libs/libunistring FEATURES=distcc-pump - configure: /usr/lib64/libunistring.so: undefined reference to `unilbrk_is_all_ascii'
Summary: dev-libs/libunistring FEATURES=distcc-pump - configure: /usr/lib64/libunistri...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Scheme Project
URL:
Whiteboard:
Keywords:
: 643886 675500 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-06-04 07:32 UTC by samurai.no.dojo
Modified: 2020-03-28 02:50 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge.info,17.66 KB, text/plain)
2017-06-04 07:34 UTC, samurai.no.dojo
Details
emerge --info '=net-dns/libidn2-0.16-r1::gentoo' (emerge.info,17.77 KB, text/plain)
2017-06-04 07:39 UTC, samurai.no.dojo
Details
emerge -pqv '=net-dns/libidn2-0.16-r1::gentoo' (emerge.pqv,198 bytes, text/plain)
2017-06-04 07:39 UTC, samurai.no.dojo
Details
libidn2-0.16-r1:20170604-071616.log.gz (libidn2-0.16-r1:20170604-071616.log.gz,15.43 KB, application/gzip)
2017-06-04 07:40 UTC, samurai.no.dojo
Details
32bit config.log (32b_config.log,151.46 KB, text/plain)
2017-06-05 08:47 UTC, samurai.no.dojo
Details
64bit config.log (64b_config.log,152.13 KB, text/plain)
2017-06-05 08:48 UTC, samurai.no.dojo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description samurai.no.dojo 2017-06-04 07:32:10 UTC
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.
Comment 1 samurai.no.dojo 2017-06-04 07:34:35 UTC
Created attachment 475140 [details]
emerge --info
Comment 2 samurai.no.dojo 2017-06-04 07:39:09 UTC
Created attachment 475142 [details]
emerge --info '=net-dns/libidn2-0.16-r1::gentoo'
Comment 3 samurai.no.dojo 2017-06-04 07:39:43 UTC
Created attachment 475144 [details]
emerge -pqv '=net-dns/libidn2-0.16-r1::gentoo'
Comment 4 samurai.no.dojo 2017-06-04 07:40:26 UTC
Created attachment 475146 [details]
libidn2-0.16-r1:20170604-071616.log.gz
Comment 5 samurai.no.dojo 2017-06-04 07:42:31 UTC
I am having this issue on two different machines.
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2017-06-04 21:35:40 UTC
(In reply to samurai.no.dojo from comment #0)
> checking for libunistring... no, consider installing GNU libunistring

Where is your config.log?
Comment 7 samurai.no.dojo 2017-06-04 22:50:45 UTC
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'
 *
Comment 8 Jeroen Roovers (RETIRED) gentoo-dev 2017-06-05 06:32:45 UTC
(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
Comment 9 samurai.no.dojo 2017-06-05 08:47:44 UTC
Created attachment 475212 [details]
32bit config.log
Comment 10 samurai.no.dojo 2017-06-05 08:48:15 UTC
Created attachment 475214 [details]
64bit config.log
Comment 11 samurai.no.dojo 2017-06-05 09:42:03 UTC
(In reply to Jeroen Roovers from comment #8)
Thank you, here you go
Comment 12 Jeroen Roovers (RETIRED) gentoo-dev 2017-06-05 13:14:36 UTC
As far as I can tell, you need to re-emerge libunistring.
Comment 13 Robert Gutermuth 2017-06-06 03:36:32 UTC
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.
Comment 14 samurai.no.dojo 2017-06-06 07:19:54 UTC
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
Comment 15 Sergio 2017-06-06 12:30:17 UTC
Same here.
'FEATURES="${FEATURES} -distcc-pump -distcc" MAKEOPTS=-j2 emerge -1 dev-libs/libunistring' resolved the issue about libidn2.
Comment 16 Robert Gutermuth 2017-06-06 15:00:59 UTC
Per a recommendation on the forum thread, I rebuilt libunistring with just pump disabled and then was still able to build libidn2 successfully.
Comment 17 Zoltan Puskas 2017-07-27 19:46:28 UTC
The same issue happens when building net-libs/gnutls-3.5.14. Building libunistring without distcc solves it just as for libidn2.
Comment 18 samurai.no.dojo 2017-11-16 12:00:33 UTC
(In reply to Zoltan Puskas from comment #17)
I can confirm this too.
Comment 19 Thomas Deutschmann (RETIRED) gentoo-dev 2018-01-07 03:09:58 UTC
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
> 
> 
>
Comment 20 Jeroen Roovers (RETIRED) gentoo-dev 2018-01-08 10:53:33 UTC
*** Bug 643886 has been marked as a duplicate of this bug. ***
Comment 21 Matt Turner gentoo-dev 2019-03-03 18:22:19 UTC
*** Bug 675500 has been marked as a duplicate of this bug. ***
Comment 22 Peter Levine 2019-05-27 04:21:24 UTC
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.
Comment 23 Matt Turner gentoo-dev 2020-03-28 02:50:10 UTC
FEATURES=distcc-pump has been removed from portage.