summaryrefslogtreecommitdiff
path: root/fixincludes
diff options
context:
space:
mode:
Diffstat (limited to 'fixincludes')
-rw-r--r--fixincludes/ChangeLog4
-rw-r--r--fixincludes/mkheaders.in22
2 files changed, 24 insertions, 2 deletions
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 5b3d9ae1055..3f93053e121 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,7 @@
+2020-02-20 Alexandre Oliva <oliva@adacore.com>
+
+ * mkheaders.in: Don't require build-time shell on host.
+
2020-02-13 Matheus Castanho <msc@linux.ibm.com>
* fixinc.in: Skip machine_name fix on powerpc*-*-linux*.
diff --git a/fixincludes/mkheaders.in b/fixincludes/mkheaders.in
index a293a57a73b..4109dc633dd 100644
--- a/fixincludes/mkheaders.in
+++ b/fixincludes/mkheaders.in
@@ -77,11 +77,29 @@ libexecsubdir=${libexecdir}/gcc/${target_noncanonical}/${version}
itoolsdir=${libexecsubdir}/install-tools
itoolsdatadir=${libsubdir}/install-tools
incdir=${libsubdir}/include-fixed
-mkinstalldirs="@SHELL@ ${itoolsdir}/mkinstalldirs"
+mkinstalldirs="${itoolsdir}/mkinstalldirs"
cd ${itoolsdir}
rm -rf ${incdir}/*
+for shell in $CONFIG_SHELL $SHELL @SHELL@ /bin/sh ""; do
+ if { test -x $shell || test -x $shell.exe; } \
+ && $shell $mkinstalldirs > /dev/null 2>&1; then
+ mkinstalldirs="$shell $mkinstalldirs"
+ break
+ elif test x$shell = x; then
+ if $mkinstalldirs > /dev/null 2>&1; then
+ break
+ elif test ! -f $mkinstalldirs; then
+ echo mkheaders: could not find $mkinstalldirs >&2
+ exit 1
+ else
+ echo mkheaders: please rerun with CONFIG_SHELL set to a working Bourne shell >&2
+ exit 1
+ fi
+ fi
+done
+
for ml in `cat ${itoolsdatadir}/fixinc_list`; do
sysroot_headers_suffix=`echo ${ml} | sed -e 's/;.*$//'`
multi_dir=`echo ${ml} | sed -e 's/^[^;]*;//'`
@@ -91,7 +109,7 @@ for ml in `cat ${itoolsdatadir}/fixinc_list`; do
if [ x${STMP_FIXINC} != x ] ; then
TARGET_MACHINE="${target}" target_canonical="${target}" \
MACRO_LIST="${itoolsdatadir}/macro_list" \
- @SHELL@ ./fixinc.sh ${subincdir} \
+ $shell ./fixinc.sh ${subincdir} \
${isysroot}${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
rm -f ${subincdir}/syslimits.h
if [ -f ${subincdir}/limits.h ]; then