add regression test for NOTE section relocation

This commit is contained in:
Jörg Thalheim 2020-07-31 08:33:32 +01:00
parent 43a33482b5
commit 9621e85b9e
No known key found for this signature in database
GPG Key ID: 003F2096411B5F92
2 changed files with 25 additions and 2 deletions

View File

@ -24,7 +24,8 @@ src_TESTS = \
set-rpath-library.sh soname.sh shrink-rpath-with-allowed-prefixes.sh \
force-rpath.sh \
plain-needed.sh \
output-flag.sh
output-flag.sh \
build-id.sh
build_TESTS = \
$(no_rpath_arch_TESTS)
@ -76,7 +77,10 @@ big_dynstr_LDFLAGS = $(LDFLAGS_local)
# - without libtool, only archives (static libraries) can be built by automake
# - with libtool, it is difficult to control options
# - with libtool, it is not possible to compile convenience *dynamic* libraries :-(
check_PROGRAMS += libfoo.so libfoo-scoped.so libbar.so libbar-scoped.so libsimple.so
check_PROGRAMS += libfoo.so libfoo-scoped.so libbar.so libbar-scoped.so libsimple.so libbuildid.so
libbuildid_so_SOURCES = simple.c
libbuildid_so_LDFLAGS = $(LDFLAGS_sharedlib) -Wl,-build-id
libfoo_so_SOURCES = foo.c
libfoo_so_LDADD = -lbar $(AM_LDADD)

19
tests/build-id.sh Executable file
View File

@ -0,0 +1,19 @@
#! /bin/sh -e
SCRATCH=scratch/$(basename $0 .sh)
if ! command -v readelf >/dev/null; then
echo "No readelf found; skip test"
exit 0
fi
rm -rf "${SCRATCH}"
mkdir -p "${SCRATCH}"
cp libbuildid.so "${SCRATCH}/"
long_rpath="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
../src/patchelf \
--set-rpath "$long_rpath" "${SCRATCH}/libbuildid.so"
readelf -n "${SCRATCH}/libbuildid.so" | grep -q "Build ID"