From aa489d7c4a270e6f87f7111c40c3ff39d9ae9270 Mon Sep 17 00:00:00 2001 From: Yufeng Zhang Date: Fri, 14 Jun 2013 15:55:36 +0000 Subject: [PATCH] ld/ * emulparams/aarch64elf.sh: Add IREL_IN_PLT. ld/testsuite/ * ld-aarch64/ifunc-1-local.d: Replace hard-coded immediate offset with regexp. * ld-aarch64/ifunc-1.d: Likewise. * ld-aarch64/ifunc-2-local.d: Likewise. * ld-aarch64/ifunc-2.d: Likewise. * ld-aarch64/ifunc-3a.d: Likewise. * ld-aarch64/ifunc-2-local.s: Change not to declare __GI_foo and foo global. --- ld/ChangeLog | 4 ++++ ld/emulparams/aarch64elf.sh | 2 ++ ld/testsuite/ChangeLog | 11 +++++++++++ ld/testsuite/ld-aarch64/ifunc-1-local.d | 2 +- ld/testsuite/ld-aarch64/ifunc-1.d | 2 +- ld/testsuite/ld-aarch64/ifunc-2-local.d | 4 ++-- ld/testsuite/ld-aarch64/ifunc-2-local.s | 3 --- ld/testsuite/ld-aarch64/ifunc-2.d | 4 ++-- ld/testsuite/ld-aarch64/ifunc-3a.d | 2 +- 9 files changed, 24 insertions(+), 10 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index e58945bb7af..c1435fe4224 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2013-06-14 Yufeng Zhang + + * emulparams/aarch64elf.sh: Add IREL_IN_PLT. + 2013-06-12 Nick Clifton * ldcref.c (output_one_cref): Place common definitions after diff --git a/ld/emulparams/aarch64elf.sh b/ld/emulparams/aarch64elf.sh index 53ccd6ab921..99f48446658 100644 --- a/ld/emulparams/aarch64elf.sh +++ b/ld/emulparams/aarch64elf.sh @@ -18,6 +18,8 @@ MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" ENTRY=_start EMBEDDED=yes SEPARATE_GOTPLT=24 +IREL_IN_PLT= + TEXT_START_ADDR=0x00400000 DATA_START_SYMBOLS='__data_start = . ;'; diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index fa4c8420be4..202c1eb55a1 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2013-06-14 Yufeng Zhang + + * ld-aarch64/ifunc-1-local.d: Replace hard-coded immediate offset + with regexp. + * ld-aarch64/ifunc-1.d: Likewise. + * ld-aarch64/ifunc-2-local.d: Likewise. + * ld-aarch64/ifunc-2.d: Likewise. + * ld-aarch64/ifunc-3a.d: Likewise. + * ld-aarch64/ifunc-2-local.s: Change not to declare __GI_foo and foo + global. + 2013-06-13 Terry Guo PR ld/15302 diff --git a/ld/testsuite/ld-aarch64/ifunc-1-local.d b/ld/testsuite/ld-aarch64/ifunc-1-local.d index 0cce7f665f8..0b49004de7d 100644 --- a/ld/testsuite/ld-aarch64/ifunc-1-local.d +++ b/ld/testsuite/ld-aarch64/ifunc-1-local.d @@ -3,5 +3,5 @@ #target: aarch64-*-* #... -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x2a0@plt> +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x[0-9a-f]+@plt> #pass diff --git a/ld/testsuite/ld-aarch64/ifunc-1.d b/ld/testsuite/ld-aarch64/ifunc-1.d index 8a17cd763af..0b49004de7d 100644 --- a/ld/testsuite/ld-aarch64/ifunc-1.d +++ b/ld/testsuite/ld-aarch64/ifunc-1.d @@ -3,5 +3,5 @@ #target: aarch64-*-* #... -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x2c0@plt> +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x[0-9a-f]+@plt> #pass diff --git a/ld/testsuite/ld-aarch64/ifunc-2-local.d b/ld/testsuite/ld-aarch64/ifunc-2-local.d index 07616ca0070..07cc0bf0089 100644 --- a/ld/testsuite/ld-aarch64/ifunc-2-local.d +++ b/ld/testsuite/ld-aarch64/ifunc-2-local.d @@ -3,7 +3,7 @@ #target: aarch64-*-* #... -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x2c0@plt> +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x[0-9a-f]+@plt> [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <_GLOBAL_OFFSET_TABLE_> -[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x2b0 +[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x[0-9a-f]+ #pass diff --git a/ld/testsuite/ld-aarch64/ifunc-2-local.s b/ld/testsuite/ld-aarch64/ifunc-2-local.s index da350df6315..632c31f4560 100644 --- a/ld/testsuite/ld-aarch64/ifunc-2-local.s +++ b/ld/testsuite/ld-aarch64/ifunc-2-local.s @@ -1,9 +1,6 @@ .type foo, %gnu_indirect_function - .global __GI_foo - .hidden __GI_foo .set __GI_foo, foo .text -.globl foo .type foo, @function foo: ret diff --git a/ld/testsuite/ld-aarch64/ifunc-2.d b/ld/testsuite/ld-aarch64/ifunc-2.d index 07616ca0070..07cc0bf0089 100644 --- a/ld/testsuite/ld-aarch64/ifunc-2.d +++ b/ld/testsuite/ld-aarch64/ifunc-2.d @@ -3,7 +3,7 @@ #target: aarch64-*-* #... -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x2c0@plt> +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x[0-9a-f]+@plt> [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <_GLOBAL_OFFSET_TABLE_> -[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x2b0 +[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x[0-9a-f]+ #pass diff --git a/ld/testsuite/ld-aarch64/ifunc-3a.d b/ld/testsuite/ld-aarch64/ifunc-3a.d index 1335480252a..91ba4aa5945 100644 --- a/ld/testsuite/ld-aarch64/ifunc-3a.d +++ b/ld/testsuite/ld-aarch64/ifunc-3a.d @@ -4,5 +4,5 @@ #target: aarch64-*-* #... -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x2e0@plt> +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x[0-9a-f]+@plt> #pass -- 2.30.2