This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[hurd,commited] hurd: Fix accessing errno from rtld
- From: Samuel Thibault <samuel dot thibault at ens-lyon dot org>
- To: libc-alpha at sourceware dot org
- Cc: Samuel Thibault <samuel dot thibault at ens-lyon dot org>
- Date: Sun, 25 Mar 2018 00:50:26 +0100
- Subject: [hurd,commited] hurd: Fix accessing errno from rtld
Letting rtld access errno through TLS can not work at early stages since
TLS will not be initialized yet. When a private errno is not possible,
we thus have no other way than going through __errno_location.
* include/errno.h [IS_IN(rtld) && !RTLD_PRIVATE_ERRNO]: Do not use the
TLS declaration of errno.
---
ChangeLog | 5 +++++
include/errno.h | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 94175ab4b9..1b7ddba10c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/errno.h [IS_IN(rtld) && !RTLD_PRIVATE_ERRNO]: Do not use the
+ TLS declaration of errno.
+
2018-03-24 H.J. Lu <hongjiu.lu@intel.com>
[BZ #22998]
diff --git a/include/errno.h b/include/errno.h
index 3c3d2288c8..457114b27a 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
+# elif IS_IN_LIB && !IS_IN (rtld)
# include <tls.h>
--
2.16.2