Bug 18103 - gold generates bad elf/constload1
Summary: gold generates bad elf/constload1
Status: NEW
Alias: None
Product: binutils
Classification: Unclassified
Component: gold (show other bugs)
Version: 2.26
: P2 normal
Target Milestone: ---
Assignee: Cary Coutant
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-10 12:40 UTC by H.J. Lu
Modified: 2015-03-10 12:40 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2015-03-10 12:40:20 UTC
On Linux/x86-64, gold generates bad elf/constload1 in glibc test:

[hjl@gnu-tools-1 glibc]$ gcc -fuse-ld=gold -nostdlib -nostartfiles -o /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /export/build/gnu/glibc-test/build-x86_64-linux/csu/crt1.o /export/build/gnu/glibc-test/build-x86_64-linux/csu/crti.o `gcc -fuse-ld=gold  --print-file-name=crtbegin.o` /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.o /export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2  -Wl,-dynamic-linker=/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so -Wl,-rpath=/export/build/gnu/glibc-test/build-x86_64-linux:/export/build/gnu/glibc-test/build-x86_64-linux/math:/export/build/gnu/glibc-test/build-x86_64-linux/elf:/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn:/export/build/gnu/glibc-test/build-x86_64-linux/nss:/export/build/gnu/glibc-test/build-x86_64-linux/nis:/export/build/gnu/glibc-test/build-x86_64-linux/rt:/export/build/gnu/glibc-test/build-x86_64-linux/resolv:/export/build/gnu/glibc-test/build-x86_64-linux/crypt:/export/build/gnu/glibc-test/build-x86_64-linux/nptl /export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6 /export/build/gnu/glibc-test/build-x86_64-linux/libc_nonshared.a -Wl,--as-needed /export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so -Wl,--no-as-needed -lgcc -Wl,--as-needed -lgcc_s  -Wl,--no-as-needed `gcc -fuse-ld=gold  --print-file-name=crtend.o` /export/build/gnu/glibc-test/build-x86_64-linux/csu/crtn.o
[hjl@gnu-tools-1 glibc]$ /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold
failed to load constload3
*** Error in `/export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold': double free or corruption (fasttop): 0x00000000019375f0 ***
======= Backtrace: =========
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(+0x7197e)[0x7f6389a1b97e]
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(+0x76dbe)[0x7f6389a20dbe]
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(+0x7759b)[0x7f6389a2159b]
/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2(+0x1515)[0x7f6389d4e515]
/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2(dlclose+0x1f)[0x7f6389d4dfff]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so(+0x793)[0x7f63897a5793]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0xf7b7)[0x7f6389f627b7]
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(+0x35d92)[0x7f63899dfd92]
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(+0x35de5)[0x7f63899dfde5]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so(+0x80a)[0x7f63897a580a]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0xf1ba)[0x7f6389f621ba]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0xf2cb)[0x7f6389f622cb]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0x13757)[0x7f6389f66757]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0xf064)[0x7f6389f62064]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0x12e13)[0x7f6389f65e13]
/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2(+0xf09)[0x7f6389d4df09]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so(+0xf064)[0x7f6389f62064]
/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2(+0x14d9)[0x7f6389d4e4d9]
/export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so.2(dlopen+0x31)[0x7f6389d4dfa1]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold[0x40099a]
/export/build/gnu/glibc-test/build-x86_64-linux/libc.so.6(__libc_start_main+0xf0)[0x7f63899ca780]
/export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold[0x400a29]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:09 3568646                            /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold
00401000-00402000 r--p 00000000 08:09 3568646                            /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold
00402000-00403000 rw-p 00001000 08:09 3568646                            /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload1.gold
01937000-01958000 rw-p 00000000 00:00 0                                  [heap]
3d08c00000-3d08c16000 r-xp 00000000 08:06 662003                         /usr/lib64/libgcc_s-4.9.2-20150212.so.1
3d08c16000-3d08e15000 ---p 00016000 08:06 662003                         /usr/lib64/libgcc_s-4.9.2-20150212.so.1
3d08e15000-3d08e16000 rw-p 00015000 08:06 662003                         /usr/lib64/libgcc_s-4.9.2-20150212.so.1
7f63897a3000-7f63897a5000 rw-p 00000000 00:00 0 
7f63897a5000-7f63897a6000 r-xp 00000000 08:09 3569549                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so
7f63897a6000-7f63899a5000 ---p 00001000 08:09 3569549                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so
7f63899a5000-7f63899a6000 r--p 00000000 08:09 3569549                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so
7f63899a6000-7f63899a7000 rw-p 00001000 08:09 3569549                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/constload2.so
7f63899a7000-7f63899aa000 rw-p 00000000 00:00 0 
7f63899aa000-7f6389b43000 r-xp 00000000 08:09 3554254                    /export/build/gnu/glibc-test/build-x86_64-linux/libc.so
7f6389b43000-7f6389d43000 ---p 00199000 08:09 3554254                    /export/build/gnu/glibc-test/build-x86_64-linux/libc.so
7f6389d43000-7f6389d47000 r--p 00199000 08:09 3554254                    /export/build/gnu/glibc-test/build-x86_64-linux/libc.so
7f6389d47000-7f6389d49000 rw-p 0019d000 08:09 3554254                    /export/build/gnu/glibc-test/build-x86_64-linux/libc.so
7f6389d49000-7f6389d4d000 rw-p 00000000 00:00 0 
7f6389d4d000-7f6389d4f000 r-xp 00000000 08:09 3557305                    /export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so
7f6389d4f000-7f6389f4f000 ---p 00002000 08:09 3557305                    /export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so
7f6389f4f000-7f6389f50000 r--p 00002000 08:09 3557305                    /export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so
7f6389f50000-7f6389f51000 rw-p 00003000 08:09 3557305                    /export/build/gnu/glibc-test/build-x86_64-linux/dlfcn/libdl.so
7f6389f51000-7f6389f53000 rw-p 00000000 00:00 0 
7f6389f53000-7f6389f75000 r-xp 00000000 08:09 3554252                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so
7f6389f75000-7f6389f76000 r--p 00021000 08:09 3554252                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so
7f6389f76000-7f6389f77000 rw-p 00022000 08:09 3554252                    /export/build/gnu/glibc-test/build-x86_64-linux/elf/ld.so
7f6389f77000-7f6389f78000 rw-p 00000000 00:00 0 
7fff0be03000-7fff0be24000 rw-p 00000000 00:00 0                          [stack]
7fff0be7e000-7fff0be80000 r--p 00000000 00:00 0                          [vvar]
7fff0be80000-7fff0be82000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)
[hjl@gnu-tools-1 glibc]$