aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-25 00:48:01 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-25 00:48:01 +0100
commitfa97d2ab5b19de0ca3cd02471d0bbf4f09b5032d (patch)
tree07b74b0acfbde5037724e5b79850a0821bf3c30a
parentb8114edd3c9e789c36789f4ce5ca6deb41ea0a14 (diff)
downloadtermbaud-fa97d2ab5b19de0ca3cd02471d0bbf4f09b5032d.tar.gz
termbaud-fa97d2ab5b19de0ca3cd02471d0bbf4f09b5032d.tar.xz
termbaud-fa97d2ab5b19de0ca3cd02471d0bbf4f09b5032d.zip
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.
-rw-r--r--ChangeLog5
-rw-r--r--include/errno.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 94175ab4b9c..1b7ddba10c7 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 3c3d2288c8b..457114b27a7 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>