Using
>GNU assembler (GNU Binutils) 2.19
>Copyright 2007 Free Software Foundation, Inc.
>This program is free software; you may redistribute it under the terms of
>the GNU General Public License version 3 or later.
>This program has absolutely no warranty.
>This assembler was configured for a target of `mingw32'.
and corresponding GNU ld I get the following output running gcc 4.3 rev 142914:
>W:/WINDOWS/TMP/cc1R156y.o:main.c:(.text+0x17): undefined reference to 
>`function'
>collect2: ld returned 1 exit status
when compiling the following to files:
================== main.c =================
extern void function();

int main()
{
    function();
        return 0;
}
================== weak.c =================
#include <stdio.h>

void __attribute__((weak)) function()
{
    printf("Hello from the weak function\n");
}

======== Asm code of weak.c after being processed by gcc ========
        .file   "weak.c"
        .section .rdata,"dr"
LC0:
        .ascii "Hello from the weak function\0"
        .text
        .weak   _function
        .def    _function;      .scl    2;      .type   32;     .endef
_function:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        movl    $LC0, (%esp)
        call    _puts
        leave
        ret
        .def    _puts;  .scl    2;      .type   32;     .endef
===================================================
This means as far as I can tell that either ld does not find the weak symbol or
that as does not correctly save the weak symbol in the PE File.

-- 
           Summary: Weak symbols not working on mingw32
           Product: binutils
           Version: 2.19
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: tcl_de at gmx dot net
                CC: bug-binutils at gnu dot org


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

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

Reply via email to