[hurd,commited] hurd: Fix accessing errno from rtld

Message ID 20180324235026.25560-1-samuel.thibault@ens-lyon.org
State New
Headers show
Series
  • [hurd,commited] hurd: Fix accessing errno from rtld
Related show

Commit Message

Samuel Thibault March 24, 2018, 11:50 p.m.
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(-)

Patch

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>