Call of weakly referenced functions
Sebastian Huber
sebastian.huber@embedded-brains.de
Wed Jul 17 19:41:00 GMT 2013
More information about the Binutils mailing list
Wed Jul 17 19:41:00 GMT 2013
- Previous message (by thread): MIPS local symbol GOT reservation w/o a reference relocation
- Next message (by thread): Call of weakly referenced functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
I have a question regarding the call of weakly referenced functions. On
ARM for example we have this:
extern void weak(void);
__attribute__((weak)) extern void weak(void);
void _start(void)
{
weak();
}
GCC output:
.global _start
.type _start, %function
_start:
@ Function supports interworking.
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
bl weak
ldmfd sp!, {r3, lr}
bx lr
.size _start, .-_start
.weak weak
Linker output:
00008444 <_start>:
8444: e92d4008 push {r3, lr}
8448: e1a00000 nop ; (mov r0, r0)
844c: e8bd4008 pop {r3, lr}
8450: e12fff1e bx lr
So this looks really nice. Does this work on all ELF targets supported
by the GNU linker?
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
- Previous message (by thread): MIPS local symbol GOT reservation w/o a reference relocation
- Next message (by thread): Call of weakly referenced functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list