Skip to content

Commit b6cf11a

Browse files
jambormMic92
authored andcommitted
Fix rename-dynamic-symbols.sh test (issue #503)
when building and then checking patchelf on openSUSE Leap 15.5, the rename-dynamic-symbols.sh test fails. The test builds a test library and executable called many-syms-main, then runs patchelf to rename symbols and then checks that many-syms-main still runs successfully. On Leap the run fails with many messages like ./many-syms-main: Symbol `f1947' causes overflow in R_X86_64_PC32 relocation and then terminates with a Segmentation fault. The interesting bit is that it however fails so even before patchelf touches it. The binary is built and linked with option -pie which produces an executable which is supposedly position independent but does not actually contain code position independent code which requires compiler option -fPIE (of -fpie or -fPIC or -fpic). As a result the calls in the generated assembly do not go through the PLT. This patch merely adresses that by adding the -fPIE option to the CFLAGS for the test.
1 parent 835f820 commit b6cf11a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

tests/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ many_syms_main_SOURCES = many-syms-main.c
164164
many_syms_main_LDFLAGS = $(LDFLAGS_local)
165165
many_syms_main_LDADD = -lmany-syms $(AM_LDADD)
166166
many_syms_main_DEPENDENCIES = libmany-syms.so
167-
many_syms_main_CFLAGS = -pie
167+
many_syms_main_CFLAGS = -pie -fPIE
168168
libmany_syms_so_SOURCES = many-syms.c
169169
libmany_syms_so_LDFLAGS = $(LDFLAGS_sharedlib)
170170

0 commit comments

Comments
 (0)