Although this came up initially when working on the Darwin Arm64 port, it also breaks cross-compilers on platforms with non-GNU sed.
Tested on x86_64-darwin X aarch64-linux-gnu, aarch64-darwin, aarch64-linux-gnu and x86_64-linux-gnu. OK for master? thanks, Iain --- 8< --- Currently, the sed command used to parse --with-{cpu,tune,arch} are using GNU-specific extension to the -e (recognising extended regex). This is failing on Darwin, which defaults to Posix behaviour for -e. However '-E' is accepted to indicate an extended RE. Strictly, this is also not really sufficient, since we should only require a Posix sed (but it seems supported for BSD-derivatives). gcc/ChangeLog: * config.gcc: Use -E to to sed to indicate that we are using extended REs. Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> --- gcc/config.gcc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gcc/config.gcc b/gcc/config.gcc index 606d3a8513e..a7216907261 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -4199,8 +4199,8 @@ case "${target}" in fi for which in cpu arch tune; do eval "val=\$with_$which" - base_val=`echo $val | sed -e 's/\+.*//'` - ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'` + base_val=`echo $val | sed -E 's/\+.*//'` + ext_val=`echo $val | sed -E 's/[a-z0-9.-]+//'` if [ $which = arch ]; then def=aarch64-arches.def @@ -4232,9 +4232,9 @@ case "${target}" in while [ x"$ext_val" != x ] do - ext_val=`echo $ext_val | sed -e 's/\+//'` - ext=`echo $ext_val | sed -e 's/\+.*//'` - base_ext=`echo $ext | sed -e 's/^no//'` + ext_val=`echo $ext_val | sed -E 's/\+//'` + ext=`echo $ext_val | sed -E 's/\+.*//'` + base_ext=`echo $ext | sed -E 's/^no//'` opt_line=`echo -e "$options_parsed" | \ grep "^\"$base_ext\""` @@ -4245,7 +4245,7 @@ case "${target}" in echo "Unknown extension used in --with-$which=$val" 1>&2 exit 1 fi - ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'` + ext_val=`echo $ext_val | sed -E 's/[a-z0-9]+//'` done true -- 2.39.2 (Apple Git-143)