aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-09-29 21:41:17 +0000
committerRoland McGrath <roland@gnu.org>2002-09-29 21:41:17 +0000
commitcc590e1d4e84f931a954a06a5f743d8f61090713 (patch)
treef4db9fd3bc07c4e1346f3d488d2e62b192356baa /sysdeps/unix/sysv
parent330fad29701ee2ae7b9f794f628a113b6f73d698 (diff)
downloadglibc-cc590e1d4e84f931a954a06a5f743d8f61090713.tar
glibc-cc590e1d4e84f931a954a06a5f743d8f61090713.tar.gz
glibc-cc590e1d4e84f931a954a06a5f743d8f61090713.tar.bz2
glibc-cc590e1d4e84f931a954a06a5f743d8f61090713.zip
2002-09-29 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysdep.S [USE_TLS && HAVE___THREAD]: Define errno in .tbss. * sysdeps/unix/x86_64/sysdep.S [USE_TLS && HAVE___THREAD]: Use TLS access for setting errno.
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S12
1 files changed, 11 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index b8eccc8b9f..00086ca1e4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -17,6 +17,7 @@
02111-1307 USA. */
#include <sysdep.h>
+#include <tls.h>
/* The Linux version is in fact x86-64/ELF and the start.? file for this
system (sysdeps/x86_64/elf/start.S) is also used by The Hurd. This file
@@ -24,13 +25,22 @@
define it somewhere else.
...and this place is here. */
+#if USE_TLS && HAVE___THREAD
+ .section .tbss
+#else
.bss
+#endif
.globl errno
.type errno,@object
.size errno,4
+ .globl _errno
+ .type _errno,@object
+ .size _errno,4
+ .align 4
errno:
+_errno:
.space 4
-weak_alias (errno, _errno)
+
/* The following code is only used in the shared library when we
compile the reentrant version. Otherwise each system call defines