I got this with binutils 2.7 under i486-linux: # cat foo.c #pragma weak foo foo () { } # gcc -c foo.c /tmp/cca21074.s: Assembler messages: /tmp/cca21074.s:17: Error: foo already declared as global -- H.J. Lu Innovix Technologies, Inc. hjl@innovix.com