Summary: | undefined references in libpthreads - dev-db/mysql-4.0.24: "configure: error: cannot compute sizeof" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Jesse Adelman <jesse> |
Component: | Eclasses | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gentoo, mysql-bugs |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | /opt/tmp/portage/mysql-4.0.24/work/mysql-4.0.24/config.log (build log) |
Description
Jesse Adelman
2005-03-20 14:06:18 UTC
Created attachment 53985 [details]
/opt/tmp/portage/mysql-4.0.24/work/mysql-4.0.24/config.log (build log)
Something is wrong with your glibc. The exact failure chunk: configure:27349: checking size of char configure:27668: i686-pc-linux-gnu-gcc -o conftest -O3 -DDBUG_OFF -march=pentium3 -O3 -fprefetch-loop-arrays -funroll-loops -pipe -DHAVE_ ERRNO_AS_DEFINE=1 -DUSE_OLD_FUNCTIONS -rdynamic conftest.c -lpthread -lz -lcrypt -lnsl -lm -lpthread >&5 /lib/libpthread.so.0: undefined reference to `errno@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `__libc_dl_error_tsd@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `__resp@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `h_errno@GLIBC_PRIVATE' collect2: ld returned 1 exit status configure:27671: $? = 1 configure: program exited with status 1 configure: failed program was: ... (simple program to print "sizeof(char)") OK. Well, funny that. I just updated glibc after a new version went "stable" on x86. Should I re-emerge, or are my USE flags wacky? I'm pretty conservative about changing them... Here's some info: laptop root # emerge -pv glibc These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] sys-libs/glibc-2.3.4.20041102-r1 -build -debug -erandom -hardened (-multilib) +nls -nomalloccheck +nptl -nptlonly -pic -userlocales 0 kB Total size of downloads: 0 kB laptop root # genlop -t glibc * sys-libs/glibc Fri Sep 12 21:58:22 2003 >>> sys-libs/glibc-2.3.2-r1 merge time: 41 minutes and 23 seconds. Mon Nov 17 01:12:54 2003 >>> sys-libs/glibc-2.3.2-r3 merge time: 1 hour, 58 minutes and 10 seconds. Mon Jan 19 19:01:27 2004 >>> sys-libs/glibc-2.3.2-r9 merge time: 1 hour, 48 minutes. Sun Jun 13 03:15:40 2004 >>> sys-libs/glibc-2.3.3.20040420 merge time: 4 hours, 25 minutes and 44 seconds. Thu Jun 24 17:41:28 2004 >>> sys-libs/glibc-2.3.3.20040420 merge time: 1 hour, 34 minutes and 20 seconds. Fri Aug 13 18:46:03 2004 >>> sys-libs/glibc-2.3.3.20040420-r1 merge time: 1 hour, 48 minutes and 8 seconds. Fri Oct 8 16:41:38 2004 >>> sys-libs/glibc-2.3.3.20040420-r2 merge time: 1 hour, 44 minutes and 26 seconds. Tue Oct 12 01:02:30 2004 >>> sys-libs/glibc-2.3.4.20040808-r1 merge time: 1 hour, 45 minutes and 29 seconds. Sat Dec 4 19:32:47 2004 >>> sys-libs/glibc-2.3.4.20040808-r1 merge time: 1 hour, 49 minutes and 58 seconds. Sun Dec 5 14:41:38 2004 >>> sys-libs/glibc-2.3.4.20040808-r1 merge time: 1 hour, 47 minutes and 23 seconds. Sat Mar 19 21:20:25 2005 >>> sys-libs/glibc-2.3.4.20041102-r1 merge time: 3 hours, 24 minutes and 51 seconds. laptop root # FYI: I'm not the only one having this, but the forums aren't on fire with this at the time of this posting. http://forums.gentoo.org/viewtopic.php?p=2214868#2214868 Found this: ryan@loki ryan# nm /lib/libpthread.so.0 | grep -E "errno|libc_dl_error|resp" | grep "GLIBC_PRIVATE" U errno@@GLIBC_PRIVATE U h_errno@@GLIBC_PRIVATE U __libc_dl_error_tsd@@GLIBC_PRIVATE U __resp@@GLIBC_PRIVATE But the errors are looking for: /lib/libpthread.so.0: undefined reference to `errno@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `__libc_dl_error_tsd@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `__resp@GLIBC_PRIVATE' /lib/libpthread.so.0: undefined reference to `h_errno@GLIBC_PRIVATE' (note single '@') -> is there a problem with the multpile @ signs? When I did some work in Java linking to a C library that I compiled, I know I had to strip out the @ signs when compiling the library. I just tried recompiling gcc and then glibc and it seems to be fixed...I assume that I just had to clean up my toolchain a bit. So, should I rebuild gcc and glibc, or is there a deeper problem afoot? OK, I rebuilt gcc and glibc on the affected box. Didn't change any Portage settings (USE flags, CFLAGs, etc.). Still, the error occurs at the same location. I just realized that between the time of my last successful mysql build and now, I had rebuilt glibc to support nptl. So, as an experiment, I'm rebuilding glibc with the "nptlonly", and we'll see if mysql's configure script gets less or more confused... OK. Now, after setting ntplonly and re-emerging glibc, mysql compiled fine. Now, after the emerge of other updates is complete, we'll see if my box is still bootable... ;) *** Bug 92539 has been marked as a duplicate of this bug. *** MySQL 4.0.25-r2 is now stable on x86 and amd64 Feel free to reopen if needed |