diff options
author | Florian Weimer <fweimer@redhat.com> | 2019-02-28 11:52:44 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2019-02-28 11:52:44 +0100 |
commit | cc3e573ce3a542ea6d3711311e41f66261747a0e (patch) | |
tree | e79cc120df14b8f345f1c5c32db5a9ee1c8715b3 /elf/Makefile | |
parent | 92ad88fe72194ccb72a5f34fa3c76078bfc89400 (diff) | |
download | glibc-cc3e573ce3a542ea6d3711311e41f66261747a0e.tar.gz glibc-cc3e573ce3a542ea6d3711311e41f66261747a0e.tar.xz glibc-cc3e573ce3a542ea6d3711311e41f66261747a0e.zip |
elf: Add tests with a local IFUNC resolver [BZ #23937]
The existing tests all use global symbols (but with different visibility). Local symbols could be treated differently by the compiler and linker (as was the case on POWER ELFv2, causing bug 23937), and we did not have test coverage for this. Tested on x86-64 and POWER ELFv2 little-endian, with and without --disable-multi-arch. On POWER, the test cases elf/ifuncmain9, elf/ifuncmain9pic, elf/ifuncmain9pie reproduce bug 23937 with older binutils.
Diffstat (limited to 'elf/Makefile')
-rw-r--r-- | elf/Makefile | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/elf/Makefile b/elf/Makefile index e44960e5fe..55204073a3 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -326,23 +326,26 @@ tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \ ifuncmain2static ifuncmain2picstatic \ ifuncmain4static ifuncmain4picstatic \ ifuncmain5static ifuncmain5picstatic \ - ifuncmain7static ifuncmain7picstatic + ifuncmain7static ifuncmain7picstatic \ + ifuncmain9static ifuncmain9picstatic tests-static += $(tests-ifuncstatic) tests-internal += $(tests-ifuncstatic) ifeq (yes,$(build-shared)) +# Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8. tests-internal += \ ifuncmain1 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ ifuncmain1staticpic \ ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \ ifuncmain5 ifuncmain5pic ifuncmain5staticpic \ - ifuncmain7 ifuncmain7pic + ifuncmain7 ifuncmain7pic \ + ifuncmain9 ifuncmain9pic ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \ ifuncdep5 ifuncdep5pic 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 + ifuncmain5pie ifuncmain6pie ifuncmain7pie ifuncmain9pie ifeq (yes,$(have-textrel_ifunc)) ifunc-pie-tests += tst-ifunc-textrel endif @@ -1276,6 +1279,8 @@ CFLAGS-ifuncmain5staticpic.c += $(pic-ccflag) CFLAGS-ifuncdep5pic.c += $(pic-ccflag) CFLAGS-ifuncmain7pic.c += $(pic-ccflag) CFLAGS-ifuncmain7picstatic.c += $(pic-ccflag) +CFLAGS-ifuncmain9pic.c += $(pic-ccflag) +CFLAGS-ifuncmain9picstatic.c += $(pic-ccflag) LDFLAGS-ifuncmain3 = -Wl,-export-dynamic @@ -1285,6 +1290,7 @@ CFLAGS-ifuncmain1staticpie.c += $(pie-ccflag) CFLAGS-ifuncmain5pie.c += $(pie-ccflag) CFLAGS-ifuncmain6pie.c += $(pie-ccflag) CFLAGS-ifuncmain7pie.c += $(pie-ccflag) +CFLAGS-ifuncmain9pie.c += $(pie-ccflag) CFLAGS-tst-ifunc-textrel.c += $(pic-ccflag) $(objpfx)ifuncmain1pie: $(objpfx)ifuncmod1.so |