I am running ~amd64. glibc-2.4.x was automagically installed. Now I cannot run any 32bit applications. Here is my original error that prompted my attention: $ ooffice2 /usr/lib32/openoffice/program/pagein: relocation error: /lib32/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference /usr/lib32/openoffice/program/soffice.bin: relocation error: /lib32/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference I figured something was wrong with glibc, so I decided to just emerge -u glibc. I didn't unmask anything or emerge by path. Unfortunately, I get the following error: ... checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for long double... yes checking size of long double... configure: error: cannot compute sizeof (long double), 77 See `config.log' for more details. !!! ERROR: sys-libs/glibc-2.4-r3 failed. Call stack: ebuild.sh, line 1545: Called dyn_compile ebuild.sh, line 940: Called src_compile glibc-2.4-r3.ebuild, line 1168: Called src_compile glibc-2.4-r3.ebuild, line 1179: Called toolchain-glibc_src_compile glibc-2.4-r3.ebuild, line 251: Called glibc_do_configure 'nptl' glibc-2.4-r3.ebuild, line 941: Called die Strange, this shows that I have successfully installed it in the past: sys-libs/glibc Latest version available: 2.4-r3 Latest version installed: 2.4-r3 Size of files: 15,756 kB Homepage: http://www.gnu.org/software/libc/libc.html Description: GNU libc6 (also called glibc2) C library License: LGPL-2 I attempted to downgrade glibc but I got an emerge error, which I understand. I double checked my symlinks: # ls -l /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 20 Jul 16 08:22 /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2 # ls -l /usr/lib lrwxrwxrwx 1 root root 5 Jul 11 13:13 /usr/lib -> lib64 # ls -l /lib lrwxrwxrwx 1 root root 5 Jul 16 08:22 /lib -> lib64 # ls -l /lib64/ld-linux.so.2 lrwxrwxrwx 1 root root 20 Jul 16 08:22 /lib64/ld-linux.so.2 -> /lib32/ld-linux.so.2 I checked to make sure 32bit emulation is enabled, and it is: # cat /usr/src/linux/.config | grep CONFIG_IA32_EMULATION CONFIG_IA32_EMULATION=y Using FEATURES=-sandbox does not help. Neither does running ldconfig I made a simple C++ program to test the bug: #include <iostream> int main() { std::cout << "sizeof(char) = " << sizeof(char) << std::endl; std::cout << "sizeof(short) = " << sizeof(short) << std::endl; std::cout << "sizeof(int) = " << sizeof(int) << std::endl; std::cout << "sizeof(long) = " << sizeof(long) << std::endl; std::cout << "sizeof(long long) = " << sizeof(long long) << std::endl; std::cout << "sizeof(float) = " << sizeof(float) << std::endl; std::cout << "sizeof(double) = " << sizeof(double) << std::endl; std::cout << "sizeof(long double) = " << sizeof(long double) << std::endl; return 0; } It compiles fine with or without the -m32 flag. However, the 32bit compile breaks without any output besides: ./dumbtest: relocation error: /lib32/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference It doesn't look like anything is missing from my /etc/ld.so.conf: # ld.so.conf autogenerated by env-update; make all changes to # contents of /etc/env.d directory /usr/local/lib //usr/lib32/opengl/nvidia/lib //usr/lib64/opengl/nvidia/lib /lib /usr/lib /usr/local/lib /lib64 /usr/lib64 /usr/local/lib64 /lib32 /usr/lib32 /usr/local/lib32 /usr/x86_64-pc-linux-gnu/lib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/32 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4 /usr/lib64/nspr /usr/lib64/nss /usr/lib /usr/lib64/seamonkey /opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/ /opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/native_threads/ /opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/classic/ /opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/server/ /usr/lib/qt4 /usr/lib64/qt4 /usr/lib32/qt4 /usr/kde/3.5/lib /usr/kde/3.5//lib64 /usr/kde/3.5/lib32 /usr/qt/3/lib /usr/qt/3/lib64 /usr/qt/3/lib32 /emul/linux/x86/lib /emul/linux/x86/usr/lib /emul/linux/x86/lib /emul/linux/x86/usr/lib /lib64/libc.so.6 and /lib32/libc.so.6 output: # /lib64/libc.so.6 GNU C Library development release version 2.4, by Roland McGrath et al. Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8). Compiled on a Linux 2.6.16 system on 2006-07-16. Available extensions: The C stubs add-on version 2.1.2. crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson GNU libio by Per Bothner NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Native POSIX Threads Library by Ulrich Drepper et al Support for some architectures added on, not maintained in glibc core. BIND-8.2.3-T5B Thread-local storage support included. For bug reporting instructions, please see: <http://www.gnu.org/software/libc/bugs.html>. # /lib32/libc.so.6 GNU C Library development release version 2.4, by Roland McGrath et al. Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8). Compiled on a Linux 2.6.16 system on 2006-07-16. Available extensions: The C stubs add-on version 2.1.2. crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson GNU libio by Per Bothner NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Native POSIX Threads Library by Ulrich Drepper et al Support for some architectures added on, not maintained in glibc core. BIND-8.2.3-T5B Thread-local storage support included. For bug reporting instructions, please see: <http://www.gnu.org/software/libc/bugs.html>. Because all the tests and hints haven't fixed my problem, I do NOT believe this is a dup of: 123653, 123650, 85110, 136968, 129141, or 108248
Created attachment 92187 [details] glibc config.log
you didnt post `emerge info` so i dont know what version of glibc you have installed to work around your problem, you could try moving /lib32/tls to /lib32/tls.old
(In reply to comment #2) > you didnt post `emerge info` so i dont know what version of glibc you have > installed > > to work around your problem, you could try moving /lib32/tls to /lib32/tls.old > Oops, I thought I posted it at an attachment. Incoming....
Created attachment 92219 [details] My emerge --info
(In reply to comment #2) > to work around your problem, you could try moving /lib32/tls to /lib32/tls.old This causes ooffice2 to run. Why does this work, and is it safe?
looks like you have an old install of glibc libs there glibc-2.4 should not have a /lib64/tls or a /lib32/tls ... i imagine during an upgrade, the mtimes on those files were changed so portage didnt remove them ... i would need to see the upgrade log to tell you for sure you should be able to safely do `rm -r /lib32/tls.old` actually
(In reply to comment #6) > looks like you have an old install of glibc libs there > > glibc-2.4 should not have a /lib64/tls or a /lib32/tls ... i imagine during an > upgrade, the mtimes on those files were changed so portage didnt remove them > ... i would need to see the upgrade log to tell you for sure > > you should be able to safely do `rm -r /lib32/tls.old` actually > That is very likely, my system clock skews all over the place.