This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]