gcc-4.3.1/gcc/makefile contains one very long line, via substitution of gtfiles. This is "inconvenient" and "annoying" but works. I have a patch for it. It has been seen to work on Cygwin, but not work on Linux. Waiting for Autoconf >=2.60 (currently using 2.59) will make this easier, so maybe just wait. I will see if I can make it work on a few platforms, possibly by using per-language substitutions, without newlines. (given that the list of languages is not hardcoded, not obviously trivial, but maybe easy enough, gotta go read the code again..)
--- /src/gcc.orig/gcc/configure 2008-05-21 01:54:15.000000000 -0700 +++ /src/gcc/gcc/configure 2008-07-28 01:55:52.692206100 -0700 @@ -17026,13 +17026,31 @@ all_languages="$all_languages $language" all_compilers="$all_compilers $compilers" all_outputs="$all_outputs $outputs" - all_gtfiles="$all_gtfiles [$subdir] $gtfiles" + # Three slashes: Later, via sed/AC_SUBST, first two will become one, third escapes the newline. + all_gtfiles="$all_gtfiles"' \\\ + '"[$subdir] $gtfiles" done # Pick up gtfiles for c gtfiles= . ${srcdir}/c-config-lang.in -all_gtfiles="$all_gtfiles [c] $gtfiles" +# Three slashes: Later, via sed/AC_SUBST, first two will become one, third escapes the newline. +all_gtfiles="$all_gtfiles"' \\\ + '"[c] $gtfiles" + +# +# Wrap every few elements in all_gtfiles, to keep line lengths +# somewhat down, unless it has any quotes, which confuse things. +# +cat <<EOF > conftest.gt1 +$all_gtfiles +EOF +if grep [\"\'] conftest.gt1; then :; else + # Six slashes will immediately become three slashes. Later, via sed/AC_SUBST, first two will become one, third escapes the newline. + # The seventh slash is for the newline the first time. + sed 's/\([^ \\][^ \\]* \)\{5\}/\0\\\\\\\n /g' conftest.gt1 > conftest.gt2 + all_gtfiles=`cat conftest.gt2` +fi check_languages= for language in $all_selected_languages --- /src/gcc.orig/gcc/configure.ac 2008-05-21 01:54:15.000000000 -0700 +++ /src/gcc/gcc/configure.ac 2008-07-28 01:55:43.270331100 -0700 @@ -3639,13 +3639,33 @@ all_languages="$all_languages $language" all_compilers="$all_compilers $compilers" all_outputs="$all_outputs $outputs" - all_gtfiles="$all_gtfiles [[$subdir]] $gtfiles" + # Three slashes: Later, via sed/AC_SUBST, first two will become one, third escapes the newline. + all_gtfiles="$all_gtfiles"' \\\ + '"[[$subdir]] $gtfiles" done # Pick up gtfiles for c gtfiles= . ${srcdir}/c-config-lang.in -all_gtfiles="$all_gtfiles [[c]] $gtfiles" +# Three slashes: Later, via sed/AC_SUBST, first two will become one, third escapes the newline. +all_gtfiles="$all_gtfiles"' \\\ + '"[[c]] $gtfiles" + +# +# Wrap every few elements in all_gtfiles, to keep line lengths +# somewhat down, unless it has any quotes, which confuse things. +# +cat <<EOF > conftest.gt1 +$all_gtfiles +EOF +changequote(,)dnl +if grep [\"\'] conftest.gt1; then :; else + # Six slashes will immediately become three slashes. Later, via sed/AC_SUBST, first two will become one, third escapes the newline. + # The seventh slash is for the newline the first time. + sed 's/\([^ \\][^ \\]* \)\{5\}/\0\\\\\\\n /g' conftest.gt1 > conftest.gt2 + all_gtfiles=`cat conftest.gt2` +fi +changequote([,])dnl check_languages= for language in $all_selected_languages -- Summary: gcc/makefile contains one very long line (over 2k) Product: gcc Version: 4.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jayk123 at hotmail dot com GCC build triplet: any GCC host triplet: any GCC target triplet: any http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36994