summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-06-26 00:09:27 +0000
committerUlrich Drepper <drepper@redhat.com>1997-06-26 00:09:27 +0000
commitf9a73ae19a5fd2dff92b9eb631a96fff17b3f5af (patch)
treef93328864ea4994a3a08b73dbfe1c9ee4cb70dba
parent478b92f03a640cba69e9508730abc00116c6940c (diff)
downloadglibc-f9a73ae19a5fd2dff92b9eb631a96fff17b3f5af.tar.gz
glibc-f9a73ae19a5fd2dff92b9eb631a96fff17b3f5af.tar.xz
glibc-f9a73ae19a5fd2dff92b9eb631a96fff17b3f5af.zip
Update.
1997-06-26 02:06  Ulrich Drepper  <drepper@cygnus.com>

	* Makerules ($(common-objpfx)libc.so): Use $(load-map-file) in
	dependency, not $(libc-map).

	* sysdeps/posix/mk-stdiolim.c: Pretty print.

1997-06-25 15:54  Fila Kolodny  <fila@ibi.com>

	* sysdeps/posix/Makefile ($(common-objpfx)bits/stdio_lim.h): Don't
	conditionalize this on whether we are cross-compiling.

1997-06-21 15:47  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* elf/dl-lookup.c (do_lookup): Use default definition
	for a default versioned symbol.

	* elf/dl-version.c (_dl_check_map_versions): Set the hidden field.

	* elf/dlvsym.c (__dlvsym): Set the hidden field to 1.

	* elf/link.h (r_found_version): Add the hidden field.

	* math/test-matherr.c: New file.

	* math/Makefile (tests): Add test-matherr.
	(libm-support): Put back s_matherr.
	(static-only-routines, aux): Remove s_matherr.
-rw-r--r--ChangeLog29
-rw-r--r--Makerules2
-rwxr-xr-xconfig.guess3
-rwxr-xr-xconfig.sub2
-rw-r--r--elf/dl-lookup.c8
-rw-r--r--elf/dl-version.c1
-rw-r--r--elf/dlvsym.c1
-rw-r--r--elf/link.h1
-rw-r--r--math/Makefile9
-rw-r--r--math/test-matherr.c23
-rw-r--r--sysdeps/posix/Makefile8
-rw-r--r--sysdeps/posix/mk-stdiolim.c32
12 files changed, 85 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index fa26785512..6bed4202d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+1997-06-26 02:06  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Makerules ($(common-objpfx)libc.so): Use $(load-map-file) in
+	dependency, not $(libc-map).
+
+	* sysdeps/posix/mk-stdiolim.c: Pretty print.
+
+1997-06-25 15:54  Fila Kolodny  <fila@ibi.com>
+
+	* sysdeps/posix/Makefile ($(common-objpfx)bits/stdio_lim.h): Don't
+	conditionalize this on whether we are cross-compiling.
+
+1997-06-21 15:47  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* elf/dl-lookup.c (do_lookup): Use default definition
+	for a default versioned symbol.
+
+	* elf/dl-version.c (_dl_check_map_versions): Set the hidden field.
+
+	* elf/dlvsym.c (__dlvsym): Set the hidden field to 1.
+
+	* elf/link.h (r_found_version): Add the hidden field.
+
+	* math/test-matherr.c: New file.
+
+	* math/Makefile (tests): Add test-matherr.
+	(libm-support): Put back s_matherr.
+	(static-only-routines, aux): Remove s_matherr.
+
 1997-06-23 23:39  Ulrich Drepper  <drepper@cygnus.com>
 
 	* string/Makefile (headers): Change bytesex.h to bits/endian.h.
diff --git a/Makerules b/Makerules
index fd8b1a1556..20034e58da 100644
--- a/Makerules
+++ b/Makerules
@@ -383,7 +383,7 @@ libc-map = $(..)libc.map
 $(common-objpfx)libc.so: $(elfobjdir)/soinit.so \
 			 $(common-objpfx)libc_pic.a \
 			 $(elfobjdir)/sofini.so $(elfobjdir)/ld.so \
-			 $(libc-map)
+			 $(load-map-file)
 	$(build-shlib)
 ifdef libc.so-version
 $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
diff --git a/config.guess b/config.guess
index c4bca5f251..c22925bcfe 100755
--- a/config.guess
+++ b/config.guess
@@ -613,6 +613,9 @@ EOF
     mc68*:A/UX:*:*)
 	echo m68k-apple-aux${UNAME_RELEASE}
 	exit 0 ;;
+    news*:NEWS-OS:*:6*)
+	echo mips-sony-newsos6
+	exit 0 ;;
     R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
 	if [ -d /usr/nec ]; then
 	        echo mips-nec-sysv${UNAME_RELEASE}
diff --git a/config.sub b/config.sub
index 5b75f25cdf..484d854300 100755
--- a/config.sub
+++ b/config.sub
@@ -150,7 +150,7 @@ case $basic_machine in
 	# Recognize the basic CPU types without company name.
 	# Some are omitted here because they have special meanings below.
 	tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
-		| arme[lb] | pyramid \
+		| arme[lb] | pyramid | mn10200 | mn10300 \
 		| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
 		| alpha | we32k | ns16k | clipper | i370 | sh \
 		| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 15da23d95c..4cc1f2d468 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -151,10 +151,12 @@ do_lookup (const char *undef_name, unsigned long int hash,
 		}
 	      else
 		{
-		  /* We can match the version information.  */
+		  /* We can match the version information or use the
+		     default one.  */
 		  ElfW(Half) ndx = verstab[symidx] & 0x7fff;
-		  if (map->l_versions[ndx].hash != version->hash
-		      || strcmp (map->l_versions[ndx].name, version->name))
+		  if ((map->l_versions[ndx].hash != version->hash
+		       || strcmp (map->l_versions[ndx].name, version->name))
+		      && (version->hidden || map->l_versions[ndx].hash))
 		    /* It's not the version we want.  */
 		    continue;
 		}
diff --git a/elf/dl-version.c b/elf/dl-version.c
index f7df9805b3..d06fd5ce1e 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -274,6 +274,7 @@ _dl_check_map_versions (struct link_map *map, int verbose)
 		    {
 		      ElfW(Half) ndx = aux->vna_other & 0x7fff;
 		      map->l_versions[ndx].hash = aux->vna_hash;
+		      map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
 		      map->l_versions[ndx].name = &strtab[aux->vna_name];
 		      map->l_versions[ndx].filename = &strtab[ent->vn_file];
 
diff --git a/elf/dlvsym.c b/elf/dlvsym.c
index ca8e25d9df..18cb892a3f 100644
--- a/elf/dlvsym.c
+++ b/elf/dlvsym.c
@@ -95,6 +95,7 @@ __dlvsym (void *handle, const char *name, const char *version_str)
 
   /* Compute hash value to the version string.  */
   args.version.name = version_str;
+  args.version.hidden = 1;
   args.version.hash = _dl_elf_hash (version_str);
   /* We don't have a specific file where the symbol can be found.  */
   args.version.filename = NULL;
diff --git a/elf/link.h b/elf/link.h
index 6c272fe054..20e80b1466 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -87,6 +87,7 @@ struct r_found_version
     const char *name;
     ElfW(Word) hash;
 
+    int hidden;
     const char *filename;
   };
 
diff --git a/math/Makefile b/math/Makefile
index 4f2537d680..5a86f92f04 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -29,9 +29,7 @@ headers		:= math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \
 distribute	:= math_private.h machine/asm.h machine/endian.h
 
 # FPU support code.
-aux		:= fpu_control setfpucw s_matherr
-
-static-only-routines := s_matherr
+aux		:= fpu_control setfpucw
 
 # Build the -lm library.
 
@@ -40,7 +38,7 @@ extra-libs-others = $(extra-libs)
 
 libm-map	:= libm.map
 
-libm-support = k_standard s_lib_version s_signgam			\
+libm-support = k_standard s_lib_version s_matherr s_signgam		\
 	       s_lrint s_llrint s_lround s_llround			\
 	       fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg		\
 	       ftestexcept fegetround fesetround fegetenv feholdexcpt	\
@@ -79,7 +77,7 @@ distribute += $(long-c-yes:=.c)
 
 # Rules for the test suite.
 tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \
-	test-ifloat test-idouble
+	test-ifloat test-idouble test-matherr
 # We do the `long double' tests only if this data type is available and
 # distrinct from `double'.
 #
@@ -95,6 +93,7 @@ LDLIBS-test-ildoubl = libm
 LDLIBS-test-float = libm
 LDLIBS-test-double = libm
 LDLIBS-test-ldouble = libm
+LDLIBS-test-matherr = libm
 
 distribute += libm-test.c
 
diff --git a/math/test-matherr.c b/math/test-matherr.c
new file mode 100644
index 0000000000..91657a8cb2
--- /dev/null
+++ b/math/test-matherr.c
@@ -0,0 +1,23 @@
+#undef _SVID_SOURCE
+#define _SVID_SOURCE
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static int fail = 1;
+
+int
+matherr (struct exception *s)
+{
+  printf ("matherr is working\n");
+  fail = 0;
+  return 1;
+}
+
+int
+main (void)
+{
+  _LIB_VERSION = _SVID_;
+  acos (2.0);
+  return fail;
+}
diff --git a/sysdeps/posix/Makefile b/sysdeps/posix/Makefile
index 358114a921..7806e4e86f 100644
--- a/sysdeps/posix/Makefile
+++ b/sysdeps/posix/Makefile
@@ -19,17 +19,9 @@
 ifneq (yes,$(inhibit-stdio_lim))
 # Disable these rules if we generate stdio_lim.h by other means.
 
-ifeq (yes,$(cross-compiling))
-$(common-objpfx)bits/stdio_lim.h:
-	@echo
-	@echo "You must build <bits/stdio_lim.h> by hand.  Stop."
-	@echo
-	@exit 1
-else
 $(common-objpfx)bits/stdio_lim.h: $(common-objpfx)mk-stdiolim
 	$(dir $<)$(notdir $<) > $@-t
 	mv $@-t $@
-endif
 
 # Turn into a version that works when cd'd into $(objdir).
 mk-stdiolim-CFLAGS = $(patsubst -I$(shell pwd)//%,-I/%,\
diff --git a/sysdeps/posix/mk-stdiolim.c b/sysdeps/posix/mk-stdiolim.c
index 8491624003..7009c4ef10 100644
--- a/sysdeps/posix/mk-stdiolim.c
+++ b/sysdeps/posix/mk-stdiolim.c
@@ -23,49 +23,49 @@ main()
 {
   /* These values correspond to the code in sysdeps/posix/tempname.c.
      Change the values here if you change that code.  */
-  printf("#define L_tmpnam %u\n", sizeof("/usr/tmp/") + 9);
-  printf("#define TMP_MAX %u\n", 62 * 62 * 62);
+  printf ("#define L_tmpnam %u\n", sizeof ("/usr/tmp/") + 9);
+  printf ("#define TMP_MAX %u\n", 62 * 62 * 62);
 
-  puts  ("#ifdef __USE_POSIX");
-  printf("#define L_ctermid %u\n", sizeof("/dev/tty"));
-  printf("#define L_cuserid 9\n");
-  puts  ("#endif");
+  puts   ("#ifdef __USE_POSIX");
+  printf ("# define L_ctermid %u\n", sizeof ("/dev/tty"));
+  printf ("# define L_cuserid 9\n");
+  puts   ("#endif");
 
   /* POSIX does not require that OPEN_MAX and PATH_MAX be defined, so
      <bits/local_lim.h> will not define them if they are run-time
-     variant (which is the case in the Hurd).  ANSI still requires
+     variant (which is the case in the Hurd).  ISO still requires
      that FOPEN_MAX and FILENAME_MAX be defined, however.  */
 
-  printf("#define FOPEN_MAX %u\n",
+  printf ("#define FOPEN_MAX %u\n",
 #ifdef	OPEN_MAX
 
-	 OPEN_MAX
+	  OPEN_MAX
 #else
 	 /* This is the minimum number of files that the implementation
 	    guarantees can be open simultaneously.  OPEN_MAX not being
 	    defined means the maximum is run-time variant; but POSIX.1
 	    requires that it never be less than _POSIX_OPEN_MAX, so that is
 	    a good minimum to use.  */
-	 _POSIX_OPEN_MAX
+	  _POSIX_OPEN_MAX
 #endif
 
-	 );
+	  );
 
-  printf("#define FILENAME_MAX %u\n",
+  printf ("#define FILENAME_MAX %u\n",
 #ifdef	PATH_MAX
-	 PATH_MAX
+	  PATH_MAX
 #else
 	 /* This is supposed to be the size needed to hold the longest file
 	    name string the implementation guarantees can be opened.
 	    PATH_MAX not being defined means the actual limit on the length
-	    of a file name is runtime-variant (or it is unlimited).  ANSI
+	    of a file name is runtime-variant (or it is unlimited).  ISO
 	    says in such a case FILENAME_MAX should be a good size to
 	    allocate for a file name string.  POSIX.1 guarantees that a
 	    file name up to _POSIX_PATH_MAX chars long can be opened, so
 	    this value must be at least that.  */
-	    1024		/* _POSIX_PATH_MAX is 255.  */
+	  1024		/* _POSIX_PATH_MAX is 255.  */
 #endif
-	 );
+	  );
 
   exit(0);
 }