about summary refs log tree commit diff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-03-05 11:36:35 -0800
committerH.J. Lu <hjl.tools@gmail.com>2015-08-01 15:42:23 -0700
commitd8700f7fa9a60def973ccdfad24266d91d9ce667 (patch)
tree64d24e574398028f3eebfd408dad9329ae069a57 /elf/Makefile
parenteaf2df74329942e92928162faa72159f33f040a7 (diff)
downloadglibc-d8700f7fa9a60def973ccdfad24266d91d9ce667.tar.gz
glibc-d8700f7fa9a60def973ccdfad24266d91d9ce667.tar.xz
glibc-d8700f7fa9a60def973ccdfad24266d91d9ce667.zip
Add a testcase for copy reloc against protected data
Linkers in some versions of binutils 2.25 and 2.26 don't support protected
data symbol with error messsage like:

/usr/bin/ld: copy reloc against protected `bar' is invalid
/usr/bin/ld: failed to set dynamic section sizes: Bad value

We check if linker supports copy reloc against protected data symbol to
avoid running the test if linker is broken.

Cherry-pick from master: 83569fb894050db7430047da2219ca50c68f882a
	[BZ #17711]
	* config.make.in (have-protected-data): New.
	* configure.ac: Check linker support for protected data symbol.
	* configure: Regenerated.
	* elf/Makefile (modules-names): Add tst-protected1moda and
	tst-protected1modb if $(have-protected-data) is yes.
	(tests): Add tst-protected1a and tst-protected1b if
	$(have-protected-data) is yes.
	($(objpfx)tst-protected1a): New.
	($(objpfx)tst-protected1b): Likewise.
	(tst-protected1modb.so-no-z-defs): Likewise.
	* elf/tst-protected1a.c: New file.
	* elf/tst-protected1b.c: Likewise.
	* elf/tst-protected1mod.h: Likewise.
	* elf/tst-protected1moda.c: Likewise.
	* elf/tst-protected1modb.c: Likewise.
Diffstat (limited to 'elf/Makefile')
-rw-r--r--elf/Makefile7
1 files changed, 7 insertions, 0 deletions
diff --git a/elf/Makefile b/elf/Makefile
index e5b142c7c6..d2380559a6 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -214,6 +214,13 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
 		tst-initorder2d \
 		tst-relsort1mod1 tst-relsort1mod2 tst-array2dep \
 		tst-array5dep tst-null-argv-lib
+ifeq (yes,$(have-protected-data))
+modules-names += tst-protected1moda tst-protected1modb
+tests += tst-protected1a tst-protected1b
+$(objpfx)tst-protected1a: $(addprefix $(objpfx),tst-protected1moda.so tst-protected1modb.so)
+$(objpfx)tst-protected1b: $(addprefix $(objpfx),tst-protected1modb.so tst-protected1moda.so)
+tst-protected1modb.so-no-z-defs = yes
+endif
 ifeq (yesyes,$(have-fpie)$(build-shared))
 modules-names += tst-piemod1
 tests += tst-pie1 tst-pie2