I ran across this situation due some .comm symbols being generated by gcc. I don't think it's a gcc problem per se, unless symbols are not allowed to begin with a "."
The new underscoring behavior for 64 bit mingw 32 targets can break the linker's expectation for the syntax of the -aligncomm .drectve section. With the new underscoring behavior, gcc generated a symbol that looked like this in the assembly: .comm .gomp_critical_user_critical_foox, 8, 3 Gas translated that into: .drectve -aligncomm:.gomp_critical_user_critical_foox,3 Which generated a linker error: /opt/devtools/x86_64-pc-linux/x86_64-w64-mingw32/bin/ld: <unknown-file>:0: syntax error Warning: .drectve `-aligncomm:.gomp_critical_user_critical_foox,3' unrecognized The 32 bit side worked because gcc generated the symbol with a leading underscore. This is easy to replicate by: echo ".comm .foo 8, 3" | x86_64-w64-mingw32-as - -o test.o && x86_64-w64-mingw32-ld -dll test.o -o test.dll -- Summary: New underscoring behavior can break -aligncomm directve Product: binutils Version: 2.21 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassigned at sources dot redhat dot com ReportedBy: dougsemler at gmail dot com CC: bug-binutils at gnu dot org,ktietz at onevision dot com GCC target triplet: x86_64-*-mingw32 http://sourceware.org/bugzilla/show_bug.cgi?id=11612 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils