the gcc build system has some awk scripts that use unsafe character ranges:
$ grep a-z gcc/*.awk
gcc/optc-gen.awk: gsub( "[^A-Za-z0-9_]", "X", macros[i] )
gcc/optc-gen.awk: gsub ("[^A-Za-z0-9]", "_", enum)
gcc/opt-functions.awk: gsub ("[^A-Za-z0-9]", "_", name)
gcc/opth-gen.awk: gsub( "[^A-Za-z0-9_]", "X", macros[i] )
gcc/opth-gen.awk: gsub ("[^A-Za-z0-9]", "_", enum)
A-Z will not match the expected alphabet (the range as defined by the "C"
locale) in all locales. while this has always been a problem, it went
unnoticed as the incorrect munging is consistent in nature. with gcc-4.3, the
incorrect munging results in a conflict of symbols and triggers a build
failure.
i cant seem to find any precedent as to the correct fix. i would personally
just change everything to [:alnum:], but the only use of such character classes
that i can find via a quick grep is in the lex files. another solution would
be to execute the awk stuff via configure as it sets up a clean environment.
or you can prepend "env LC_ALL=C" to the AWK variable setup via configure, but
this ignores the problems that configure solves automatically.
--
Summary: build locale not properly handled with awk scripts
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vapier at gentoo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35855