The new requirement for (weak) symbol aliasing: <Quote from GCC 4.0.x release notes> Given __attribute__((alias("target"))) it is now an error if target is not a symbol, defined in the same translation unit. This also applies to aliases created by #pragma weak alias=target. This is because it's meaningless to define an alias to an undefined symbol. On Solaris, the native assembler would have caught this error, but GNU as does not. </Quote>
breaks compilation of code like this (example from an sh-elf target, but the effect is architecture-independent): extern __attribute__((weak,alias("UIE11"))) void NMI(void); void UIE11 (void); asm( "_UIE11:[EMAIL PROTECTED],r4\t\n" ); which is perfectly valid and worked in all of gcc 3.0.x, gcc 3.3.x and gcc 3.4.x -- Summary: New __attribute__((alias("target"))) requirement break aliasing assembler functions Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: arnold-j at t-online dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24863