diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-09-20 09:48:01 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-09-20 09:48:01 +0000 |
commit | a0780919b48b7b966822f3513edd6cf131ad3d8d (patch) | |
tree | 4fbadfbb73b113800da2fd1b21ac45ce1fe41862 /sysdeps | |
parent | c53a89d434f518f99d5168e9c8693ac63777042a (diff) | |
download | glibc-a0780919b48b7b966822f3513edd6cf131ad3d8d.zip glibc-a0780919b48b7b966822f3513edd6cf131ad3d8d.tar.gz glibc-a0780919b48b7b966822f3513edd6cf131ad3d8d.tar.bz2 |
Update.
1998-09-20 09:37 Ulrich Drepper <drepper@cygnus.com>
* elf/Versions [GLIBC_2.1] (libc): Add __fpu_control.
* elf/elf.h: Add AT_FPUCW.
* elf/Makefile (dl-routines): Add fpu_control.
(elide-routines.os): Add fpu_control.
(rtld-routines): Add fpu_control.
* math/Makefile (aux): Remove fpu_control.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Handle AT_FPUCW.
(_dl_show_auxv): Likewise.
* sysdeps/unix/sysv/linux/init-first.c (init): Use __setfpucw only
if different from OS default.
* stdio-common/tstscanf.c: Add test case for (nil).
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/dl-sysdep.c | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/init-first.c | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c index 15f8555..120f362 100644 --- a/sysdeps/generic/dl-sysdep.c +++ b/sysdeps/generic/dl-sysdep.c @@ -28,6 +28,7 @@ #include <sys/mman.h> #include <elf/ldsodefs.h> #include <stdio-common/_itoa.h> +#include <fpu_control.h> #include <entry.h> #include <dl-machine.h> @@ -126,6 +127,9 @@ _dl_sysdep_start (void **start_argptr, case AT_HWCAP: _dl_hwcap = av->a_un.a_val; break; + case AT_FPUCW: + __fpu_control = av->a_un.a_val; + break; } /* Linux doesn't provide us with any of these values on the stack @@ -249,6 +253,12 @@ _dl_show_auxv (void) 16, 0), "\n", NULL); break; + case AT_FPUCW: + _dl_sysdep_message ("AT_FPUCW: ", + _itoa_word (av->a_un.a_val, buf + sizeof buf - 1, + 10, 0), + "\n", NULL); + break; } } diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c index 0931e99..4b7af46 100644 --- a/sysdeps/unix/sysv/linux/init-first.c +++ b/sysdeps/unix/sysv/linux/init-first.c @@ -60,8 +60,10 @@ init (int argc, char **argv, char **envp) the executable format. */ __personality (PER_LINUX); - /* Set the FPU control word to the proper default value. */ - __setfpucw (__fpu_control); + /* Set the FPU control word to the proper default value if the + kernel would use a different value. */ + if (__fpu_control != _FPU_DEFAULT) + __setfpucw (__fpu_control); } /* Save the command-line arguments. */ |