about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog29
-rw-r--r--Makerules4
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure109
-rw-r--r--configure.in14
-rw-r--r--conform/data/unistd.h-data1
-rw-r--r--crypt/Makefile4
-rw-r--r--debug/Makefile10
-rw-r--r--dlfcn/Makefile5
-rw-r--r--hesiod/Makefile5
-rw-r--r--iconvdata/extra-module.mk2
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/Makefile3
-rw-r--r--linuxthreads_db/ChangeLog4
-rw-r--r--linuxthreads_db/Makefile5
-rw-r--r--locale/Makefile3
-rw-r--r--login/Makefile4
-rw-r--r--math/Makefile2
-rw-r--r--nis/Makefile5
-rw-r--r--nss/Makefile3
-rw-r--r--posix/unistd.h7
-rw-r--r--resolv/Makefile8
-rw-r--r--rt/Makefile5
23 files changed, 163 insertions, 74 deletions
diff --git a/ChangeLog b/ChangeLog
index 04b9340950..5ccc19d550 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,34 @@
+2001-03-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makerules (build-shlib): Remove unnecessary slashes introduced in
+	last change.
+
+	* configure.in: Test for -Bgroup option of linker.
+	* config.make.in: Define have-Bgroup.
+
+	* conform/data/unistd.h-data: Require gethostname.
+	* posix/unistd.h: Make gethostname prototype available for
+	__USE_XOPEN2K.
+
+	* crypt/Makefile: When generating DSO link with libc_nonshared.a.
+	* debug/Makefile: Likewise.
+	* dlfcn/Makefile: Likewise.
+	* hesiod/Makefile: Likewise.
+	* iconvdata/extra-module.mk: Likewise.
+	* locale/Makefile: Likewise.
+	* login/Makefile: Likewise.
+	* math/Makefile: Likewise.
+	* nis/Makefile: Likewise.
+	* nss/Makefile: Likewise.
+	* resolv/Makefile: Likewise.
+	* rt/Makefile: Likewise.
+
 2001-03-17  Ulrich Drepper  <drepper@redhat.com>
 
 	* inet/Makefile (tests): Remove left-over comment.
 
-	* posix/unistd.h: Change type of second parameter back to size_t
-	as per upcoming XPG6.
+	* posix/unistd.h (gethostname): Change type of second parameter
+	back to size_t as per upcoming XPG6.
 	* sysdeps/unix/sysv/aix/gethostname.c: Change type of second
 	parameter back to size_t as per upcoming XPG6.
 	* sysdeps/unix/sysv/sysv4/gethostname.c: Likewise.
diff --git a/Makerules b/Makerules
index 78089e6b4a..218cde1a2f 100644
--- a/Makerules
+++ b/Makerules
@@ -427,14 +427,14 @@ ifeq (yes,$(elf))
 # not for shared objects
 define build-shlib
 $(build-shlib-helper) \
-	  -o $@.new $(csu-objpfx)/abi-note.o -Wl,--verbose \
+	  -o $@.new $(csu-objpfx)abi-note.o -Wl,--verbose \
 	  $(LDLIBS-$(@F:lib%.so=%).so) 2>&1 | \
 	  sed -e '/^=========/,/^=========/!d;/^=========/d' \
 	      -e 's/^.*\.hash[ 	]*:.*$$/  .note.ABI-tag : { *(.note.ABI-tag) } &/' \
 	  > $@.lds; \
 	  rm -f $@.new; \
 	  $(build-shlib-helper) -o $@ -T $@.lds \
-	  -Wl,--whole-archive $(csu-objpfx)/abi-note.o \
+	  -Wl,--whole-archive $(csu-objpfx)abi-note.o \
 	  $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
 	  $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so); \
 	  rm -f $@.lds
diff --git a/config.make.in b/config.make.in
index e0fa613293..900efb525e 100644
--- a/config.make.in
+++ b/config.make.in
@@ -41,6 +41,7 @@ have-z-nodelete = @libc_cv_z_nodelete@
 have-z-nodlopen = @libc_cv_z_nodlopen@
 have-z-initfirst = @libc_cv_z_initfirst@
 have-initfini = @libc_cv_have_initfini@
+have-Bgroup = @libc_cv_Bgroup@
 need-nopic-initfini = @nopic_initfini@
 with-cvs = @with_cvs@
 old-glibc-headers = @old_glibc_headers@
diff --git a/configure b/configure
index 20a218debd..92d1b050c0 100755
--- a/configure
+++ b/configure
@@ -2795,16 +2795,36 @@ fi
 
 echo "$ac_t""$libc_cv_z_initfirst" 1>&6
   
+
+  echo $ac_n "checking for -Bgroup option""... $ac_c" 1>&6
+echo "configure:2801: checking for -Bgroup option" >&5
+if eval "test \"`echo '$''{'libc_cv_Bgroup'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+  if { ac_try='${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&5'; { (eval echo configure:2808: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+  then
+    libc_cv_Bgroup=yes
+  else
+    libc_cv_Bgroup=no
+  fi
+  rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_Bgroup" 1>&6
+  
 fi
 
 if test $elf != yes; then
   echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
-echo "configure:2803: checking for .init and .fini sections" >&5
+echo "configure:2823: checking for .init and .fini sections" >&5
 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2808 "configure"
+#line 2828 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2813,7 +2833,7 @@ asm (".section .init");
 				    asm ("${libc_cv_dot_text}");
 ; return 0; }
 EOF
-if { (eval echo configure:2817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_have_initfini=yes
 else
@@ -2836,7 +2856,7 @@ fi
 
 if test $elf = yes -a $gnu_ld = yes; then
   echo $ac_n "checking whether cc puts quotes around section names""... $ac_c" 1>&6
-echo "configure:2840: checking whether cc puts quotes around section names" >&5
+echo "configure:2860: checking whether cc puts quotes around section names" >&5
 if eval "test \"`echo '$''{'libc_cv_have_section_quotes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2873,19 +2893,19 @@ if test $elf = yes; then
 else
   if test $ac_cv_prog_cc_works = yes; then
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:2877: checking for _ prefix on C symbol names" >&5
+echo "configure:2897: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2882 "configure"
+#line 2902 "configure"
 #include "confdefs.h"
 asm ("_glibc_foobar:");
 int main() {
 glibc_foobar ();
 ; return 0; }
 EOF
-if { (eval echo configure:2889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   libc_cv_asm_underscores=yes
 else
@@ -2900,17 +2920,17 @@ fi
 echo "$ac_t""$libc_cv_asm_underscores" 1>&6
   else
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:2904: checking for _ prefix on C symbol names" >&5
+echo "configure:2924: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2909 "configure"
+#line 2929 "configure"
 #include "confdefs.h"
 void underscore_test(void) {
 return; }
 EOF
-if { (eval echo configure:2914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   if grep _underscore_test conftest* >/dev/null; then
     rm -f conftest*
     libc_cv_asm_underscores=yes
@@ -2942,7 +2962,7 @@ if test $elf = yes; then
 fi
 
 echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
-echo "configure:2946: checking for assembler .weak directive" >&5
+echo "configure:2966: checking for assembler .weak directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2965,7 +2985,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
 
 if test $libc_cv_asm_weak_directive = no; then
   echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
-echo "configure:2969: checking for assembler .weakext directive" >&5
+echo "configure:2989: checking for assembler .weakext directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3005,14 +3025,14 @@ fi
 case "${host_cpu}-${host_os}" in
   hppa*linux*)
   echo $ac_n "checking for assembler line separator""... $ac_c" 1>&6
-echo "configure:3009: checking for assembler line separator" >&5
+echo "configure:3029: checking for assembler line separator" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_line_sep'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     cat > conftest.s <<EOF
  nop ; is_old_puffin
 EOF
-  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_asm_line_sep='!'
   else
     if test -z "$enable_hacker_mode"; then
@@ -3034,7 +3054,7 @@ EOF
 esac
 
 echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
-echo "configure:3038: checking for ld --no-whole-archive" >&5
+echo "configure:3058: checking for ld --no-whole-archive" >&5
 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3045,7 +3065,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
 			    -nostdlib -nostartfiles -Wl,--no-whole-archive
-			    -o conftest conftest.c 1>&5'; { (eval echo configure:3049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:3069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_ld_no_whole_archive=yes
 else
   libc_cv_ld_no_whole_archive=no
@@ -3059,7 +3079,7 @@ if test $libc_cv_ld_no_whole_archive = yes; then
 fi
 
 echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6
-echo "configure:3063: checking for gcc -fexceptions" >&5
+echo "configure:3083: checking for gcc -fexceptions" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3070,7 +3090,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
 			    -nostdlib -nostartfiles -fexceptions
-			    -o conftest conftest.c 1>&5'; { (eval echo configure:3074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:3094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_exceptions=yes
 else
   libc_cv_gcc_exceptions=no
@@ -3085,14 +3105,14 @@ fi
 
 if test "$base_machine" = alpha ; then
 echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
-echo "configure:3089: checking for function ..ng prefix" >&5
+echo "configure:3109: checking for function ..ng prefix" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<\EOF
 foo () { }
 EOF
-if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3096: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3116: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
 then
   libc_cv_gcc_alpha_ng_prefix=yes
 else
@@ -3119,19 +3139,19 @@ if test "$host_cpu" = powerpc ; then
 # Check for a bug present in at least versions 2.8.x of GCC
 # and versions 1.0.x of EGCS.
 echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
-echo "configure:3123: checking whether clobbering cr0 causes problems" >&5
+echo "configure:3143: checking whether clobbering cr0 causes problems" >&5
 if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3128 "configure"
+#line 3148 "configure"
 #include "confdefs.h"
 int tester(int x) { asm ("" : : : "cc"); return x & 123; }
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_c_asmcr0_bug='no'
 else
@@ -3153,12 +3173,12 @@ fi
 fi
 
 echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
-echo "configure:3157: checking for DWARF2 unwind info support" >&5
+echo "configure:3177: checking for DWARF2 unwind info support" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3162 "configure"
+#line 3182 "configure"
 static char __EH_FRAME_BEGIN__;
 _start ()
 {
@@ -3185,7 +3205,7 @@ __bzero () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
 			    -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_dwarf2_unwind_info=static
 else
   libc_cv_gcc_dwarf2_unwind_info=no
@@ -3193,7 +3213,7 @@ fi
 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
   if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
 			      -nostdlib -nostartfiles
-			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_gcc_dwarf2_unwind_info=yes
   else
     libc_cv_gcc_dwarf2_unwind_info=no
@@ -3223,12 +3243,12 @@ EOF
 esac
 
 echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6
-echo "configure:3227: checking for __builtin_expect" >&5
+echo "configure:3247: checking for __builtin_expect" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3232 "configure"
+#line 3252 "configure"
 int foo (int a)
 {
   a = __builtin_expect (a, 10);
@@ -3236,7 +3256,7 @@ int foo (int a)
 }
 EOF
 if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3260: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_builtin_expect=yes
 else
   libc_cv_gcc_builtin_expect=no
@@ -3253,12 +3273,12 @@ EOF
 fi
 
 echo $ac_n "checking for local label subtraction""... $ac_c" 1>&6
-echo "configure:3257: checking for local label subtraction" >&5
+echo "configure:3277: checking for local label subtraction" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_subtract_local_labels'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3262 "configure"
+#line 3282 "configure"
 int foo (int a)
 {
   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
@@ -3271,7 +3291,7 @@ int foo (int a)
 }
 EOF
 if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_subtract_local_labels=yes
 else
   libc_cv_gcc_subtract_local_labels=no
@@ -3288,7 +3308,7 @@ EOF
 fi
 
 echo $ac_n "checking for libgd""... $ac_c" 1>&6
-echo "configure:3292: checking for libgd" >&5
+echo "configure:3312: checking for libgd" >&5
 if test "$with_gd" != "no"; then
   old_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $libgd_include"
@@ -3297,14 +3317,14 @@ if test "$with_gd" != "no"; then
   old_LIBS="$LIBS"
   LIBS="$LIBS -lgd -lpng -lz -lm"
   cat > conftest.$ac_ext <<EOF
-#line 3301 "configure"
+#line 3321 "configure"
 #include "confdefs.h"
 #include <gd.h>
 int main() {
 gdImagePng (0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:3308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBGD=yes
 else
@@ -3324,7 +3344,7 @@ echo "$ac_t""$LIBGD" 1>&6
 
 
 echo $ac_n "checking size of long double""... $ac_c" 1>&6
-echo "configure:3328: checking size of long double" >&5
+echo "configure:3348: checking size of long double" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3332,7 +3352,7 @@ else
   ac_cv_sizeof_long_double=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 3336 "configure"
+#line 3356 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3343,7 +3363,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_double=`cat conftestval`
 else
@@ -3411,7 +3431,7 @@ if test "$uname" = "sysdeps/generic"; then
   fi
 
   echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:3415: checking OS release for uname" >&5
+echo "configure:3435: checking OS release for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3433,7 +3453,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
   uname_release="$libc_cv_uname_release"
 
   echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
-echo "configure:3437: checking OS version for uname" >&5
+echo "configure:3457: checking OS version for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3455,7 +3475,7 @@ else
 fi
 
 echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:3459: checking stdio selection" >&5
+echo "configure:3479: checking stdio selection" >&5
 
 case $stdio in
 libio) cat >> confdefs.h <<\EOF
@@ -3469,7 +3489,7 @@ echo "$ac_t""$stdio" 1>&6
 # Test for old glibc 2.0.x headers so that they can be removed properly
 # Search only in includedir.
 echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6
-echo "configure:3473: checking for old glibc 2.0.x headers" >&5
+echo "configure:3493: checking for old glibc 2.0.x headers" >&5
 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
 then
   old_glibc_headers=yes
@@ -3524,7 +3544,7 @@ if test $shared = default; then
 fi
 
 echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
-echo "configure:3528: checking whether -fPIC is default" >&5
+echo "configure:3548: checking whether -fPIC is default" >&5
 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3751,6 +3771,7 @@ s%@libc_cv_asm_protected_directive@%$libc_cv_asm_protected_directive%g
 s%@libc_cv_z_nodelete@%$libc_cv_z_nodelete%g
 s%@libc_cv_z_nodlopen@%$libc_cv_z_nodlopen%g
 s%@libc_cv_z_initfirst@%$libc_cv_z_initfirst%g
+s%@libc_cv_Bgroup@%$libc_cv_Bgroup%g
 s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g
 s%@no_whole_archive@%$no_whole_archive%g
 s%@exceptions@%$exceptions%g
diff --git a/configure.in b/configure.in
index 8a478573a5..7696009327 100644
--- a/configure.in
+++ b/configure.in
@@ -992,6 +992,20 @@ EOF
   fi
   rm -f conftest*])
   AC_SUBST(libc_cv_z_initfirst)
+
+  AC_CACHE_CHECK(for -Bgroup option,
+		 libc_cv_Bgroup, [dnl
+  cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+  if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
+  then
+    libc_cv_Bgroup=yes
+  else
+    libc_cv_Bgroup=no
+  fi
+  rm -f conftest*])
+  AC_SUBST(libc_cv_Bgroup)
 fi
 
 if test $elf != yes; then
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index 9211402831..c7e9f9920a 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -313,6 +313,7 @@ function uid_t geteuid (void)
 function gid_t getgid (void)
 function int getgroups (int, gid_t[])
 function long gethostid (void)
+function int gethostname (char*, size_t)
 function {char*} getlogin (void)
 function int getlogin_r (char*, size_t)
 function int getopt (int, char*const[], const char*)
diff --git a/crypt/Makefile b/crypt/Makefile
index 91a712109c..58d7422d60 100644
--- a/crypt/Makefile
+++ b/crypt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2000, 2001 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
@@ -57,4 +57,4 @@ endif
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libcrypt.so: $(common-objpfx)libc.so
+$(objpfx)libcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
diff --git a/debug/Makefile b/debug/Makefile
index 85cec71b95..8431d3a617 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 2001 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
@@ -71,5 +71,9 @@ $(objpfx)xtrace: xtrace.sh
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libSegFault.so: $(common-objpfx)libc.so $(common-objpfx)elf/ld.so
-$(objpfx)libpcprofile.so: $(common-objpfx)libc.so $(common-objpfx)elf/ld.so
+$(objpfx)libSegFault.so: $(common-objpfx)libc.so \
+			 $(common-objpfx)libc_nonshared.a \
+			 $(common-objpfx)elf/ld.so
+$(objpfx)libpcprofile.so: $(common-objpfx)libc.so \
+			  $(common-objpfx)libc_nonshared.a \
+			  $(common-objpfx)elf/ld.so
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index 65694165e6..7bd7468993 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -79,3 +79,8 @@ $(objpfx)tstcxaatexit: $(libdl)
 $(objpfx)tstcxaatexit.out: $(objpfx)tstcxaatexit $(objpfx)modcxaatexit.so
 
 $(objpfx)modatexit.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
+
+# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
+# This ensures they will load libc.so for needed symbols if loaded by
+# a statically-linked program that hasn't already loaded it.
+$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
diff --git a/hesiod/Makefile b/hesiod/Makefile
index 32b4be4753..8b0445c784 100644
--- a/hesiod/Makefile
+++ b/hesiod/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 2000, 2001 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
@@ -43,4 +43,5 @@ include ../Rules
 # the file service.
 $(objpfx)libnss_hesiod.so: $(common-objpfx)resolv/libresolv.so \
                            $(common-objpfx)nss/libnss_files.so \
-                           $(common-objpfx)libc.so
+                           $(common-objpfx)libc.so \
+			   $(common-objpfx)libc_nonshared.a
diff --git a/iconvdata/extra-module.mk b/iconvdata/extra-module.mk
index 4662c77f17..e00eb5e8d2 100644
--- a/iconvdata/extra-module.mk
+++ b/iconvdata/extra-module.mk
@@ -9,7 +9,7 @@ $(objpfx)$(mod).so: $(addprefix $(objpfx),$(addsuffix .os,$($(mod)-routines)))
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)$(mod).so: $(common-objpfx)libc.so
+$(objpfx)$(mod).so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
 
 ifneq (,$(extra-modules-left))
 include extra-module.mk
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 5fe8ced1de..f4e37b4649 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,7 @@
+2001-03-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makefile: When generating DSO link with libc_nonshared.a.
+
 2001-02-26  Jakub Jelinek  <jakub@redhat.com>
 
 	* signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index a3bd5d16ae..d88af80f5a 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -76,7 +76,8 @@ CFLAGS-unload.c += -DPREFIX=\"$(objpfx)\"
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libpthread.so: $(common-objpfx)libc.so
+$(objpfx)libpthread.so: $(common-objpfx)libc.so \
+			$(common-objpfx)libc_nonshared.a
 
 # Make sure we link with the thread library.
 ifeq ($(build-shared),yes)
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog
index 1d4f469fc3..ebc6392028 100644
--- a/linuxthreads_db/ChangeLog
+++ b/linuxthreads_db/ChangeLog
@@ -1,3 +1,7 @@
+2001-03-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makefile: When generating DSO link with libc_nonshared.a.
+
 2000-08-01  Andreas Jaeger  <aj@suse.de>
 
 	* Makefile (distribute): Add missing files.
diff --git a/linuxthreads_db/Makefile b/linuxthreads_db/Makefile
index bf28bb4e36..489eb9e53d 100644
--- a/linuxthreads_db/Makefile
+++ b/linuxthreads_db/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001 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
@@ -49,4 +49,5 @@ include ../Rules
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libthread_db.so: $(common-objpfx)libc.so
+$(objpfx)libthread_db.so: $(common-objpfx)libc.so \
+			  $(common-objpfx)libc_nonshared.a
diff --git a/locale/Makefile b/locale/Makefile
index a62b647ac4..2bec43618c 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -100,4 +100,5 @@ CFLAGS-charmap-dir.c = -Wno-write-strings
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libBrokenLocale.so: $(common-objpfx)libc.so
+$(objpfx)libBrokenLocale.so: $(common-objpfx)libc.so \
+			     $(common-objpfx)libc_nonshared.a
diff --git a/login/Makefile b/login/Makefile
index b79c21a9e0..746f38e626 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 2000, 2001 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
@@ -60,4 +60,4 @@ $(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libutil.so: $(common-objpfx)libc.so
+$(objpfx)libutil.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
diff --git a/math/Makefile b/math/Makefile
index 08592ca8bd..cbc2f4c42d 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -191,4 +191,4 @@ $(objpfx)atest-exp2: $(gmp-objs)
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libm.so: $(common-objpfx)libc.so
+$(objpfx)libm.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
diff --git a/nis/Makefile b/nis/Makefile
index 78fdd072ec..74f07dc041 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 2001 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
@@ -75,7 +75,8 @@ $(objpfx)libnss_nisplus.so: $(objpfx)libnsl.so$(libnsl.so-version)
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: $(common-objpfx)libc.so
+$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: $(common-objpfx)libc.so\
+					       $(common-objpfx)libc_nonshared.a
 
 
 ifeq ($(build-shared),yes)
diff --git a/nss/Makefile b/nss/Makefile
index ec04f839bf..7e9e08b816 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -80,4 +80,5 @@ endif
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so
+$(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so \
+				    $(common-objpfx)libc_nonshared.a
diff --git a/posix/unistd.h b/posix/unistd.h
index 1148cb74fc..612d872d31 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -727,13 +727,15 @@ extern int setlogin (__const char *__name) __THROW;
 #endif
 
 
-#if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
-
+#if defined __USE_BSD || defined __USE_XOPEN2K
 /* Put the name of the current host in no more than LEN bytes of NAME.
    The result is null-terminated if LEN is large enough for the full
    name and the terminator.  */
 extern int gethostname (char *__name, size_t __len) __THROW;
+#endif
 
+
+#if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
 /* Set the name of the current host to NAME, which is LEN bytes long.
    This call is restricted to the super-user.  */
 extern int sethostname (__const char *__name, size_t __len) __THROW;
@@ -784,7 +786,6 @@ extern void setusershell (void) __THROW; /* Rewind and re-read the file.  */
    terminal.  If NOCHDIR is zero, do `chdir ("/")'.  If NOCLOSE is zero,
    redirects stdin, stdout, and stderr to /dev/null.  */
 extern int daemon (int __nochdir, int __noclose) __THROW;
-
 #endif /* Use BSD || X/Open.  */
 
 
diff --git a/resolv/Makefile b/resolv/Makefile
index a37277ac53..9e97f4dda2 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -76,12 +76,14 @@ CPPFLAGS += -Dgethostbyname=res_gethostbyname \
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)libresolv.so: $(common-objpfx)libc.so
+$(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
 
 # The DNS NSS modules needs the resolver.
-$(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so
+$(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \
+			$(common-objpfx)libc_nonshared.a
 
 # The asynchronous name lookup code needs the thread library.
-$(objpfx)libanl.so: $(common-objpfx)libc.so $(shared-thread-library)
+$(objpfx)libanl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
+		    $(shared-thread-library)
 
 $(objpfx)ga_test: $(objpfx)libanl.so $(shared-thread-library)
diff --git a/rt/Makefile b/rt/Makefile
index e7014f256d..c1e84c5270 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000, 2001 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
@@ -53,7 +53,8 @@ include ../Rules
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by
 # a statically-linked program that hasn't already loaded it.
-$(objpfx)librt.so: $(common-objpfx)libc.so $(shared-thread-library)
+$(objpfx)librt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
+		   $(shared-thread-library)
 
 ifeq (yes,$(build-shared))
 $(addprefix $(objpfx),$(tests)): $(objpfx)librt.so $(shared-thread-library)