stdlib: Do not use GLIBC_PRIVATE ABI for errno in libc_nonshared.a

Using TLS directly introduces a GLIBC_PRIVATE ABI dependency
into libc_nonshared.a, and thus indirectly into applications.
Adding the !defined LIBC_NONSHARED condition deactivates direct
TLS access, and libc_nonshared.a code switches to using
__errno_location, like application code.

Currently, this has no effect because there is no code in
libc_nonshared.a that accesses errno.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Florian Weimer 2024-09-06 14:07:00 +02:00
parent 6efd6cd46b
commit 7d6e30b4b4

View File

@ -20,7 +20,7 @@
# define errno rtld_errno
extern int rtld_errno attribute_hidden;
# elif IS_IN_LIB && !IS_IN (rtld)
# elif IS_IN_LIB && !IS_IN (rtld) && !defined LIBC_NONSHARED
# undef errno
# if IS_IN (libc)