bug-binutils
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]