Don't initialize the static TLS area in single-threaded builds

This commit is contained in:
Jens Goldberg 2023-01-04 20:37:59 +01:00 committed by Andrew Kelley
parent ed23615638
commit b89158d6fd

View file

@ -437,6 +437,7 @@ fn posixCallMainAndExit() callconv(.C) noreturn {
std.os.linux.pie.relocate(phdrs);
}
if (!builtin.single_threaded) {
// ARMv6 targets (and earlier) have no support for TLS in hardware.
// FIXME: Elide the check for targets >= ARMv7 when the target feature API
// becomes less verbose (and more usable).
@ -451,6 +452,7 @@ fn posixCallMainAndExit() callconv(.C) noreturn {
// Initialize the TLS area.
std.os.linux.tls.initStaticTLS(phdrs);
}
// The way Linux executables represent stack size is via the PT_GNU_STACK
// program header. However the kernel does not recognize it; it always gives 8 MiB.