[PATCH v2] Fix make installcheck when using program-prefix
Samuel Zeter
samuelzeter@gmail.com
Fri May 23 04:20:43 GMT 2025
sanity.sh does not check for the presence of a program-prefix,
so when make installcheck is ran and files have been installed
with a prefix, the operation fails.
BUG: https://sourceware.org/bugzilla/show_bug.cgi?id=23120
Signed-off-by: Samuel Zeter <samuelzeter@gmail.com>
--- Fixes the issues raised from the first patch
binutils/Makefile.in | 2 +-
binutils/sanity.sh | 53 +++++++++++++++++++++++++++++++-------------
2 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 549b5a361c8..aa6891d4923 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -1852,7 +1852,7 @@ development.exp: $(BFDDIR)/development.sh
| $(AWK) -F= '{ print "set " $$1 " " $$2 }' > $@
installcheck-local:
- /bin/sh $(srcdir)/sanity.sh $(bindir)
+ /bin/sh $(srcdir)/sanity.sh $(bindir) '$(program_transform_name)'
objdump.@OBJEXT@:objdump.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(OBJDUMP_DEFS) $(srcdir)/objdump.c
diff --git a/binutils/sanity.sh b/binutils/sanity.sh
index e16df6163fb..4d50dde6455 100755
--- a/binutils/sanity.sh
+++ b/binutils/sanity.sh
@@ -24,44 +24,67 @@
### fail on errors
set -e
+find_prog ()
+{
+ local raw_name="$1"
+ local transformed="$(echo "$raw_name" | sed "$program_transform_name")"
+
+ if [ -x "${BIN}/${transformed}" ]; then
+ echo "${transformed}"
+ return 0
+ elif [ -x "${BIN}/${raw_name}" ]; then
+ echo "${raw_name}"
+ return 0
+ fi
+
+ echo "Error: '$raw_name' not found in ${BIN}" >&2
+ exit 1
+}
+
### first arg is directory in which binaries to be tested reside.
-case "$1" in
-"") BIN=. ;;
-*) BIN="$1" ;;
-esac
+BIN="${1:-.}"
+
+program_transform_name="${2}"
### size
+size=$(find_prog size)
for i in size objdump nm ar strip ranlib ; do
- ${BIN}/size ${BIN}/$i > /dev/null
+ test_prog=$(find_prog "$i")
+ "${BIN}/${size}" "${BIN}/${test_prog}" > /dev/null
done
### objdump
+objdump=$(find_prog objdump)
for i in size objdump nm ar strip ranlib ; do
- ${BIN}/objdump -ahifdrtxsl ${BIN}/$i > /dev/null
+ test_prog=$(find_prog "$i")
+ "${BIN}/${objdump}" -ahifdrtxsl "${BIN}/${test_prog}" > /dev/null
done
### nm
+nm=$(find_prog nm)
for i in size objdump nm ar strip ranlib ; do
- ${BIN}/nm ${BIN}/$i > /dev/null
+ test_prog=$(find_prog "$i")
+ "${BIN}/${nm}" "${BIN}/${test_prog}" > /dev/null
done
### strip
TMPDIR=./binutils-$$
-mkdir ${TMPDIR}
-
-cp ${BIN}/strip ${TMPDIR}/strip
+mkdir "${TMPDIR}"
+strip=$(find_prog strip)
+cp "${BIN}/$strip" "${TMPDIR}/$strip"
for i in size objdump nm ar ranlib ; do
- cp ${BIN}/$i ${TMPDIR}/$i
- ${BIN}/strip ${TMPDIR}/$i
- cp ${BIN}/$i ${TMPDIR}/$i
- ${TMPDIR}/strip ${TMPDIR}/$i
+ test_prog=$(find_prog "$i")
+ cp "${BIN}/${test_prog}" "${TMPDIR}/${test_prog}"
+ "${BIN}/$strip" "${TMPDIR}/${test_prog}"
+ cp "${BIN}/${test_prog}" "${TMPDIR}/${test_prog}"
+ "${TMPDIR}/$strip" "${TMPDIR}/${test_prog}"
done
### ar
### ranlib
-rm -rf ${TMPDIR}
+rm -rf "${TMPDIR}"
exit 0
--
2.49.0
More information about the Binutils
mailing list