musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015年06月20日 03:01:07 +0000
committerRich Felker <dalias@aerifal.cx>2015年06月20日 03:01:07 +0000
commit55d061f031085f24d138664c897791aebe9a2fab (patch)
treeeb829b6ab8dd3243e2d41a9831773b103c5746a3 /src
parentce3688eca920aa77549323f84e21f33522397115 (diff)
downloadmusl-55d061f031085f24d138664c897791aebe9a2fab.tar.gz
provide __stack_chk_fail_local in libc.a
this symbol is needed only on archs where the PLT call ABI is klunky, and only for position-independent code compiled with stack protector. thus references usually only appear in shared libraries or PIE executables, but they can also appear when linking statically if some of the object files being linked were built as PIC/PIE. normally libssp_nonshared.a from the compiler toolchain should provide __stack_chk_fail_local, but reportedly it appears prior to -lc in the link order, thus failing to satisfy references from libc itself (which arise only if libc.a was built as PIC/PIE with stack protector enabled).
Diffstat (limited to 'src')
-rw-r--r--src/env/__stack_chk_fail.c 4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/env/__stack_chk_fail.c b/src/env/__stack_chk_fail.c
index 47784c62..be0c184a 100644
--- a/src/env/__stack_chk_fail.c
+++ b/src/env/__stack_chk_fail.c
@@ -25,4 +25,8 @@ void __stack_chk_fail_local(void)
a_crash();
}
+#else
+
+weak_alias(__stack_chk_fail, __stack_chk_fail_local);
+
#endif
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月23日 14:45:41 +0000

AltStyle によって変換されたページ (->オリジナル) /