summary refs log tree commit diff
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
parent330fad29701ee2ae7b9f794f628a113b6f73d698 (diff)
downloadglibc-cc590e1d4e84f931a954a06a5f743d8f61090713.tar.gz
glibc-cc590e1d4e84f931a954a06a5f743d8f61090713.tar.xz
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.
-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