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