[Bug target/45837] New: Global options changes on Sept. 29th, breaks powerpc linux64 build
meissner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Sep 30 08:30:00 GMT 2010
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: unassigned@gcc.gnu.org
ReportedBy: meissner@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.
More information about the Gcc-bugs
mailing list