musl/ldso
Rich Felker d16d7b1099 early stage ldso: remove symbolic references via error handling function
while the error handling function should not be reached in stage 2
(assuming ldso itself was linked correctly), this was not statically
determinate from the compiler's perspective, and in theory a compiler
performing LTO could lift the TLS references (errno and other things)
out of the printf-family functions called in a stage where TLS is not
yet initialized.

instead, perform the call via a static-storage, internal-linkage
function pointer which will be set to a no-op function until the stage
where the real error handling function should be reachable.

inspired by commit 63c67053a3.
2022-07-19 19:00:53 -04:00
..
dlstart.c define and use internal macros for hidden visibility, weak refs 2018-09-05 14:05:14 -04:00
dynlink.c early stage ldso: remove symbolic references via error handling function 2022-07-19 19:00:53 -04:00