http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48226
Summary: Boost does not build on power7 Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: meiss...@gcc.gnu.org ReportedBy: meiss...@gcc.gnu.org Host: powerpc64-linux Target: powerpc64-linux Build: powerpc64-linux GCC's -mcpu=power7 (or --with-cpu=power7 used in configuration) enables the Altivec vector interface. This interface marks vector as a conditional macro, which when expanded will either be just 'vector' in the normal case, or __attribute__((altivec(vector__))) if the next token is a standard type (or bool/pixel followed by a standard type). The library boost has a template of the form: typedef typename Iterator::vector vector; The processing of the conditional macros did not handle the case where the vector keyword was repeated. This caused the conditional macro handling to be recusrively called, and the code is expanded as: typedef typename Iterator::vector; The fix is to specifically handle vector vector to prevent the recursive call.