http://sourceware.org/bugzilla/show_bug.cgi?id=15041

             Bug #: 15041
           Summary: ld -r bugs for pe format (mingw)
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: unassig...@sourceware.org
        ReportedBy: martin.koeg...@chello.at
    Classification: Unclassified


Sample code t.cxx:
-------------
class __declspec(dllexport) test
{
  int x;
  static int y;
  void a() { x = y + 2; }
};
-------------
x86_64-w64-mingw32-gcc -c -o t.o t.cxx
x86_64-w64-mingw32-ld -r -o t1.o t.o t.o
x86_64-w64-mingw32-ld -r -o t2.o t1.o t.o

yields to the warnings:
x86_64-w64-mingw32-ld: t1.o: warning: COMDAT symbol '.pdata$_ZN4test1aEv' does
not match section name '.pdata'
x86_64-w64-mingw32-ld: t1.o: warning: COMDAT symbol '.xdata$_ZN4test1aEv' does
not match section name '.xdata'

It is caused by the fact, that the PE linker scripts of all recent binutils add
the .pdata/.xdata with (.pdata*) / (.xdata*). This way, the sections get merged
into the .pdata/.xdata section, which breaks the link once behaviour. Changing
the linker script to only use (.pdata) / (.xdata) fixes the problem.

Similar problems can occur for other sections (eg. g++ is called with -g).

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to