[Bug ld/23078] Weak alias to a weak symbol is not resolved correctly.
https://sourceware.org/bugzilla/show_bug.cgi?id=23078 --- Comment #2 from Vadzim Dambrouski --- Hello Nick, Thank you for suggestion, I've tried weakref, and does help with the case I have posted above, but it still doesn't do exactly what I need. Here is updated code: // main.c --- void _start() {} void DEFAULT_HANDLER() { *((int*)0x10) = 5; } void BUS_FAULT() { *((int*)0x10) = 7; } // foo.c __attribute__((weak)) void DEFAULT_HANDLER() { *((int*)0x10) = 1; } static __attribute__((weakref ("DEFAULT_HANDLER"))) void HARD_FAULT(); static __attribute__((weakref ("DEFAULT_HANDLER"))) void BUS_FAULT(); void (*VECTORS[])() = { HARD_FAULT, BUS_FAULT, }; // -- In this new example I have created a strong symbols for both default handler and for one of specific handlers. I expect that VECTORS table would contain pointers to functions 5 and 7, but in practice it contains pointers to 5 and 5. This is not what I need, unfortunately. Regards, Vadzim -- 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
[Bug ld/23078] New: Weak alias to a weak symbol is not resolved correctly.
https://sourceware.org/bugzilla/show_bug.cgi?id=23078 Bug ID: 23078 Summary: Weak alias to a weak symbol is not resolved correctly. Product: binutils Version: 2.29 Status: UNCONFIRMED Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: pftbest at gmail dot com Target Milestone: --- Created attachment 10957 --> https://sourceware.org/bugzilla/attachment.cgi?id=10957=edit Archive with code to reproduce this issue. Example code // main.c --- void _start() {} void DEFAULT_HANDLER() { *((int*)0x10) = 5; } // foo.c __attribute__((weak)) void DEFAULT_HANDLER() { *((int*)0x10) = 1; } __attribute__((weak, alias("DEFAULT_HANDLER"))) void HARD_FAULT(); __attribute__((weak, alias("DEFAULT_HANDLER"))) void BUS_FAULT(); void (*VECTORS[])() = { HARD_FAULT, BUS_FAULT, }; // compile with --- gcc -Os -o main.o -c main.c gcc -Os -o foo.o -c foo.c ld main.o foo.o objdump -d -j .text -j .data a.out > dump.txt // VECTORS array points to a weak function instead of a strong function defined in main.c -- 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