GCC uses local label names .L1, .L2, etc. on this platform. However these same assembly labels are used for functions named "L1" or "L2". wolfgang@gorecki wolfgang $ cat L.c int L2(int x) { if(x > 5) return -42; else return 42; } wolfgang@gorecki wolfgang $ gcc -c L.c /tmp/ccL2lhwX.s: Assembler messages: /tmp/ccL2lhwX.s:26: Error: symbol `.L2' is already defined Observed on gentoo powerpc64; also observed on a gcc-3.4.2 cross-compiling from powerpc-apple- darwin to powerpc64-unknown-linux.
Confirmed.
This has been fixed on mainline. Note that you need a recent (2004-09) binutils with support for new dot-symbol conventions when you configure and build GCC. I can make a patch available for 3.4.3 if there's sufficient interest.
(In reply to comment #2) > This has been fixed on mainline. Note that you need a recent (2004-09) > binutils > with support for new dot-symbol conventions when you configure and build GCC. > > I can make a patch available for 3.4.3 if there's sufficient interest. > Hi Alan, Are you still willing to make the patch for 3.4.x? -- Gaby
won't fix for 3.4.6