When there are 2 compilers, one uses comdat and the other uses .gnu.linkonce, their outputs may not work together.
Created attachment 77 [details] A testcase for i386 [hjl@gnu comdat-4]$ make as -o x.o x.s as -o y.o y.s ld -r -o foo.o x.o y.o y.o(.text+0x0): In function `__i686.get_pc_thunk.bx': : multiple definition of `__i686.get_pc_thunk.bx' x.o(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0): first defined here make: *** [foo.o] Error 1
A patch is posted at http://sources.redhat.com/ml/binutils/2004-05/msg00297.html
*** Bug 246 has been marked as a duplicate of this bug. ***
Fixed by http://sources.redhat.com/ml/binutils/2004-07/msg00323.html
Created attachment 1426 [details] corrected testcase Original testcase had an extra '.' in the comdat group name