about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--inet/herrno.c7
-rw-r--r--linuxthreads/ChangeLog9
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S2
-rw-r--r--resolv/res_libc.c7
5 files changed, 27 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 3846f7440e..53172fc1cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,14 @@
+2003-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	* resolv/res_libc.c (_res): Ensure _res is not common symbol,
+	so that it can have aliases.
+	* inet/herrno.c (h_errno): Put it into .bss not .data section.
+
 2003-02-07  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/dl-runtime.c (fixup): Correct typo in version index computation.
 	(profile_fixup): Likewise.
+	Patch by Lance Larsh <Lance.Larsh@oracle.com>.
 
 2002-11-24  Robert Love  <rml@tech9.net>
 
diff --git a/inet/herrno.c b/inet/herrno.c
index bd23eb7a8e..9ff30a191b 100644
--- a/inet/herrno.c
+++ b/inet/herrno.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,97,98,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996,97,98,2002,2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,7 +31,10 @@ extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno")))
   attribute_hidden;
 # define h_errno __libc_h_errno
 #else
-int h_errno = 0;
+/* This differs from plain `int h_errno;' in that it doesn't create
+   a common definition, but a plain symbol that resides in .bss,
+   which can have an alias.  */
+int h_errno __attribute__((section (".bss")));
 weak_alias (h_errno, _h_errno)
 
 /* We declare these with compat_symbol so that they are not
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 297a01bb17..e23f56abe2 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,9 @@
+2003-02-07  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/vfork.S: Make sure
+	__ASSUME_VFORK_SYSCALL is not defined if the kernel headers have
+	no __NR_vfork definition.
+
 2003-02-07  Jakub Jelinek  <jakub@redhat.com>
 
 	* tst-popen2.c: New test.
@@ -7,7 +13,8 @@
 	* sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
 	* sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
 	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
+	Likewise.
 	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
 	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
 	* sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
index f4a56a54bf..95df1330dd 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
@@ -86,6 +86,8 @@ ENTRY (__vfork)
 	jae	SYSCALL_ERROR_LABEL
 .Lpseudo_end:
 	ret
+#elif !defined __NR_vfork
+# error "__NR_vfork not available and __ASSUME_VFORK_SYSCALL defined"
 #endif
 PSEUDO_END (__vfork)
 libc_hidden_def (__vfork)
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index 9bd4e5c747..763a88725a 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -77,8 +77,11 @@ extern __thread struct __res_state __libc_res __attribute__ ((alias ("_res")))
   attribute_hidden;
 # define _res __libc_res
 #else
-/* The resolver state for use by single-threaded programs.  */
-struct __res_state _res;
+/* The resolver state for use by single-threaded programs.
+   This differs from plain `struct __res_state _res;' in that it doesn't
+   create a common definition, but a plain symbol that resides in .bss,
+   which can have an alias.  */
+struct __res_state _res __attribute__((section (".bss")));
 
 /* We declare this with compat_symbol so that it's not
    visible at link time.  Programs must use the accessor functions.  */