I am trying to add a new OS target to gcc 4.7.1. In particular I am focused on the powerpc64 architecture. I've modified the gcc 4.7.1 source to add my target. I've managed to build a cross compiler for my target but I had a problem: sample code test.c: void foo() {} output of gcc test.c -S: .file "test.c" .section ".text" .align 2 .globl foo .section ".opd","aw" .align 3 foo: .quad foo,.TOC.@tocbase,0 .previous .size foo,24 .type .foo,@function .globl .foo foo: stdu 1,-32(1) std 31,24(1) mr 31,1 addi 11,31,32 ld 31,-8(11) mr 1,11 blr .size foo, .-foo .ident "GCC: (GNU) 4.7.1" GCC introduces the same symbol twice which fails to assemble. I would expect the second "foo" symbol (and corresponding references) to just be a local symbol like ".L.foo". What do I need to change to see the correct behavior? Thanks --- Dan Schatzberg