diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-10-26 08:30:18 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-10-29 09:21:37 -0300 |
commit | 66a273d16a63d1ed74a8d14a210a04c6a0f5dd45 (patch) | |
tree | 1d1440964c68df68eb150fe7584861817c1c40f9 | |
parent | 88e316b06414ee7c944cd6f8b30b07a972b78499 (diff) | |
download | glibc-66a273d16a63d1ed74a8d14a210a04c6a0f5dd45.tar.gz glibc-66a273d16a63d1ed74a8d14a210a04c6a0f5dd45.tar.xz glibc-66a273d16a63d1ed74a8d14a210a04c6a0f5dd45.zip |
elf: Disable ifuncmain{1,5,5pic,5pie} when using LLD
These tests takes the address of a protected symbol (foo_protected) and lld does not support copy relocations on protected data symbols. Checked on x86_64-linux-gnu. Reviewed-by: Fangrui Song <maskray@google.com>
-rw-r--r-- | elf/Makefile | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/elf/Makefile b/elf/Makefile index 7e4f0c3121..cb9bcfb799 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -427,11 +427,14 @@ ifeq (yes,$(build-shared)) tests += tst-ifunc-fault-lazy tst-ifunc-fault-bindnow # Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8. tests-internal += \ - ifuncmain1 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ + ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ ifuncmain1staticpic \ ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \ - ifuncmain5 ifuncmain5pic ifuncmain5staticpic \ + ifuncmain5staticpic \ ifuncmain7 ifuncmain7pic +ifeq (no,$(with-lld)) +tests-internal += ifuncmain1 ifuncmain5 ifuncmain5pic +endif ifeq (yes,$(have-gcc-ifunc)) tests-internal += ifuncmain9 ifuncmain9pic endif @@ -441,17 +444,23 @@ extra-test-objs += $(ifunc-test-modules:=.o) test-internal-extras += $(ifunc-test-modules) ifeq (yes,$(have-fpie)) ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \ - ifuncmain5pie ifuncmain6pie ifuncmain7pie + ifuncmain6pie ifuncmain7pie ifeq (yes,$(have-gcc-ifunc)) ifunc-pie-tests += ifuncmain9pie endif +ifeq (no,$(with-lld)) +ifunc-pie-tests += ifuncmain5pie +endif ifeq (yes,$(have-textrel_ifunc)) ifunc-pie-tests += tst-ifunc-textrel endif tests-internal += $(ifunc-pie-tests) tests-pie += $(ifunc-pie-tests) endif -modules-names += ifuncmod1 ifuncmod3 ifuncmod5 ifuncmod6 +modules-names += ifuncmod1 ifuncmod3 ifuncmod6 +ifeq (no,$(with-lld)) +modules-names += ifuncmod5 +endif endif endif |