summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-i386/pr27998a.d
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-07-21 10:35:58 -0700
committerH.J. Lu <hjl.tools@gmail.com>2022-07-22 14:46:22 -0700
commit5c0b4ee406035917d0e50aa138194fab57ae6bf8 (patch)
tree80f3ce336e1b432a435ede51de3ab333d6dec002 /ld/testsuite/ld-i386/pr27998a.d
parent19892fedb7b7e9129d76a0c48b26721d4973fb20 (diff)
i386: Don't allow GOTOFF relocation against IFUNC symbol for PIClinaro-local/ci/tcwg_kernel/llvm-release-arm-stable-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-stable-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-stable-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-stable-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-norov-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-norov-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-norov-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-norov-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-next-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-next-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-next-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-next-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-mainline-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-mainline-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-mainline-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-mainline-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-lts-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-lts-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-lts-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-arm-lts-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-stable-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-stable-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-stable-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-stable-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-norov-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-norov-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-norov-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-norov-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-next-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-next-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-next-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-next-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-mainline-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-mainline-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-mainline-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-mainline-allmodconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-lts-defconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-lts-allyesconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-lts-allnoconfiglinaro-local/ci/tcwg_kernel/llvm-release-aarch64-lts-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-stable-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-stable-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-stable-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-stable-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-norov-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-norov-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-norov-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-norov-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-next-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-next-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-next-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-next-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-mainline-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-mainline-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-mainline-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-mainline-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-lts-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-lts-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-lts-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-arm-lts-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-stable-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-stable-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-stable-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-stable-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-norov-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-norov-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-norov-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-norov-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-next-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-next-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-next-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-next-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-mainline-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-mainline-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-mainline-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-mainline-allmodconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-lts-defconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-lts-allyesconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-lts-allnoconfiglinaro-local/ci/tcwg_kernel/gnu-release-aarch64-lts-allmodconfiglinaro-local/ci/tcwg_bmk_llvm_tx1/llvm-release-aarch64-spec2k6-O3_LTOlinaro-local/ci/tcwg_bmk_llvm_tx1/llvm-release-aarch64-spec2k6-O3linaro-local/ci/tcwg_bmk_llvm_tx1/llvm-release-aarch64-spec2k6-O2_LTOlinaro-local/ci/tcwg_bmk_llvm_tx1/llvm-release-aarch64-spec2k6-O2linaro-local/ci/tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-O3_LTOlinaro-local/ci/tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-O3linaro-local/ci/tcwg_bmk_llvm_sq/llvm-release-aarch64-spec2k6-Oslinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-arm-spec2k6-Oz_LTOlinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-arm-spec2k6-Ozlinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-arm-spec2k6-Os_LTOlinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-arm-spec2k6-Oslinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-aarch64-spec2k6-Ozlinaro-local/ci/tcwg_bmk_llvm_apm/llvm-release-aarch64-spec2k6-Os_LTOlinaro-local/ci/tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O3_LTOlinaro-local/ci/tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O3linaro-local/ci/tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O2_LTOlinaro-local/ci/tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O2linaro-local/ci/tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O3_LTOlinaro-local/ci/tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O3linaro-local/ci/tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O2_LTOlinaro-local/ci/tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O2linaro-local/ci/tcwg_bmk_gnu_sq/gnu-release-aarch64-spec2k6-Oslinaro-local/ci/tcwg_bmk_gnu_eabi_stm32/gnu_eabi-release-arm_eabi-coremark-Oslinaro-local/ci/tcwg_bmk_gnu_eabi_stm32/gnu_eabi-release-arm_eabi-coremark-O3_LTOlinaro-local/ci/tcwg_bmk_gnu_eabi_stm32/gnu_eabi-release-arm_eabi-coremark-O3linaro-local/ci/tcwg_bmk_gnu_apm/gnu-release-arm-spec2k6-Os_LTOlinaro-local/ci/tcwg_bmk_gnu_apm/gnu-release-arm-spec2k6-Oslinaro-local/ci/tcwg_bmk_gnu_apm/gnu-release-aarch64-spec2k6-Os
We can't use the PLT entry as the function address for PIC since the PIC register may not be set up properly for indirect call. bfd/ PR ld/27998 * elf32-i386.c (elf_i386_relocate_section): Don't allow GOTOFF relocation against IFUNC symbol for PIC. ld/ PR ld/27998 * testsuite/ld-i386/pr27998a.d: Replace -shared with -e bar. * testsuite/ld-i386/pr27998b.d: Expect a linker error. * testsuite/ld-ifunc/ifunc-2-i386-now.d: Updated. * testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise. * testsuite/ld-ifunc/ifunc-2-i386.s: Replace @GOTOFF with @GOT. * testsuite/ld-ifunc/ifunc-2-local-i386.s: Likewise. (cherry picked from commit 8f29211c3f0a6335c17e0a90396c146facf6dba4)
Diffstat (limited to 'ld/testsuite/ld-i386/pr27998a.d')
-rw-r--r--ld/testsuite/ld-i386/pr27998a.d2
1 files changed, 1 insertions, 1 deletions
diff --git a/ld/testsuite/ld-i386/pr27998a.d b/ld/testsuite/ld-i386/pr27998a.d
index ca3c9205fa..a8019730ec 100644
--- a/ld/testsuite/ld-i386/pr27998a.d
+++ b/ld/testsuite/ld-i386/pr27998a.d
@@ -1,5 +1,5 @@
#as: --32
-#ld: -shared -melf_i386
+#ld: -e bar -melf_i386
#readelf: -r --wide
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entry: