about summary refs log tree commit diff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2016-09-29 21:54:31 -0400
committerCarlos O'Donell <carlos@redhat.com>2016-09-30 01:36:56 -0400
commitd61ef7352b0026d9eeaf457dbfbb2e3fd8401e92 (patch)
tree798532132a35db0935de8cff3f10e8642e3457bb /elf/Makefile
parent29cb9293326a27576965a40d50a898ee660dff81 (diff)
downloadglibc-d61ef7352b0026d9eeaf457dbfbb2e3fd8401e92.tar.gz
glibc-d61ef7352b0026d9eeaf457dbfbb2e3fd8401e92.tar.xz
glibc-d61ef7352b0026d9eeaf457dbfbb2e3fd8401e92.zip
Bug 20292 - Simplify and test _dl_addr_inside_object
The function _dl_addr_inside_object is simplified by removing
the conditional 'reladdr - l->l_phdr[n].p_vaddr >= 0' which is
always true. The function is refactored into it's own object file
and a unit test added to verify the correct behaviour of the
function.
Diffstat (limited to 'elf/Makefile')
-rw-r--r--elf/Makefile12
1 files changed, 11 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile
index 97f0ec248b..caffd92059 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -23,7 +23,7 @@ include ../Makeconfig
 
 headers		= elf.h bits/elfclass.h link.h bits/link.h
 routines	= $(all-dl-routines) dl-support dl-iteratephdr \
-		  dl-addr enbl-secure dl-profstub \
+		  dl-addr dl-addr-obj enbl-secure dl-profstub \
 		  dl-origin dl-libc dl-sym dl-tsd dl-sysdep
 
 # The core dynamic linking functions are in libc for the static and
@@ -319,6 +319,16 @@ tests-special += $(objpfx)tst-prelink-cmp.out
 endif
 endif
 
+# The test requires shared _and_ PIE because the executable
+# unit test driver must be able to link with the shared object
+# that is going to eventually go into an installed DSO.
+ifeq (yesyes,$(have-fpie)$(build-shared))
+tests += tst-_dl_addr_inside_object
+tests-pie += tst-_dl_addr_inside_object
+$(objpfx)tst-_dl_addr_inside_object: $(objpfx)dl-addr-obj.os
+CFLAGS-tst-_dl_addr_inside_object.c += $(PIE-ccflag)
+endif
+
 include ../Rules
 
 ifeq (yes,$(build-shared))