Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 26 Jun 1997 00:09:27 +0000 (00:09 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 26 Jun 1997 00:09:27 +0000 (00:09 +0000)
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.

12 files changed:
ChangeLog
Makerules
config.guess
config.sub
elf/dl-lookup.c
elf/dl-version.c
elf/dlvsym.c
elf/link.h
math/Makefile
math/test-matherr.c [new file with mode: 0644]
sysdeps/posix/Makefile
sysdeps/posix/mk-stdiolim.c

index fa26785..6bed420 100644 (file)
--- 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.
index fd8b1a1..20034e5 100644 (file)
--- 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
index c4bca5f..c22925b 100755 (executable)
@@ -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}
index 5b75f25..484d854 100755 (executable)
@@ -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 \
index 15da23d..4cc1f2d 100644 (file)
@@ -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;
                }
index f7df980..d06fd5c 100644 (file)
@@ -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];
 
index ca8e25d..18cb892 100644 (file)
@@ -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;
index 6c272fe..20e80b1 100644 (file)
@@ -87,6 +87,7 @@ struct r_found_version
     const char *name;
     ElfW(Word) hash;
 
+    int hidden;
     const char *filename;
   };
 
index 4f2537d..5a86f92 100644 (file)
@@ -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 (file)
index 0000000..91657a8
--- /dev/null
@@ -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;
+}
index 358114a..7806e4e 100644 (file)
 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/%,\
index 8491624..7009c4e 100644 (file)
@@ -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);
 }