diff options
-rw-r--r-- | flake.nix | 4 | ||||
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rwxr-xr-x | tests/build-id.sh | 2 | ||||
-rwxr-xr-x | tests/force-rpath.sh | 2 | ||||
-rwxr-xr-x | tests/no-gnu-hash.sh | 3 | ||||
-rwxr-xr-x | tests/no-rpath-pie-powerpc.sh | 3 | ||||
-rwxr-xr-x | tests/phdr-corruption.sh | 3 |
7 files changed, 13 insertions, 6 deletions
@@ -114,6 +114,10 @@ patchelf = patchelfFor nixpkgs.legacyPackages.${system}; default = self.packages.${system}.patchelf; + # This is a good test to see if packages can be cross-compiled. It also + # tests if our testsuite uses target-prefixed executable names. + patchelf-musl-cross = patchelfFor nixpkgs.legacyPackages.${system}.pkgsCross.musl64; + patchelf-win32 = (patchelfFor (pkgsCrossForMingw system).mingw32).overrideAttrs (old: { NIX_CFLAGS_COMPILE = "-static"; }); diff --git a/tests/Makefile.am b/tests/Makefile.am index cb80d9a..1fd3ff7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,7 @@ TESTS = $(src_TESTS) $(build_TESTS) EXTRA_DIST = no-rpath-prebuild $(src_TESTS) no-rpath-prebuild.sh invalid-elf endianness empty-note -TESTS_ENVIRONMENT = PATCHELF_DEBUG=1 OBJDUMP=$(OBJDUMP) READELF=$(READELF) +TESTS_ENVIRONMENT = PATCHELF_DEBUG=1 OBJDUMP=$(OBJDUMP) READELF=$(READELF) OBJCOPY=$(OBJCOPY) $(no_rpath_arch_TESTS): no-rpath-prebuild.sh @ln -s $< $@ diff --git a/tests/build-id.sh b/tests/build-id.sh index 94ddc4c..dc44a7a 100755 --- a/tests/build-id.sh +++ b/tests/build-id.sh @@ -13,4 +13,4 @@ long_rpath="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --set-rpath "$long_rpath" "${SCRATCH}/libbuildid.so" # older readelf versions do not recognize build id, but we can grep by constant -readelf -n "${SCRATCH}/libbuildid.so" | grep -q -F -e 'Build ID' -e 'Unknown note type: (0x00000003)' +${READELF} -n "${SCRATCH}/libbuildid.so" | grep -q -F -e 'Build ID' -e 'Unknown note type: (0x00000003)' diff --git a/tests/force-rpath.sh b/tests/force-rpath.sh index 6b1422a..c9b9a5d 100755 --- a/tests/force-rpath.sh +++ b/tests/force-rpath.sh @@ -1,6 +1,6 @@ #! /bin/sh -e SCRATCH=scratch/$(basename $0 .sh) -OBJDUMP=${OBJDDUMP:-objdump} +OBJDUMP=${OBJDUMP:-objdump} rm -rf ${SCRATCH} mkdir -p ${SCRATCH} diff --git a/tests/no-gnu-hash.sh b/tests/no-gnu-hash.sh index a98f459..0ce93f4 100755 --- a/tests/no-gnu-hash.sh +++ b/tests/no-gnu-hash.sh @@ -1,12 +1,13 @@ #! /bin/sh -e SCRATCH=scratch/$(basename $0 .sh) +STRIP=${STRIP:-strip} rm -rf ${SCRATCH} mkdir -p ${SCRATCH} cp simple ${SCRATCH}/ -strip --remove-section=.gnu.hash ${SCRATCH}/simple +${STRIP} --remove-section=.gnu.hash ${SCRATCH}/simple # Check if patchelf handles binaries with GNU_HASH in dynamic section but # without .gnu.hash section diff --git a/tests/no-rpath-pie-powerpc.sh b/tests/no-rpath-pie-powerpc.sh index 5bdb785..b469f9b 100755 --- a/tests/no-rpath-pie-powerpc.sh +++ b/tests/no-rpath-pie-powerpc.sh @@ -1,6 +1,7 @@ #! /bin/sh -e set -x SCRATCH=scratch/no-rpath-pie-powerpc +READELF=${READELF:-readelf} no_rpath_bin="${srcdir}/no-rpath-prebuild/no-rpath-pie-powerpc" @@ -27,7 +28,7 @@ if ! echo "$newRPath" | grep -q '/foo:/bar'; then fi # Tests for powerpc PIE endianness regressions -readelfData=$(readelf -l ${SCRATCH}/no-rpath 2>&1) +readelfData=$(${READELF} -l ${SCRATCH}/no-rpath 2>&1) if [ $(echo "$readelfData" | grep --count "PHDR") != 1 ]; then # Triggered if PHDR errors appear on stderr diff --git a/tests/phdr-corruption.sh b/tests/phdr-corruption.sh index 0a36882..1e62101 100755 --- a/tests/phdr-corruption.sh +++ b/tests/phdr-corruption.sh @@ -4,6 +4,7 @@ PATCHELF="../src/patchelf" SONAME="phdr-corruption.so" SCRATCH="scratch/$(basename $0 .sh)" SCRATCH_SO="${SCRATCH}/${SONAME}" +READELF=${READELF:-readelf} rm -rf "${SCRATCH}" mkdir -p "${SCRATCH}" @@ -12,7 +13,7 @@ cp "${SONAME}" "${SCRATCH}" "${PATCHELF}" --set-rpath "$(pwd)" "${SCRATCH_SO}" # Check for PT_PHDR entry VirtAddr corruption -readelfData=$(readelf -l "${SCRATCH_SO}" 2>&1) +readelfData=$(${READELF} -l "${SCRATCH_SO}" 2>&1) if [ $(echo "$readelfData" | grep --count "PHDR") != 1 ]; then # Triggered if PHDR errors appear on stderr |