From 3bea1fcb8b8a9b3c2133c162fe4cd6c91f40cfdf Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 18 Jan 2013 22:50:30 +0000 Subject: Resolve size relocation against non-zero TLS symbol bfd/ * elf32-i386.c (elf_i386_allocate_dynrelocs): Clear pc_count for non-zero TLS symbol. (elf_i386_relocate_section): Resolve size relocation against non-zero TLS symbol. * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Clear pc_count for non-zero TLS symbol. (elf_x86_64_relocate_section): Resolve size relocation against non-zero TLS symbol. ld/testsuite/ * ld-size/size-10.rd: Updated. * ld-size/size-8.rd: Likewise. * ld-size/size32-2-i386.d: Likewise. * ld-size/size32-2-x32.d: Likewise. * ld-size/size32-2-x86-64.d: Likewise. * ld-size/size64-2-x32.d: Likewise. * ld-size/size64-2-x86-64.d: Likewise. --- ld/testsuite/ChangeLog | 10 ++++++++++ ld/testsuite/ld-size/size-10.rd | 5 +++-- ld/testsuite/ld-size/size-8.rd | 5 +++-- ld/testsuite/ld-size/size32-2-i386.d | 12 +++++------- ld/testsuite/ld-size/size32-2-x32.d | 12 +++++------- ld/testsuite/ld-size/size32-2-x86-64.d | 12 +++++------- ld/testsuite/ld-size/size64-2-x32.d | 14 ++++++-------- ld/testsuite/ld-size/size64-2-x86-64.d | 14 ++++++-------- 8 files changed, 43 insertions(+), 41 deletions(-) (limited to 'ld') diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 76d4585..70aa059 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2013-01-18 H.J. Lu + + * ld-size/size-10.rd: Updated. + * ld-size/size-8.rd: Likewise. + * ld-size/size32-2-i386.d: Likewise. + * ld-size/size32-2-x32.d: Likewise. + * ld-size/size32-2-x86-64.d: Likewise. + * ld-size/size64-2-x32.d: Likewise. + * ld-size/size64-2-x86-64.d: Likewise. + 2013-01-17 H.J. Lu * ld-size/size-7.out: New file. diff --git a/ld/testsuite/ld-size/size-10.rd b/ld/testsuite/ld-size/size-10.rd index a5f8ee8..1cad47e 100644 --- a/ld/testsuite/ld-size/size-10.rd +++ b/ld/testsuite/ld-size/size-10.rd @@ -1,3 +1,4 @@ +#failif +#... +.* +R_.*_NONE +.* #... -[0-9a-f]+ +[0-9a-f]+ +R_.*_SIZE(32|64) +.* -#pass diff --git a/ld/testsuite/ld-size/size-8.rd b/ld/testsuite/ld-size/size-8.rd index a5f8ee8..1cad47e 100644 --- a/ld/testsuite/ld-size/size-8.rd +++ b/ld/testsuite/ld-size/size-8.rd @@ -1,3 +1,4 @@ +#failif +#... +.* +R_.*_NONE +.* #... -[0-9a-f]+ +[0-9a-f]+ +R_.*_SIZE(32|64) +.* -#pass diff --git a/ld/testsuite/ld-size/size32-2-i386.d b/ld/testsuite/ld-size/size32-2-i386.d index 2db0e1d..328006e 100644 --- a/ld/testsuite/ld-size/size32-2-i386.d +++ b/ld/testsuite/ld-size/size32-2-i386.d @@ -8,13 +8,11 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -0+123c R_386_SIZE32 xxx -0+1240 R_386_SIZE32 yyy -0+1244 R_386_SIZE32 zzz -0+1248 R_386_SIZE32 zzz -0+124c R_386_SIZE32 zzz +0+1234 R_386_SIZE32 zzz +0+1238 R_386_SIZE32 zzz +0+123c R_386_SIZE32 zzz Contents of section .data: - 123c 00000000 00000000 00000000 e2ffffff ................ - 124c 1e000000 .... + 122c 28000000 28000000 00000000 e2ffffff ................ + 123c 1e000000 .... diff --git a/ld/testsuite/ld-size/size32-2-x32.d b/ld/testsuite/ld-size/size32-2-x32.d index 9c1eae2..5049c4a 100644 --- a/ld/testsuite/ld-size/size32-2-x32.d +++ b/ld/testsuite/ld-size/size32-2-x32.d @@ -8,13 +8,11 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -0+200278 R_X86_64_SIZE32 xxx -0+20027c R_X86_64_SIZE32 yyy -0+200280 R_X86_64_SIZE32 zzz -0+200284 R_X86_64_SIZE32 zzz-0x0000001e -0+200288 R_X86_64_SIZE32 zzz\+0x0000001e +0+200268 R_X86_64_SIZE32 zzz +0+20026c R_X86_64_SIZE32 zzz-0x0000001e +0+200270 R_X86_64_SIZE32 zzz\+0x0000001e Contents of section .data: - 200278 00000000 00000000 00000000 00000000 ................ - 200288 00000000 .... + 200260 28000000 28000000 00000000 00000000 ................ + 200270 00000000 .... diff --git a/ld/testsuite/ld-size/size32-2-x86-64.d b/ld/testsuite/ld-size/size32-2-x86-64.d index 1851e0f..482b142 100644 --- a/ld/testsuite/ld-size/size32-2-x86-64.d +++ b/ld/testsuite/ld-size/size32-2-x86-64.d @@ -8,13 +8,11 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -0+2003d8 R_X86_64_SIZE32 xxx -0+2003dc R_X86_64_SIZE32 yyy -0+2003e0 R_X86_64_SIZE32 zzz -0+2003e4 R_X86_64_SIZE32 zzz-0x000000000000001e -0+2003e8 R_X86_64_SIZE32 zzz\+0x000000000000001e +0+2003b0 R_X86_64_SIZE32 zzz +0+2003b4 R_X86_64_SIZE32 zzz-0x000000000000001e +0+2003b8 R_X86_64_SIZE32 zzz\+0x000000000000001e Contents of section .data: - 2003d8 00000000 00000000 00000000 00000000 ................ - 2003e8 00000000 .... + 2003a8 28000000 28000000 00000000 00000000 ................ + 2003b8 00000000 .... diff --git a/ld/testsuite/ld-size/size64-2-x32.d b/ld/testsuite/ld-size/size64-2-x32.d index 1a30c98..987f244 100644 --- a/ld/testsuite/ld-size/size64-2-x32.d +++ b/ld/testsuite/ld-size/size64-2-x32.d @@ -8,14 +8,12 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -0+200278 R_X86_64_SIZE32 xxx -0+200280 R_X86_64_SIZE32 yyy -0+200288 R_X86_64_SIZE32 zzz -0+200290 R_X86_64_SIZE64 zzz-0x0000001e -0+200298 R_X86_64_SIZE64 zzz\+0x0000001e +0+200270 R_X86_64_SIZE32 zzz +0+200278 R_X86_64_SIZE64 zzz-0x0000001e +0+200280 R_X86_64_SIZE64 zzz\+0x0000001e Contents of section .data: - 200278 00000000 00000000 00000000 00000000 ................ - 200288 00000000 00000000 00000000 00000000 ................ - 200298 00000000 00000000 ........ + 200260 28000000 00000000 28000000 00000000 ................ + 200270 00000000 00000000 00000000 00000000 ................ + 200280 00000000 00000000 ........ diff --git a/ld/testsuite/ld-size/size64-2-x86-64.d b/ld/testsuite/ld-size/size64-2-x86-64.d index 4cc11cf..72c6592 100644 --- a/ld/testsuite/ld-size/size64-2-x86-64.d +++ b/ld/testsuite/ld-size/size64-2-x86-64.d @@ -8,14 +8,12 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -0+2003d8 R_X86_64_SIZE64 xxx -0+2003e0 R_X86_64_SIZE64 yyy -0+2003e8 R_X86_64_SIZE64 zzz -0+2003f0 R_X86_64_SIZE64 zzz-0x000000000000001e -0+2003f8 R_X86_64_SIZE64 zzz\+0x000000000000001e +0+2003b8 R_X86_64_SIZE64 zzz +0+2003c0 R_X86_64_SIZE64 zzz-0x000000000000001e +0+2003c8 R_X86_64_SIZE64 zzz\+0x000000000000001e Contents of section .data: - 2003d8 00000000 00000000 00000000 00000000 ................ - 2003e8 00000000 00000000 00000000 00000000 ................ - 2003f8 00000000 00000000 ........ + 2003a8 28000000 00000000 28000000 00000000 ................ + 2003b8 00000000 00000000 00000000 00000000 ................ + 2003c8 00000000 00000000 ........ -- cgit v1.1