mirror of git://git.musl-libc.org/musl
9c78557af0
the file-level crt_arch.h asm fragments generally make direct (non-PLT) calls from _start to _start_c, which is only valid when there is a local, non-interposable definition for _start_c. generally, the linker is expected to know that local definitions in a main executable (as opposed to shared library) output are non-interposable, making this work, but historically there have been linker bugs in this area, and microblaze is reportedly still broken, flagging the relocation for the call as a textrel. the equivalent _dlstart_c, called from the same crt_arch.h asm fragments, has always used hidden visibility without problem, and semantically it should be hidden, so make it hidden. this ensures the direct call is always valid regardless of whether the linker properly special-cases main executable output. |
||
---|---|---|
.. | ||
aarch64 | ||
arm | ||
i386 | ||
microblaze | ||
mips | ||
mips64 | ||
mipsn32 | ||
or1k | ||
powerpc | ||
powerpc64 | ||
s390x | ||
sh | ||
x32 | ||
x86_64 | ||
Scrt1.c | ||
crt1.c | ||
crti.c | ||
crtn.c | ||
rcrt1.c |