aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2024-09-06 14:07:00 +0200
committerFlorian Weimer <fweimer@redhat.com>2024-09-06 14:07:00 +0200
commit7d6e30b4b4e83429cc77222d4fe4d5e8843d8e2b (patch)
tree9c9c8983e8b6da3e633dca2c5e596eb53def0d17
parent6efd6cd46bf2257e674be4933a034542d80944eb (diff)
downloadglibc-7d6e30b4b4e83429cc77222d4fe4d5e8843d8e2b.zip
glibc-7d6e30b4b4e83429cc77222d4fe4d5e8843d8e2b.tar.gz
glibc-7d6e30b4b4e83429cc77222d4fe4d5e8843d8e2b.tar.bz2
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>
-rw-r--r--include/errno.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/errno.h b/include/errno.h
index c361a78..f0ccaa7 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -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)