]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 22 Sep 1998 19:08:42 +0000 (19:08 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 22 Sep 1998 19:08:42 +0000 (19:08 +0000)
1998-09-22 19:58 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

* posix/execvp.c: Don't give up searching the PATH if execve
returns ENOTDIR.

1998-09-22 12:53  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/init-first.c (init): Don't call setfpucw only
if _dl_fpu_control_set is set.
* sysdeps/generic/dl-sysdep.c: Don't set _dl_fpu_control_set.
* elf/rtld.c: Don't define _dl_fpu_control_set.
* elf/Versions: Remove _dl_fpu_control_set.

1998-09-22 11:51  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (SA_ONSTACK): Define.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
Correct values of other SA_* macros according to kernel headers.

1998-09-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* elf/dl-load.c (_dl_init_paths): Avoid warning about unused
variable l.
* elf/dl-error.c (_dl_catch_error): Avoid warning about clobbering
old.

1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* elf/ldsodefs.h: Fix typo in comment.

1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* libio/genops.c (_IO_default_pbackfail): Add cast to unsigned
char when comparing buffer contents with putback character.

1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* elf/Makefile (dl-routines, elide-routines.os, rtld-routines):
Undo last change.
* elf/Versions: Undo last change.  Export _dl_fpu_control and
_dl_fpu_control_set.
* elf/rtld.c (_dl_fpu_control, _dl_fpu_control_set): New
variables.  Include <fpu_control.h>.
* sysdeps/generic/dl-sysdep.c: Store AT_FPUCW value in
_dl_fpu_control instead of __fpu_control, set _dl_fpu_control_set
to indicate that is was seen.
* sysdeps/unix/sysv/linux/init-first.c: Omit call to __setfpucw
only if _dl_fpu_control was set and is equal to desired value.
* math/Makefile (aux): Undo last change.
* math/Versions: Export __fpu_control with version GLIBC_2.0.

15 files changed:
ChangeLog
elf/Versions
elf/dl-error.c
elf/dl-load.c
elf/ldsodefs.h
elf/rtld.c
libio/genops.c
math/Makefile
math/Versions
posix/execvp.c
sysdeps/generic/dl-sysdep.c
sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
sysdeps/unix/sysv/linux/init-first.c
sysdeps/unix/sysv/linux/mips/bits/sigaction.h
sysdeps/unix/sysv/linux/sparc/bits/sigaction.h

index 665396290730e6ce749d8e4830b744b163e68169..378c11c68fa112d605a1c86b9beb6fe9f7fd08b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+1998-09-22 19:58 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+       * posix/execvp.c: Don't give up searching the PATH if execve
+       returns ENOTDIR.
+
+1998-09-22 12:53  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/init-first.c (init): Don't call setfpucw only
+       if _dl_fpu_control_set is set.
+       * sysdeps/generic/dl-sysdep.c: Don't set _dl_fpu_control_set.
+       * elf/rtld.c: Don't define _dl_fpu_control_set.
+       * elf/Versions: Remove _dl_fpu_control_set.
+
+1998-09-22 11:51  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (SA_ONSTACK): Define.
+       * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
+       * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
+       Correct values of other SA_* macros according to kernel headers.
+
+1998-09-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * elf/dl-load.c (_dl_init_paths): Avoid warning about unused
+       variable l.
+       * elf/dl-error.c (_dl_catch_error): Avoid warning about clobbering
+       old.
+
+1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * elf/ldsodefs.h: Fix typo in comment.
+
+1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * libio/genops.c (_IO_default_pbackfail): Add cast to unsigned
+       char when comparing buffer contents with putback character.
+
+1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * elf/Makefile (dl-routines, elide-routines.os, rtld-routines):
+       Undo last change.
+       * elf/Versions: Undo last change.  Export _dl_fpu_control and
+       _dl_fpu_control_set.
+       * elf/rtld.c (_dl_fpu_control, _dl_fpu_control_set): New
+       variables.  Include <fpu_control.h>.
+       * sysdeps/generic/dl-sysdep.c: Store AT_FPUCW value in
+       _dl_fpu_control instead of __fpu_control, set _dl_fpu_control_set
+       to indicate that is was seen.
+       * sysdeps/unix/sysv/linux/init-first.c: Omit call to __setfpucw
+       only if _dl_fpu_control was set and is equal to desired value.
+       * math/Makefile (aux): Undo last change.
+       * math/Versions: Export __fpu_control with version GLIBC_2.0.
+
 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
        * sysdeps/m68k/dl-machine.h (elf_machine_lazy_rel): Slightly
index 2c93632a2be67f0de84928e8ae07d36408f58dbc..1cfb5ccf2c13269be6df5623bfe236d9a23762c7 100644 (file)
@@ -19,7 +19,7 @@ libc {
   GLIBC_2.1 {
     # global variables
     _dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile;
-    _dl_loaded; _dl_main_searchlist; __fpu_control;
+    _dl_loaded; _dl_main_searchlist; _dl_fpu_control;
 
     # functions used in other libraries
     _dl_mcount; _dl_mcount_wrapper; _dl_mcount_wrapper_check; _dl_unload_cache;
index 228c1a80a1a91b79f482cb34379c395fbeab4f55..ae6344745327d00a2486c5675c68e3fe2026b40d 100644 (file)
@@ -145,7 +145,8 @@ _dl_catch_error (char **errstring,
                 void *args)
 {
   int errcode;
-  struct catch *old, c;
+  struct catch *volatile old;
+  struct catch c;
   /* We need not handle `receiver' since setting a `catch' is handled
      before it.  */
 
index cb0a4ff75323579cb3aa00a97ae33eb860c08075..3e5e2910185b05834377019ca86c3b600cfb8b4f 100644 (file)
@@ -456,10 +456,12 @@ _dl_init_paths (const char *llp)
   const char **strp;
   struct r_search_path_elem *pelem, **aelem;
   size_t round_size;
+#ifdef PIC
+  struct link_map *l;
+#endif
 
   /* Fill in the information about the application's RPATH and the
      directories addressed by the LD_LIBRARY_PATH environment variable.  */
-  struct link_map *l;
 
   /* Get the capabilities.  */
   capstr = _dl_important_hwcaps (_dl_platform, _dl_platformlen,
index 807613e4b479b7ab2087cc3b6ae2a5509694ac40..946cf3443986e87f6ceccc797ac1fcfd5cb23025 100644 (file)
@@ -148,7 +148,7 @@ extern unsigned long int _dl_hwcap;
 /* Mask for important hardware capabilities we honour. */
 extern unsigned long int _dl_hwcap_mask;
 
-/* File deccriptor to write debug messages to.  */
+/* File descriptor to write debug messages to.  */
 extern int _dl_debug_fd;
 
 /* Names of shared object for which the RPATH should be ignored.  */
index 7c2e054d88a0a46a5bc2a4164c71614ad1cefc8a..4d67176d0329abf7f3acab73366ded0f02c0f8ac 100644 (file)
@@ -25,6 +25,7 @@
 #include <elf/ldsodefs.h>
 #include <stdio-common/_itoa.h>
 #include <entry.h>
+#include <fpu_control.h>
 #include "dynamic-link.h"
 #include "dl-librecon.h"
 
@@ -73,6 +74,7 @@ int _dl_verbose;
 const char *_dl_platform;
 size_t _dl_platformlen;
 unsigned long _dl_hwcap;
+fpu_control_t _dl_fpu_control = _FPU_DEFAULT;
 struct r_search_path *_dl_search_paths;
 const char *_dl_profile;
 const char *_dl_profile_output;
index 2dce95f842c7e89dd415863f03e3d180c3344fa1..c75be6234b84273f759e0fe1b071c2414674cbdb 100644 (file)
@@ -872,7 +872,7 @@ _IO_default_pbackfail (fp, c)
      int c;
 {
   if (fp->_IO_read_ptr > fp->_IO_read_base && !_IO_in_backup (fp)
-      && fp->_IO_read_ptr[-1] == c)
+      && (unsigned char) fp->_IO_read_ptr[-1] == c)
     --fp->_IO_read_ptr;
   else
     {
index 59e085d2bcf22556b6592454e3f7b4c95029f937..51103754131418e2cf979e2bfa25bae9b5953fcb 100644 (file)
@@ -29,7 +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            := setfpucw
+aux            := setfpucw fpu_control
 
 # Build the -lm library.
 
index 580fa253aa4009765ce53248b9bfd4ccc9289133..104c7e5a305fff4e4fc6091945a7c48b1ce70884 100644 (file)
@@ -4,6 +4,9 @@ libc {
     __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
     __isinf; __isinff; __isinfl;
 
+    # global variables
+    __fpu_control;
+
     # c*
     copysign; copysignf; copysignl;
 
index 2eda603c399a100749f8dcd01bd965318beb89f7..5b1e14bf1abd23e134f882f144fcfacfd6db6476 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 95, 96, 97, 98 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
@@ -121,6 +121,7 @@ execvp (file, argv)
              got_eacces = 1;
            case ENOENT:
            case ESTALE:
+           case ENOTDIR:
              /* Those errors indicate the file is missing or not executable
                 by us, in which case we want to just try the next path
                 directory.  */
index 120f362e7592a54bc9bfa5fa7dbbbf26c7cc1399..4f2a2f6da3aea28cc2197d9500fce48e25950cca 100644 (file)
@@ -41,6 +41,7 @@ extern size_t _dl_pagesize;
 extern const char *_dl_platform;
 extern unsigned long int _dl_hwcap;
 extern size_t _dl_platformlen;
+extern fpu_control_t _dl_fpu_control;
 extern void _end;
 extern void ENTRY_POINT (void);
 
@@ -128,7 +129,7 @@ _dl_sysdep_start (void **start_argptr,
        _dl_hwcap = av->a_un.a_val;
        break;
       case AT_FPUCW:
-       __fpu_control = av->a_un.a_val;
+       _dl_fpu_control = av->a_un.a_val;
        break;
       }
 
index 274531f270887797f47cf2658ac2d7e8d24f1be0..ae1249af51338bdcfc83a9af4712b22a9ab3cd34 100644 (file)
@@ -37,7 +37,7 @@ struct sigaction
 /* Bits in `sa_flags'.  */
 #define        SA_NOCLDSTOP  0x00000004 /* Don't send SIGCHLD when children stop.  */
 #ifdef __USE_MISC
-# define SA_STACK     0x00000001 /* Use signal stack by using `sa_restorer'. */
+# define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
 # define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
 # define SA_NOMASK    0x00000008 /* Don't automatically block the signal
@@ -47,6 +47,7 @@ struct sigaction
 /* Some aliases for the SA_ constants.  */
 # define SA_NODEFER   SA_NOMASK
 # define SA_RESETHAND SA_ONESHOT
+# define SA_STACK     SA_ONSTACK
 #endif
 
 /* Values for the HOW argument to `sigprocmask'.  */
index 4b7af46d78cf011f2352cded5aa57fbc19d1ff0f..01395baf75466d47b03bdbeb70713f76665017bb 100644 (file)
@@ -34,6 +34,9 @@ static void init (int, char **, char **) __attribute__ ((unused));
 extern int _dl_starting_up;
 weak_extern (_dl_starting_up)
 
+extern fpu_control_t _dl_fpu_control;
+extern int _dl_fpu_control_set;
+
 /* Set nonzero if we have to be prepared for more then one libc being
    used in the process.  Safe assumption if initializer never runs.  */
 int __libc_multiple_libcs = 1;
@@ -61,8 +64,11 @@ init (int argc, char **argv, char **envp)
       __personality (PER_LINUX);
 
       /* Set the FPU control word to the proper default value if the
-        kernel would use a different value.  */
-      if (__fpu_control != _FPU_DEFAULT)
+        kernel would use a different value.  (In a static program we
+        don't have this information.)  */
+#ifdef PIC
+      if (__fpu_control != _dl_fpu_control)
+#endif
        __setfpucw (__fpu_control);
     }
 
index 71ca8846ebf664dfded76e4a816e84d5981af1dd..7f72406e0136723c873023b29ce14731cec35393 100644 (file)
@@ -45,16 +45,17 @@ struct sigaction
 /* Bits in `sa_flags'.  */
 #define        SA_NOCLDSTOP  1          /* Don't send SIGCHLD when children stop.  */
 #ifdef __USE_MISC
-# define SA_STACK     0x08000000 /* Use signal stack by using `sa_restorer'. */
-# define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
-# define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
-# define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
+# define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
+# define SA_RESTART   0x00000004 /* Restart syscall on signal return.  */
+# define SA_INTERRUPT 0x00000000 /* Historical no-op.  */
+# define SA_NODEFER   0x00000010 /* Don't automatically block the signal when
                                    its handler is being executed.  */
-# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
+# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler.  */
 
 /* Some aliases for the SA_ constants.  */
 # define SA_NOMASK    SA_NODEFER
 # define SA_ONESHOT   SA_RESETHAND
+# define SA_STACK     SA_ONSTACK
 #endif
 
 /* Values for the HOW argument to `sigprocmask'.  */
index 3e4e855915f9b49116abb03e060d5cd18eb2fabb..651b526a40ba4754751e1bc98981f5e2941041e4 100644 (file)
@@ -43,7 +43,7 @@ struct sigaction
 #define SA_SIGINFO   0x00000200  /* Invoke signal-catching function with
                                    three arguments instead of one.  */
 #ifdef __USE_MISC
-# define SA_STACK     0x00000001 /* Use signal stack by using `sa_restorer'. */
+# define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
 # define SA_INTERRUPT 0x00000010 /* Historical no-op.  */
 # define SA_NOMASK    0x00000020 /* Don't automatically block the signal when
@@ -53,6 +53,7 @@ struct sigaction
 /* Some aliases for the SA_ constants.  */
 # define SA_NODEFER   SA_NOMASK
 # define SA_RESETHAND SA_ONESHOT
+# define SA_STACK     SA_ONSTACK
 #endif
 
 /* Values for the HOW argument to `sigprocmask'.  */