https://sourceware.org/bugzilla/show_bug.cgi?id=29376
Bug ID: 29376
Summary: multiple definition of weak symbols on MinGW toolchain
Product: binutils
Version: 2.37
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: bmeng.cn at gmail dot com
Target Milestone: ---
Created attachment 14216
--> https://sourceware.org/bugzilla/attachment.cgi?id=14216&action=edit
a simplified case to show the linker problem of handling weak symbols for
Windows
Please use the attached test case to reproduce.
Using MinGW toolchain the test case fails to build:
$ CC=x86_64-w64-mingw32-gcc make
x86_64-w64-mingw32-gcc -c -o a.o a.c
x86_64-w64-mingw32-gcc -c -o b.o b.c
x86_64-w64-mingw32-gcc main.c a.o b.o -o main
/usr/lib/gcc/x86_64-w64-mingw32/11.2.1/../../../../x86_64-w64-mingw32/bin/ld:
b.o:b.c:(.bss+0x0): multiple definition of `.weak.weak.'; a.o:a.c:(.bss+0x0):
first defined here
collect2: error: ld returned 1 exit status
make: *** [<builtin>: main] Error 1
The native Linux GCC toolchain builds successfully:
$ CC=gcc make
gcc -c -o a.o a.c
gcc -c -o b.o b.c
gcc main.c a.o b.o -o main
--
You are receiving this mail because:
You are on the CC list for the bug.