[hjl@gnu-6 tmp]$ cat foo.c extern void abort (void); __thread char thra[2]; void __attribute__((noinline)) f1 (void) { int i; for (i = 0; i < 2; i++) thra[i]= i; } int main (void) { f1 (); if (thra[0] != 0) abort (); return 0; } [hjl@gnu-6 tmp]$ gcc -mcmodel=large -g foo.c -O [hjl@gnu-6 tmp]$ ./a.out Segmentation fault [hjl@gnu-6 tmp]$
CVSROOT: /cvs/src Module name: src Changes by: hjl@sourceware.org 2011-05-26 13:22:05 Modified files: bfd : ChangeLog elf64-x86-64.c ld/testsuite : ChangeLog ld/testsuite/ld-x86-64: tlsbin.dd tlsbin.rd tlsbin.s tlsbin.sd tlsbin.td tlsbindesc.dd tlsbindesc.rd tlsbindesc.sd tlsbindesc.td Log message: Handle R_X86_64_TPOFF64 in executable. bfd/ 2011-05-26 H.J. Lu <hongjiu.lu@intel.com> PR ld/12809 * elf64-x86-64.c (elf_x86_64_relocate_section): Handle R_X86_64_TPOFF64 in executable. ld/testsuite/ 2011-05-26 H.J. Lu <hongjiu.lu@intel.com> PR ld/12809 * ld-x86-64/tlsbin.s: Add a test for LE with large model. * ld-x86-64/tlsbin.dd: Updated. * ld-x86-64/tlsbin.rd: Likewise. * ld-x86-64/tlsbin.sd: Likewise. * ld-x86-64/tlsbin.td: Likewise. * ld-x86-64/tlsbindesc.dd: Likewise. * ld-x86-64/tlsbindesc.rd: Likewise. * ld-x86-64/tlsbindesc.sd: Likewise. * ld-x86-64/tlsbindesc.td: Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5359&r2=1.5360 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-x86-64.c.diff?cvsroot=src&r1=1.225&r2=1.226 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&r1=1.1414&r2=1.1415 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbin.dd.diff?cvsroot=src&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbin.rd.diff?cvsroot=src&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbin.s.diff?cvsroot=src&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbin.sd.diff?cvsroot=src&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbin.td.diff?cvsroot=src&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbindesc.dd.diff?cvsroot=src&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbindesc.rd.diff?cvsroot=src&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbindesc.sd.diff?cvsroot=src&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/tlsbindesc.td.diff?cvsroot=src&r1=1.2&r2=1.3
Fixed.