libgloss: restore multilib settings in subdir makefiles
Commit 754f8def0d
("libgloss: merge stub
arch configure scripts up a level") had an unintended side-effect: the
MULTI* variables in the Makefiles no longer get rewritten at configure
time in the subdirs. Only the top-level Makefile still is. This is
because the configure integration of multilib (both the way libgloss
did it manually and the way AM_ENABLE_MULTILIB does it) only rewrites
"Makefile".
We could try propagating the MULTI* variables from libgloss/Makefile
down via FLAGS_TO_PASS, but this runs into a limitation: the multilib
logic uses this variable to switch from libgloss/ to each multilib
libgloss/, and libgloss uses this variable to enter subdirectories.
The latter we want, but the former ends up overridding the Makefile
environment. We could side-step that with some GNU Make directives,
but it feels like we're getting a bit too deep down the rabbit hole.
Instead, let's call config-ml.in ourselves for each subdir Makefile
that the top-level configure generates. This restores the previous
behavior and should be less risky in general.
This logic should be unnecessary when/if we switch libgloss over to
a non-recursive Automake build (since all build+install settings are
in the single libgloss/Makefile), but it'll be a while before we can
land that rework, so let's fix this up now.
This commit is contained in:
parent
899cf3c952
commit
67c600b995
libgloss
|
@ -3926,6 +3926,8 @@ $as_echo X"$file" |
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
"cpu-init/Makefile":F) ac_file=cpu-init/Makefile . ${srcdir}/../../config-ml.in
|
||||||
|
;;
|
||||||
"default-1":C)
|
"default-1":C)
|
||||||
# Only add multilib support code if we just rebuilt the top-level
|
# Only add multilib support code if we just rebuilt the top-level
|
||||||
# Makefile.
|
# Makefile.
|
||||||
|
|
|
@ -62,7 +62,9 @@ AC_SUBST_FILE(host_makefile_frag)
|
||||||
# Configure cpu init plug-ins
|
# Configure cpu init plug-ins
|
||||||
if test -d "${srcdir}/cpu-init"; then
|
if test -d "${srcdir}/cpu-init"; then
|
||||||
subdirs="${subdirs} cpu-init"
|
subdirs="${subdirs} cpu-init"
|
||||||
AC_CONFIG_FILES([cpu-init/Makefile])
|
AC_CONFIG_FILES([cpu-init/Makefile], [dnl
|
||||||
|
ac_file=cpu-init/Makefile . ${srcdir}/../../config-ml.in
|
||||||
|
])
|
||||||
AC_SUBST(subdirs)
|
AC_SUBST(subdirs)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -4794,6 +4794,9 @@ target_makefile_frag_path=$target_makefile_frag
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ac_config_commands="$ac_config_commands default-1"
|
||||||
|
|
||||||
|
|
||||||
# Default to --enable-multilib
|
# Default to --enable-multilib
|
||||||
# Check whether --enable-multilib was given.
|
# Check whether --enable-multilib was given.
|
||||||
if test "${enable_multilib+set}" = set; then :
|
if test "${enable_multilib+set}" = set; then :
|
||||||
|
@ -4829,7 +4832,7 @@ if test $cross_compiling = no && test $multilib = yes \
|
||||||
cross_compiling=maybe
|
cross_compiling=maybe
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_config_commands="$ac_config_commands default-1"
|
ac_config_commands="$ac_config_commands default-2"
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile"
|
ac_config_files="$ac_config_files Makefile"
|
||||||
|
@ -5554,6 +5557,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
# INIT-COMMANDS
|
# INIT-COMMANDS
|
||||||
#
|
#
|
||||||
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
|
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
|
||||||
|
subdirs="$subdirs"
|
||||||
|
|
||||||
srcdir="$srcdir"
|
srcdir="$srcdir"
|
||||||
host="$host"
|
host="$host"
|
||||||
|
@ -5618,6 +5622,7 @@ do
|
||||||
"libnosys/Makefile") CONFIG_FILES="$CONFIG_FILES libnosys/Makefile" ;;
|
"libnosys/Makefile") CONFIG_FILES="$CONFIG_FILES libnosys/Makefile" ;;
|
||||||
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
||||||
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
|
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
|
||||||
|
"default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
|
||||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||||
|
|
||||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||||
|
@ -6347,6 +6352,14 @@ $as_echo X"$file" |
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
"default-1":C)
|
"default-1":C)
|
||||||
|
for subdir in $subdirs; do
|
||||||
|
case " $CONFIG_FILES " in
|
||||||
|
*" $subdir/Makefile "*)
|
||||||
|
ac_file=$subdir/Makefile . ${multi_basedir}/config-ml.in
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done ;;
|
||||||
|
"default-2":C)
|
||||||
# Only add multilib support code if we just rebuilt the top-level
|
# Only add multilib support code if we just rebuilt the top-level
|
||||||
# Makefile.
|
# Makefile.
|
||||||
case " $CONFIG_FILES " in
|
case " $CONFIG_FILES " in
|
||||||
|
|
|
@ -330,6 +330,19 @@ target_makefile_frag_path=$target_makefile_frag
|
||||||
AC_SUBST(target_makefile_frag_path)
|
AC_SUBST(target_makefile_frag_path)
|
||||||
AC_SUBST_FILE(target_makefile_frag)
|
AC_SUBST_FILE(target_makefile_frag)
|
||||||
|
|
||||||
|
dnl AM_ENABLE_MULTILIB only processes the top-level Makefile, but we want the
|
||||||
|
dnl multilib settings to propagate to all sub-Makefiles that we recurse into
|
||||||
|
dnl too. This can go away if we ever get rid of sub-Makefiles and only use
|
||||||
|
dnl Automake + makefile include fragments.
|
||||||
|
AC_OUTPUT_COMMANDS([
|
||||||
|
for subdir in $subdirs; do
|
||||||
|
case " $CONFIG_FILES " in
|
||||||
|
*" $subdir/Makefile "*)
|
||||||
|
ac_file=$subdir/Makefile . ${multi_basedir}/config-ml.in
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done], [subdirs="$subdirs"])
|
||||||
|
|
||||||
AM_ENABLE_MULTILIB(, ..)
|
AM_ENABLE_MULTILIB(, ..)
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
AC_CONFIG_FILES([Makefile])
|
||||||
|
|
Loading…
Reference in New Issue