2.13 x86_32 on x86_64 rtld.c:2256 coredump
Jason Vas Dias
jason.vas.dias@gmail.com
Wed Apr 6 13:17:00 GMT 2011
Hi - trying to upgrade my toolchain here, and following usual procedure didn't work this time -
I've been following roughly this procedure with only the occasional problem for over 4 years
now on my linux x86_64 system to upgrade my toolchain :
1. ensure all binutils dependencies up-to-date (now that includes gmp, mpc, mpfr, CLooG, PPL )
2. build latest binutils (now 2.21.51.0.6.20110118 ) and ensure it passes test suite
2. ensure all gcc dependencies are up-to-date
3. build latest stable gcc (now 4.6.0) with '--enable-languages=c --enable-bootstrap'
and ensure it passes c-only testsuite
4. build latest stable glibc (now 2.13?) from git with new gcc and binutils for x86_64 and x86_32 (i686)
5. rebuild same binutils and gcc in one build under new glibc with '--enable-languages=all'
6. rebuild glibc again with new binutils and gcc just build in step 5.
7. rebuild gcc and binutils again with new glibc
8. rebuild all software on system compiled with old compiler, binutils and glibc.
Now gcc-4.6.0 (c-only) built fine at step 3, and so did glibc at set 4 . Everything looks fine so I go on
to step 5, but now I get this rtld.c coredump attempting to resolve the relocations of libgcc_s.so.1 (32-bit)
during the second gcc-4.6.0 build:
The stage1 gcc compiler:
$ echo $CC
/mnt/sda3/gcc/./gcc/xgcc -B/mnt/sda3/gcc/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -L/mnt/sda3/gcc/./ld
$ cat t.c
#include <stdio.h>
int main(int argc, char **argv, char **envp)
{
printf("Hello world!\n");
}
$ $CC -m32 -o t t.c
$ ./t
Segmentation fault
$ file t; /lib32/ld-linux.so.2 --list ./t
t: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
linux-gate.so.1 => (0xf7721000)
libgcc_s.so.1 => /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 (0xf7644000)
$ gdb /lib32/ld-2.13.so
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /lib32/ld-2.13.so...done.
(gdb) set args ./t
(gdb) start
Function "main" not defined.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
Starting program: /lib32/ld-2.13.so ./t
Program received signal SIGSEGV, Segmentation fault.
0xf7f3f7c0 in ?? ()
(gdb) where
#0 0xf7f3f7c0 in ?? ()
#1 0xf7fe0de8 in dl_main (phdr=0x8048034, phnum=9, user_entry=0xffffdc6c, auxv=0xffffdd20) at rtld.c:2256
#2 0xf7ff1f78 in _dl_sysdep_start (start_argptr=0xffffdcd0, dl_main=0xf7fdfd40 <dl_main>) at ../elf/dl-sysdep.c:244
#3 0xf7fe2a08 in _dl_start_final (arg=0xffffdcd0) at rtld.c:336
#4 _dl_start (arg=0xffffdcd0) at rtld.c:562
(gdb) #0 0xf7f3f7c0 in ?? ()
(gdb) #1 0xf7fe0de8 in dl_main (phdr=0x8048034, phnum=9, user_entry=0xffffdc6c, auxv=0xffffdd20) at rtld.c:2256
(gdb) #2 0xf7ff1f78 in _dl_sysdep_start (start_argptr=0xffffdcd0, dl_main=0xf7fdfd40 <dl_main>) at ../elf/dl-sysdep.c:244
(gdb) #3 0xf7fe2a08 in _dl_start_final (arg=0xffffdcd0) at rtld.c:336
(gdb) #4 _dl_start (arg=0xffffdcd0) at rtld.c:562
(gdb) #5 0xf7fdf0b7 in _start () from /lib32/ld-2.13.so
(gdb)
(gdb) up
#1 0xf7fe0de8 in dl_main (phdr=0x8048034, phnum=9, user_entry=0xffffdc6c, auxv=0xffffdd20) at rtld.c:2256
2256 _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
(gdb) print _dl_relocate_object
$1 = {void (struct r_scope_elem **, int, int)} 0xf7fe8be0 <_dl_relocate_object>
(gdb) print l
$2 = (struct link_map *) 0xf7f3a1a3
(gdb) print *l
$3 = {l_addr = 260032, l_name = 0x42444c7 <Address 0x42444c7 out of bounds>, l_ld = 0xf7fad1d0, l_next = 0x89e4458b, l_prev = 0xe0e82404, l_real = 0x850000a3, l_ns = 562302912, l_libname = 0x8b000002, l_info = {0x85068900, 0x837075c0, 0x7500e07d, 0xe4558b07, 0x49eb1689, 0x89ec458b, 0x91e82404, 0x89ffff30, 0x75c08506, 0x3d836522, 0xc, 0xf0017400, 0xd1cc2d83, 0xf01f7fa, 0x2bc85, 0xffffb800, 0xd1e9ffff, 0x8b000001, 0x5489ec55, 0x558b0824, 0x245489e4, 0x24048904, 0xff4a70e8, 0x2444c7ff, 0x3f7c008, 0x2444c700, 0xfad1d004, 0x89068bf7, 0xa6e82404, 0xa10000a8, 0xf7facb58, 0xd1d4053b, 0x1774f7fa, 0xbd148d, 0x89000000, 0x89082454, 0x89042444, 0x32e8241c, 0xc7ffff4a, 0x4bb44, 0x89000000, 0xfacb581d, 0xd41d89f7, 0xe9f7fad1, 0x147, 0x147d83, 0x13d840f, 0x5d8b0000, 0xfdb8510, 0x13085, 0xe8558b00, 0x8df0458b, 0xc701027c, 0x1e445, 0xff810000, 0x1000, 0x3c891776, 0xaf37e824, 0xc0850000, 0xfc0950f, 0x4589c0b6, 0x74c085e4, 0x12478d14, 0x29fce083, 0x24448dc4, 0xf0e0831b, 0xebec4589, 0x243c8931, 0xff2f9be8, 0xec4589ff, 0x2275c085, 0xc3d8365, 0x0, 0x83f00174, 0xfad1cc2d, 0x850f01f7}, l_phdr = 0x1d5, l_entry = 4294967224, l_phnum = 59903, l_ldnum = 218, l_searchlist = {r_list = 0x458b0000, r_nlist = 608471536}, l_symbolic_searchlist = {r_list = 0x8558b08, r_nlist = 69489801}, l_loader = 0x89ec458b, l_versions = 0x46e82404, l_nversions = 3338665801, l_nbuckets = 3229826304, l_gnu_bitmask_idxbits = 3897920257, l_gnu_shift = 136598665, l_gnu_bitmask = 0x890c558b, {l_gnu_buckets = 0x89042454, l_chain = 0x89042454}, {l_gnu_chain_zero = 0x5ae82404, l_buckets = 0x5ae82404}, l_direct_opencount = 3355443017, l_type = lt_executable, l_relocated = 1, l_init_called = 0, l_global = 0, l_reserved = 2, l_phdr_allocated = 0, l_soname_added = 0, l_faked = 0, l_need_tls_init = 1, l_auditing = 0, l_audit_any_plt = 0, l_removed = 1, l_contiguous = 0, l_symbolic_in_local_scope = 0, l_rpath_dirs = {dirs = 0xc70003f7, malloced = -805034940}, l_reloc_result = 0x8bf7fad1, l_versyms = 0x489ec45, l_origin = 0xa249e824 <Address 0xa249e824 out of bounds>, l_map_start = 3229941760, l_map_end = 411764340, l_text_end = 1635113861, l_scope_mem = {0x83ec5d8b, 0x7400e47d, 0x243c8940, 0xff2f07e8}, l_scope_max = 2244184575, l_scope = 0x651f75c0, l_local_scope = {0xc3d83, 0x74000000}, l_dev = 17868825146413019137, l_ino = 13258597308658159361, l_runpath_dirs = {dirs = 0xffffffff, malloced = 2089372395}, l_initfini = 0x558b0824, l_reldeps = 0x245489ec, l_reldepsmax = 604276996, l_used = 4282969320, l_feature_1 = 608487423, l_flags_1 = 66568200, l_flags = 608487168, l_idx = -86913020, l_mach = {plt = 605850103, gotplt = 10953960, tlsdesc_table = 0x651e8900}, l_lookup_cache = {sym = 0xc3d83, type_class = 1946157056, value = 0x2d83f001, ret = 0xf7fad1cc}, l_tls_initimage = 0x16850f01, l_tls_initimage_size = 3087007745, l_tls_blocksize = 0, l_tls_align = 1542743437, l_tls_firstbyte_offset = 3277676382, l_tls_offset = 1735, l_tls_modid = 3706257408, l_relro_addr = 1442840573, l_relro_size = 2203313545, l_serial = 8420470199274901740, l_audit = 0xf7f3a1a3}
(gdb) print dl_lazy
No symbol "dl_lazy" in current context.
(gdb) print consider_profiling
$4 = -135195056
(gdb) Quit
(gdb) quit
A debugging session is active.
Inferior 1 [process 18969] will be killed.
Quit anyway? (y or n) [answered Y; input not from terminal]
$ $CC -m32 -o t t.c -lc -lrt -ldl
/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/lib/../lib32/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie
collect2: ld returned 1 exit status
$ $CC -fPIE -Wl,-pie -m32 -o t t.c -lc -lrt -ldl
$ ./t
Segmentation fault
$ LD_DEBUG=all /lib32/ld-2.13.so ./t
18990: file=./t [0]; generating link map
18990: dynamic: 0xf776491c base: 0xf76c6000 size: 0x000a0cf4
18990: entry: 0xf76da1ac phdr: 0xf76c6034 phnum: 9
18990:
18990:
18990: file=librt.so.1 [0]; needed by ./t [0]
18990: find library=librt.so.1 [0]; searching
18990: search cache=/etc/ld.so.cache
18990: trying file=/lib32/librt.so.1
18990:
18990: file=librt.so.1 [0]; generating link map
18990: dynamic: 0xf768beb8 base: 0xf7681000 size: 0x00015f18
18990: entry: 0xf7682c90 phdr: 0xf7681034 phnum: 9
18990:
18990:
18990: file=libdl.so.2 [0]; needed by ./t [0]
18990: find library=libdl.so.2 [0]; searching
18990: search cache=/etc/ld.so.cache
18990: trying file=/lib32/libdl.so.2
18990:
18990: file=libdl.so.2 [0]; generating link map
18990: dynamic: 0xf767fec0 base: 0xf767c000 size: 0x00004078
18990: entry: 0xf767ca40 phdr: 0xf767c034 phnum: 9
18990:
18990:
18990: file=libgcc_s.so.1 [0]; needed by ./t [0]
18990: find library=libgcc_s.so.1 [0]; searching
18990: search cache=/etc/ld.so.cache
18990: trying file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1
18990:
18990: file=libgcc_s.so.1 [0]; generating link map
18990: dynamic: 0xf7679b44 base: 0xf75ce000 size: 0x000ade5c
18990: entry: 0xf75e02f0 phdr: 0xf75ce034 phnum: 6
18990:
18990:
18990: file=libc.so.6 [0]; needed by ./t [0]
18990: find library=libc.so.6 [0]; searching
18990: search cache=/etc/ld.so.cache
18990: trying file=/lib32/libc.so.6
18990:
18990: file=libc.so.6 [0]; generating link map
18990: dynamic: 0xf75c9d7c base: 0xf7450000 size: 0x0017da88
18990: entry: 0xf7469250 phdr: 0xf7450034 phnum: 10
18990:
18990:
18990: file=libpthread.so.0 [0]; needed by ./t [0]
18990: find library=libpthread.so.0 [0]; searching
18990: search cache=/etc/ld.so.cache
18990: trying file=/lib32/libpthread.so.0
18990:
18990: file=libpthread.so.0 [0]; generating link map
18990: dynamic: 0xf744beb4 base: 0xf7433000 size: 0x0001b220
18990: entry: 0xf7438b40 phdr: 0xf7433034 phnum: 9
18990:
18990: checking for version `GLIBC_2.0' in file /lib32/libc.so.6 [0] required by file ./t [0]
18990: checking for version `GCC_3.3' in file /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0] required by file ./t [0]
18990: checking for version `GCC_3.0' in file /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0] required by file ./t [0]
18990: checking for version `GCC_3.3.1' in file /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0] required by file ./t [0]
18990: checking for version `GLIBC_2.2' in file /lib32/libpthread.so.0 [0] required by file ./t [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/libpthread.so.0 [0] required by file ./t [0]
18990: checking for version `GLIBC_2.0' in file /lib32/libpthread.so.0 [0] required by file ./t [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/ld-2.13.so [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/libpthread.so.0 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.2' in file /lib32/libpthread.so.0 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.3.3' in file /lib32/libpthread.so.0 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/libpthread.so.0 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.0' in file /lib32/libpthread.so.0 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.1.3' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.2' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.3.2' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_2.0' in file /lib32/libc.so.6 [0] required by file /lib32/librt.so.1 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/ld-2.13.so [0] required by file /lib32/libdl.so.2 [0]
18990: checking for version `GLIBC_2.1.3' in file /lib32/libc.so.6 [0] required by file /lib32/libdl.so.2 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/libc.so.6 [0] required by file /lib32/libdl.so.2 [0]
18990: checking for version `GLIBC_2.0' in file /lib32/libc.so.6 [0] required by file /lib32/libdl.so.2 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/libc.so.6 [0] required by file /lib32/libdl.so.2 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/ld-2.13.so [0] required by file /lib32/libc.so.6 [0]
18990: checking for version `GLIBC_2.3' in file /lib32/ld-2.13.so [0] required by file /lib32/libc.so.6 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/ld-2.13.so [0] required by file /lib32/libc.so.6 [0]
18990: checking for version `GLIBC_2.3' in file /lib32/ld-2.13.so [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/ld-2.13.so [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/ld-2.13.so [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.1.3' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.1' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.3.2' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.2' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_PRIVATE' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990: checking for version `GLIBC_2.0' in file /lib32/libc.so.6 [0] required by file /lib32/libpthread.so.0 [0]
18990:
18990: relocation processing: /lib32/libpthread.so.0 (lazy)
18990: symbol=_Jv_RegisterClasses; lookup in file=./t [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_Jv_RegisterClasses; lookup in file=/lib32/ld-2.13.so [0]
18990: symbol=errno; lookup in file=./t [0]
18990: binding file /lib32/libpthread.so.0 [0] to ./t [0]: normal symbol `errno' [GLIBC_PRIVATE]
18990: symbol=__libc_stack_end; lookup in file=./t [0]
18990: binding file /lib32/libpthread.so.0 [0] to ./t [0]: normal symbol `__libc_stack_end' [GLIBC_2.1]
18990: symbol=_rtld_global_ro; lookup in file=./t [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_rtld_global_ro; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/ld-2.13.so [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/ld-2.13.so [0]: normal symbol `_rtld_global_ro' [GLIBC_PRIVATE]
18990: symbol=h_errno; lookup in file=./t [0]
18990: symbol=h_errno; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=h_errno; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=h_errno; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=h_errno; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/libc.so.6 [0]: normal symbol `h_errno' [GLIBC_PRIVATE]
18990: symbol=__libc_dl_error_tsd; lookup in file=./t [0]
18990: symbol=__libc_dl_error_tsd; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__libc_dl_error_tsd; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__libc_dl_error_tsd; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__libc_dl_error_tsd; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/libc.so.6 [0]: normal symbol `__libc_dl_error_tsd' [GLIBC_PRIVATE]
18990: symbol=_rtld_global; lookup in file=./t [0]
18990: symbol=_rtld_global; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_rtld_global; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/ld-2.13.so [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/ld-2.13.so [0]: normal symbol `_rtld_global' [GLIBC_PRIVATE]
18990: symbol=__cxa_finalize; lookup in file=./t [0]
18990: symbol=__cxa_finalize; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__cxa_finalize; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__cxa_finalize; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__cxa_finalize; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
18990: symbol=__resp; lookup in file=./t [0]
18990: symbol=__resp; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__resp; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__resp; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__resp; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libpthread.so.0 [0] to /lib32/libc.so.6 [0]: normal symbol `__resp' [GLIBC_PRIVATE]
18990:
18990: relocation processing: /lib32/libc.so.6 (lazy)
18990: symbol=_res; lookup in file=./t [0]
18990: symbol=_res; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_res; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_res; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_res; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `_res' [GLIBC_2.0]
18990: symbol=_IO_file_close; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_file_close' [GLIBC_2.0]
18990: symbol=rpc_createerr; lookup in file=./t [0]
18990: symbol=rpc_createerr; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=rpc_createerr; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=rpc_createerr; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=rpc_createerr; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `rpc_createerr' [GLIBC_2.0]
18990: symbol=__key_gendes_LOCAL; lookup in file=./t [0]
18990: symbol=__key_gendes_LOCAL; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__key_gendes_LOCAL; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__key_gendes_LOCAL; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__key_gendes_LOCAL; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__key_gendes_LOCAL' [GLIBC_2.1]
18990: symbol=__ctype32_tolower; lookup in file=./t [0]
18990: symbol=__ctype32_tolower; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype32_tolower; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype32_tolower; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype32_tolower; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype32_tolower' [GLIBC_2.2]
18990: symbol=loc1; lookup in file=./t [0]
18990: symbol=loc1; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=loc1; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=loc1; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=loc1; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `loc1' [GLIBC_2.0]
18990: symbol=svc_pollfd; lookup in file=./t [0]
18990: symbol=svc_pollfd; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=svc_pollfd; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=svc_pollfd; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=svc_pollfd; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `svc_pollfd' [GLIBC_2.2]
18990: symbol=_IO_funlockfile; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_funlockfile' [GLIBC_2.0]
18990: symbol=__malloc_initialize_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__malloc_initialize_hook' [GLIBC_2.0]
18990: symbol=argp_program_version; lookup in file=./t [0]
18990: symbol=argp_program_version; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=argp_program_version; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=argp_program_version; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=argp_program_version; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `argp_program_version' [GLIBC_2.1]
18990: symbol=__tzname; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__tzname' [GLIBC_2.0]
18990: symbol=__after_morecore_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__after_morecore_hook' [GLIBC_2.0]
18990: symbol=__progname; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__progname' [GLIBC_2.0]
18990: symbol=obstack_exit_failure; lookup in file=./t [0]
18990: symbol=obstack_exit_failure; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=obstack_exit_failure; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=obstack_exit_failure; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=obstack_exit_failure; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `obstack_exit_failure' [GLIBC_2.0]
18990: symbol=__check_rhosts_file; lookup in file=./t [0]
18990: symbol=__check_rhosts_file; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__check_rhosts_file; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__check_rhosts_file; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__check_rhosts_file; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__check_rhosts_file' [GLIBC_2.0]
18990: symbol=program_invocation_short_name; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `program_invocation_short_name' [GLIBC_2.0]
18990: symbol=_IO_stdout_; lookup in file=./t [0]
18990: symbol=_IO_stdout_; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_IO_stdout_; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_IO_stdout_; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_IO_stdout_; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `_IO_stdout_' [GLIBC_2.0]
18990: symbol=optopt; lookup in file=./t [0]
18990: symbol=optopt; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=optopt; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=optopt; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=optopt; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `optopt' [GLIBC_2.0]
18990: symbol=malloc; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `malloc' [GLIBC_2.0]
18990: symbol=_environ; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_environ' [GLIBC_2.0]
18990: symbol=_IO_stderr_; lookup in file=./t [0]
18990: symbol=_IO_stderr_; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_IO_stderr_; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_IO_stderr_; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_IO_stderr_; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `_IO_stderr_' [GLIBC_2.0]
18990: symbol=__key_encryptsession_pk_LOCAL; lookup in file=./t [0]
18990: symbol=__key_encryptsession_pk_LOCAL; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__key_encryptsession_pk_LOCAL; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__key_encryptsession_pk_LOCAL; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__key_encryptsession_pk_LOCAL; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__key_encryptsession_pk_LOCAL' [GLIBC_2.1]
18990: symbol=__ctype_tolower; lookup in file=./t [0]
18990: symbol=__ctype_tolower; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype_tolower; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype_tolower; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype_tolower; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype_tolower' [GLIBC_2.0]
18990: symbol=__malloc_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__malloc_hook' [GLIBC_2.0]
18990: symbol=_IO_stdin_used; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_stdin_used'
18990: symbol=_dl_starting_up; lookup in file=./t [0]
18990: symbol=_dl_starting_up; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_dl_starting_up; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_dl_starting_up; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_dl_starting_up; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_dl_starting_up; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_dl_starting_up; lookup in file=/lib32/ld-2.13.so [0]
18990: symbol=__progname_full; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__progname_full' [GLIBC_2.0]
18990: symbol=obstack_alloc_failed_handler; lookup in file=./t [0]
18990: symbol=obstack_alloc_failed_handler; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=obstack_alloc_failed_handler; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=obstack_alloc_failed_handler; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=obstack_alloc_failed_handler; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `obstack_alloc_failed_handler' [GLIBC_2.0]
18990: symbol=__fpu_control; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__fpu_control' [GLIBC_2.0]
18990: symbol=mallwatch; lookup in file=./t [0]
18990: symbol=mallwatch; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=mallwatch; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=mallwatch; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=mallwatch; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `mallwatch' [GLIBC_2.0]
18990: symbol=loc2; lookup in file=./t [0]
18990: symbol=loc2; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=loc2; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=loc2; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=loc2; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `loc2' [GLIBC_2.0]
18990: symbol=__realloc_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__realloc_hook' [GLIBC_2.0]
18990: symbol=__libc_stack_end; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__libc_stack_end' [GLIBC_2.1]
18990: symbol=program_invocation_name; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `program_invocation_name' [GLIBC_2.0]
18990: symbol=argp_program_version_hook; lookup in file=./t [0]
18990: symbol=argp_program_version_hook; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=argp_program_version_hook; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=argp_program_version_hook; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=argp_program_version_hook; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `argp_program_version_hook' [GLIBC_2.1]
18990: symbol=__curbrk; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__curbrk' [GLIBC_2.0]
18990: symbol=stdout; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `stdout' [GLIBC_2.0]
18990: symbol=svc_max_pollfd; lookup in file=./t [0]
18990: symbol=svc_max_pollfd; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=svc_max_pollfd; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=svc_max_pollfd; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=svc_max_pollfd; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `svc_max_pollfd' [GLIBC_2.2]
18990: symbol=_rtld_global_ro; lookup in file=./t [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_rtld_global_ro; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_rtld_global_ro; lookup in file=/lib32/ld-2.13.so [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/ld-2.13.so [0]: normal symbol `_rtld_global_ro' [GLIBC_PRIVATE]
18990: symbol=_nl_domain_bindings; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_nl_domain_bindings' [GLIBC_2.0]
18990: symbol=stderr; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `stderr' [GLIBC_2.0]
18990: symbol=__ctype32_b; lookup in file=./t [0]
18990: symbol=__ctype32_b; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype32_b; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype32_b; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype32_b; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype32_b' [GLIBC_2.0]
18990: symbol=__libc_enable_secure; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__libc_enable_secure' [GLIBC_PRIVATE]
18990: symbol=_res_hconf; lookup in file=./t [0]
18990: symbol=_res_hconf; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_res_hconf; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_res_hconf; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_res_hconf; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `_res_hconf' [GLIBC_2.2]
18990: symbol=argp_program_bug_address; lookup in file=./t [0]
18990: symbol=argp_program_bug_address; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=argp_program_bug_address; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=argp_program_bug_address; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=argp_program_bug_address; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `argp_program_bug_address' [GLIBC_2.1]
18990: symbol=h_errlist; lookup in file=./t [0]
18990: symbol=h_errlist; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=h_errlist; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=h_errlist; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=h_errlist; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `h_errlist' [GLIBC_2.0]
18990: symbol=optind; lookup in file=./t [0]
18990: symbol=optind; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=optind; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=optind; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=optind; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `optind' [GLIBC_2.0]
18990: symbol=_dl_argv; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_dl_argv' [GLIBC_PRIVATE]
18990: symbol=svc_fdset; lookup in file=./t [0]
18990: symbol=svc_fdset; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=svc_fdset; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=svc_fdset; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=svc_fdset; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `svc_fdset' [GLIBC_2.0]
18990: symbol=_IO_stdin_; lookup in file=./t [0]
18990: symbol=_IO_stdin_; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_IO_stdin_; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_IO_stdin_; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_IO_stdin_; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `_IO_stdin_' [GLIBC_2.0]
18990: symbol=re_syntax_options; lookup in file=./t [0]
18990: symbol=re_syntax_options; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=re_syntax_options; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=re_syntax_options; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=re_syntax_options; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `re_syntax_options' [GLIBC_2.0]
18990: symbol=__rcmd_errstr; lookup in file=./t [0]
18990: symbol=__rcmd_errstr; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__rcmd_errstr; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__rcmd_errstr; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__rcmd_errstr; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__rcmd_errstr' [GLIBC_2.0]
18990: symbol=__daylight; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__daylight' [GLIBC_2.0]
18990: symbol=error_print_progname; lookup in file=./t [0]
18990: symbol=error_print_progname; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=error_print_progname; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=error_print_progname; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=error_print_progname; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `error_print_progname' [GLIBC_2.0]
18990: symbol=__ctype32_toupper; lookup in file=./t [0]
18990: symbol=__ctype32_toupper; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype32_toupper; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype32_toupper; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype32_toupper; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype32_toupper' [GLIBC_2.2]
18990: symbol=__ctype_b; lookup in file=./t [0]
18990: symbol=__ctype_b; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype_b; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype_b; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype_b; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype_b' [GLIBC_2.0]
18990: symbol=__ctype_toupper; lookup in file=./t [0]
18990: symbol=__ctype_toupper; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__ctype_toupper; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__ctype_toupper; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__ctype_toupper; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__ctype_toupper' [GLIBC_2.0]
18990: symbol=__morecore; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__morecore' [GLIBC_2.0]
18990: symbol=getdate_err; lookup in file=./t [0]
18990: symbol=getdate_err; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=getdate_err; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=getdate_err; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=getdate_err; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `getdate_err' [GLIBC_2.1]
18990: symbol=_nl_msg_cat_cntr; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_nl_msg_cat_cntr' [GLIBC_2.0]
18990: symbol=stdin; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `stdin' [GLIBC_2.0]
18990: symbol=__environ; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__environ' [GLIBC_2.0]
18990: symbol=svcauthdes_stats; lookup in file=./t [0]
18990: symbol=svcauthdes_stats; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=svcauthdes_stats; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=svcauthdes_stats; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=svcauthdes_stats; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `svcauthdes_stats' [GLIBC_2.0]
18990: symbol=__memalign_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__memalign_hook' [GLIBC_2.0]
18990: symbol=__free_hook; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__free_hook' [GLIBC_2.0]
18990: symbol=error_message_count; lookup in file=./t [0]
18990: symbol=error_message_count; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=error_message_count; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=error_message_count; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=error_message_count; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `error_message_count' [GLIBC_2.0]
18990: symbol=free; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `free' [GLIBC_2.0]
18990: symbol=_rtld_global; lookup in file=./t [0]
18990: symbol=_rtld_global; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=_rtld_global; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libc.so.6 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/libpthread.so.0 [0]
18990: symbol=_rtld_global; lookup in file=/lib32/ld-2.13.so [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/ld-2.13.so [0]: normal symbol `_rtld_global' [GLIBC_PRIVATE]
18990: symbol=__timezone; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `__timezone' [GLIBC_2.0]
18990: symbol=__key_decryptsession_pk_LOCAL; lookup in file=./t [0]
18990: symbol=__key_decryptsession_pk_LOCAL; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=__key_decryptsession_pk_LOCAL; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=__key_decryptsession_pk_LOCAL; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=__key_decryptsession_pk_LOCAL; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `__key_decryptsession_pk_LOCAL' [GLIBC_2.1]
18990: symbol=error_one_per_line; lookup in file=./t [0]
18990: symbol=error_one_per_line; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=error_one_per_line; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=error_one_per_line; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=error_one_per_line; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `error_one_per_line' [GLIBC_2.0]
18990: symbol=opterr; lookup in file=./t [0]
18990: symbol=opterr; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=opterr; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=opterr; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=opterr; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `opterr' [GLIBC_2.0]
18990: symbol=optarg; lookup in file=./t [0]
18990: symbol=optarg; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=optarg; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=optarg; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=optarg; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `optarg' [GLIBC_2.0]
18990: symbol=argp_err_exit_status; lookup in file=./t [0]
18990: symbol=argp_err_exit_status; lookup in file=/lib32/librt.so.1 [0]
18990: symbol=argp_err_exit_status; lookup in file=/lib32/libdl.so.2 [0]
18990: symbol=argp_err_exit_status; lookup in file=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 [0]
18990: symbol=argp_err_exit_status; lookup in file=/lib32/libc.so.6 [0]
18990: binding file /lib32/libc.so.6 [0] to /lib32/libc.so.6 [0]: normal symbol `argp_err_exit_status' [GLIBC_2.1]
18990: symbol=_IO_2_1_stderr_; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_2_1_stderr_' [GLIBC_2.1]
18990: symbol=_IO_2_1_stdout_; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_2_1_stdout_' [GLIBC_2.1]
18990: symbol=_IO_2_1_stdin_; lookup in file=./t [0]
18990: binding file /lib32/libc.so.6 [0] to ./t [0]: normal symbol `_IO_2_1_stdin_' [GLIBC_2.1]
18990:
18990: relocation processing: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgcc_s.so.1 (lazy)
Segmentation fault
[ root@jvdspc:/tmp 12:59:00 849:348 ]
$ gdb /lib32/ld-2.13.so
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /lib32/ld-2.13.so...done.
(gdb) set args ./t
(gdb) start
Function "main" not defined.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
Starting program: /lib32/ld-2.13.so ./t
Program received signal SIGSEGV, Segmentation fault.
0xf7e837c0 in ?? ()
(gdb) where
#0 0xf7e837c0 in ?? ()
#1 0xf7fe0de8 in dl_main (phdr=0xf7f3c034, phnum=9, user_entry=0xffffdc6c, auxv=0xffffdd20) at rtld.c:2256
#2 0xf7ff1f78 in _dl_sysdep_start (start_argptr=0xffffdcd0, dl_main=0xf7fdfd40 <dl_main>) at ../elf/dl-sysdep.c:244
#3 0xf7fe2a08 in _dl_start_final (arg=0xffffdcd0) at rtld.c:336
#4 _dl_start (arg=0xffffdcd0) at rtld.c:562
#5 0xf7fdf0b7 in _start () from /lib32/ld-2.13.so
(gdb)
But running the first (c-only) gcc-4.6.0 and new glibc does not have this problem :
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /usr/build2/gcc/gcc-4.6.0/configure --prefix=/usr --enable-languages=c --enable-targets=all --enable-multilib --enable-threads=posix --enable-tls --enable-lto --enable-shared --enable-checking=release --with-build-time-tools=/usr/bin --with-ld=/usr/bin/ld --with-gnu-ld --with-as=/usr/bin/as --with-gnu-as --enable-__cxa_atexit --disable-libunwind-exceptions --with-system-zlib --with-system-gettext --with-system-intl --with-system-libbfd --with-system-libopcodes --with-system-libiberty --disable-werror --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --enable-bootstrap --enable-serial-configure
Thread model: posix
gcc version 4.6.0 (GCC)
$ gcc -m32 -o t t.c
$ ./t
Hello world!
But if I manually make the gcc-4.6.0(c-only) compiled ./t link with the gcc-4.6.0(languages=all) libgcc_s.so.1, I see the same issues as above -
gcc is doing something extra in generating a 32-bit libgcc_s.so.1 when configured with "--enable-languages=all" that it does not
do when configured with "--enable-languages=c" , which somehow breaks glibc . No changes in source code occurred between
the two gcc builds.
Anyone else seen this problem ?
Any suggestions ?
I'll track this issue down and fix it on my own eventually, but I thought I'd check on this list if anyone else has seen it.
Does this classify as a glibc bug ?
Thanks in advance for any replies,
Regards, Jason
More information about the Libc-help
mailing list