[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/11612] New: New underscoring behavior can break -aligncomm direc
From: |
dougsemler at gmail dot com |
Subject: |
[Bug ld/11612] New: New underscoring behavior can break -aligncomm directve |
Date: |
19 May 2010 17:58:29 -0000 |
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 ld/11612] New: New underscoring behavior can break -aligncomm directve,
dougsemler at gmail dot com <=