1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00
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.
This commit is contained in:
Ulrich Drepper
1998-09-22 19:08:42 +00:00
parent e27b79d3ee
commit c94a8080d8
15 changed files with 88 additions and 17 deletions

View File

@ -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> 1998-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_lazy_rel): Slightly * sysdeps/m68k/dl-machine.h (elf_machine_lazy_rel): Slightly

View File

@ -19,7 +19,7 @@ libc {
GLIBC_2.1 { GLIBC_2.1 {
# global variables # global variables
_dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile; _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 # functions used in other libraries
_dl_mcount; _dl_mcount_wrapper; _dl_mcount_wrapper_check; _dl_unload_cache; _dl_mcount; _dl_mcount_wrapper; _dl_mcount_wrapper_check; _dl_unload_cache;

View File

@ -145,7 +145,8 @@ _dl_catch_error (char **errstring,
void *args) void *args)
{ {
int errcode; int errcode;
struct catch *old, c; struct catch *volatile old;
struct catch c;
/* We need not handle `receiver' since setting a `catch' is handled /* We need not handle `receiver' since setting a `catch' is handled
before it. */ before it. */

View File

@ -456,10 +456,12 @@ _dl_init_paths (const char *llp)
const char **strp; const char **strp;
struct r_search_path_elem *pelem, **aelem; struct r_search_path_elem *pelem, **aelem;
size_t round_size; size_t round_size;
#ifdef PIC
struct link_map *l;
#endif
/* Fill in the information about the application's RPATH and the /* Fill in the information about the application's RPATH and the
directories addressed by the LD_LIBRARY_PATH environment variable. */ directories addressed by the LD_LIBRARY_PATH environment variable. */
struct link_map *l;
/* Get the capabilities. */ /* Get the capabilities. */
capstr = _dl_important_hwcaps (_dl_platform, _dl_platformlen, capstr = _dl_important_hwcaps (_dl_platform, _dl_platformlen,

View File

@ -148,7 +148,7 @@ extern unsigned long int _dl_hwcap;
/* Mask for important hardware capabilities we honour. */ /* Mask for important hardware capabilities we honour. */
extern unsigned long int _dl_hwcap_mask; 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; extern int _dl_debug_fd;
/* Names of shared object for which the RPATH should be ignored. */ /* Names of shared object for which the RPATH should be ignored. */

View File

@ -25,6 +25,7 @@
#include <elf/ldsodefs.h> #include <elf/ldsodefs.h>
#include <stdio-common/_itoa.h> #include <stdio-common/_itoa.h>
#include <entry.h> #include <entry.h>
#include <fpu_control.h>
#include "dynamic-link.h" #include "dynamic-link.h"
#include "dl-librecon.h" #include "dl-librecon.h"
@ -73,6 +74,7 @@ int _dl_verbose;
const char *_dl_platform; const char *_dl_platform;
size_t _dl_platformlen; size_t _dl_platformlen;
unsigned long _dl_hwcap; unsigned long _dl_hwcap;
fpu_control_t _dl_fpu_control = _FPU_DEFAULT;
struct r_search_path *_dl_search_paths; struct r_search_path *_dl_search_paths;
const char *_dl_profile; const char *_dl_profile;
const char *_dl_profile_output; const char *_dl_profile_output;

View File

@ -872,7 +872,7 @@ _IO_default_pbackfail (fp, c)
int c; int c;
{ {
if (fp->_IO_read_ptr > fp->_IO_read_base && !_IO_in_backup (fp) 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; --fp->_IO_read_ptr;
else else
{ {

View 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 distribute := math_private.h machine/asm.h machine/endian.h
# FPU support code. # FPU support code.
aux := setfpucw aux := setfpucw fpu_control
# Build the -lm library. # Build the -lm library.

View File

@ -4,6 +4,9 @@ libc {
__isnan; __isnanf; __isnanl; __finite; __finitef; __finitel; __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
__isinf; __isinff; __isinfl; __isinf; __isinff; __isinfl;
# global variables
__fpu_control;
# c* # c*
copysign; copysignf; copysignl; copysign; copysignf; copysignl;

View 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -121,6 +121,7 @@ execvp (file, argv)
got_eacces = 1; got_eacces = 1;
case ENOENT: case ENOENT:
case ESTALE: case ESTALE:
case ENOTDIR:
/* Those errors indicate the file is missing or not executable /* Those errors indicate the file is missing or not executable
by us, in which case we want to just try the next path by us, in which case we want to just try the next path
directory. */ directory. */

View File

@ -41,6 +41,7 @@ extern size_t _dl_pagesize;
extern const char *_dl_platform; extern const char *_dl_platform;
extern unsigned long int _dl_hwcap; extern unsigned long int _dl_hwcap;
extern size_t _dl_platformlen; extern size_t _dl_platformlen;
extern fpu_control_t _dl_fpu_control;
extern void _end; extern void _end;
extern void ENTRY_POINT (void); extern void ENTRY_POINT (void);
@ -128,7 +129,7 @@ _dl_sysdep_start (void **start_argptr,
_dl_hwcap = av->a_un.a_val; _dl_hwcap = av->a_un.a_val;
break; break;
case AT_FPUCW: case AT_FPUCW:
__fpu_control = av->a_un.a_val; _dl_fpu_control = av->a_un.a_val;
break; break;
} }

View File

@ -37,7 +37,7 @@ struct sigaction
/* Bits in `sa_flags'. */ /* Bits in `sa_flags'. */
#define SA_NOCLDSTOP 0x00000004 /* Don't send SIGCHLD when children stop. */ #define SA_NOCLDSTOP 0x00000004 /* Don't send SIGCHLD when children stop. */
#ifdef __USE_MISC #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_RESTART 0x00000002 /* Restart syscall on signal return. */
# define SA_INTERRUPT 0x20000000 /* Historical no-op. */ # define SA_INTERRUPT 0x20000000 /* Historical no-op. */
# define SA_NOMASK 0x00000008 /* Don't automatically block the signal # define SA_NOMASK 0x00000008 /* Don't automatically block the signal
@ -47,6 +47,7 @@ struct sigaction
/* Some aliases for the SA_ constants. */ /* Some aliases for the SA_ constants. */
# define SA_NODEFER SA_NOMASK # define SA_NODEFER SA_NOMASK
# define SA_RESETHAND SA_ONESHOT # define SA_RESETHAND SA_ONESHOT
# define SA_STACK SA_ONSTACK
#endif #endif
/* Values for the HOW argument to `sigprocmask'. */ /* Values for the HOW argument to `sigprocmask'. */

View File

@ -34,6 +34,9 @@ static void init (int, char **, char **) __attribute__ ((unused));
extern int _dl_starting_up; extern int _dl_starting_up;
weak_extern (_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 /* Set nonzero if we have to be prepared for more then one libc being
used in the process. Safe assumption if initializer never runs. */ used in the process. Safe assumption if initializer never runs. */
int __libc_multiple_libcs = 1; int __libc_multiple_libcs = 1;
@ -61,8 +64,11 @@ init (int argc, char **argv, char **envp)
__personality (PER_LINUX); __personality (PER_LINUX);
/* Set the FPU control word to the proper default value if the /* Set the FPU control word to the proper default value if the
kernel would use a different value. */ kernel would use a different value. (In a static program we
if (__fpu_control != _FPU_DEFAULT) don't have this information.) */
#ifdef PIC
if (__fpu_control != _dl_fpu_control)
#endif
__setfpucw (__fpu_control); __setfpucw (__fpu_control);
} }

View File

@ -45,16 +45,17 @@ struct sigaction
/* Bits in `sa_flags'. */ /* Bits in `sa_flags'. */
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */ #define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
#ifdef __USE_MISC #ifdef __USE_MISC
# define SA_STACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ # define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ # define SA_RESTART 0x00000004 /* Restart syscall on signal return. */
# define SA_INTERRUPT 0x20000000 /* Historical no-op. */ # define SA_INTERRUPT 0x00000000 /* Historical no-op. */
# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when # define SA_NODEFER 0x00000010 /* Don't automatically block the signal when
its handler is being executed. */ 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. */ /* Some aliases for the SA_ constants. */
# define SA_NOMASK SA_NODEFER # define SA_NOMASK SA_NODEFER
# define SA_ONESHOT SA_RESETHAND # define SA_ONESHOT SA_RESETHAND
# define SA_STACK SA_ONSTACK
#endif #endif
/* Values for the HOW argument to `sigprocmask'. */ /* Values for the HOW argument to `sigprocmask'. */

View File

@ -43,7 +43,7 @@ struct sigaction
#define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with #define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with
three arguments instead of one. */ three arguments instead of one. */
#ifdef __USE_MISC #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_RESTART 0x00000002 /* Restart syscall on signal return. */
# define SA_INTERRUPT 0x00000010 /* Historical no-op. */ # define SA_INTERRUPT 0x00000010 /* Historical no-op. */
# define SA_NOMASK 0x00000020 /* Don't automatically block the signal when # define SA_NOMASK 0x00000020 /* Don't automatically block the signal when
@ -53,6 +53,7 @@ struct sigaction
/* Some aliases for the SA_ constants. */ /* Some aliases for the SA_ constants. */
# define SA_NODEFER SA_NOMASK # define SA_NODEFER SA_NOMASK
# define SA_RESETHAND SA_ONESHOT # define SA_RESETHAND SA_ONESHOT
# define SA_STACK SA_ONSTACK
#endif #endif
/* Values for the HOW argument to `sigprocmask'. */ /* Values for the HOW argument to `sigprocmask'. */