http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45837
Summary: Global options changes on Sept. 29th, breaks powerpc linux64 build Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: meiss...@gcc.gnu.org Moving target_flags into a structure breaks the ppc linux64 build. The file config/rs6000/options-default.h contains the lines: #if TARGET_AIX #define OPT_64 "maix64" #define OPT_32 "maix32" #else #define OPT_64 "m64" #define OPT_32 "m32" #endif The file config/rs6000/linux64.h contains this redefinition: #undef TARGET_AIX #define TARGET_AIX TARGET_64BIT In the past, options.h was generated as: extern int target_flags; /* ... */ #define TARGET_64BIT ((target_flags & MASK_64BIT) != 0) Now it generates: #define target_flags global_options.x_target_flags /* ... */ #define TARGET_64BIT ((target_flags & MASK_64BIT) != 0) This means that anything that includes tm.h will get an error, stating that '.' is not allowed in preprocessing tokens. In the past it was relying on target_flags being considered 0 by the preprocessor since it wasn't defined.