NixOS / patchelf

A small utility to modify the dynamic linker and RPATH of ELF executables
GNU General Public License v3.0
3.57k stars 486 forks source link

Fix rename-dynamic-symbols.sh test (issue #503) #547

Open jamborm opened 7 months ago

jamborm commented 7 months ago

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.

Thank you!

Please do your best to include a regression test so that the quality of future releases can be preserved.