aboutsummaryrefslogtreecommitdiff
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 3846f74..53172fc 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 bd23eb7..9ff30a1 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 297a01b..e23f56a 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 f4a56a5..95df133 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 9bd4e5c..763a887 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. */