diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-06-27 23:09:40 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-06-27 23:09:40 +0000 |
commit | bca973bcd954bb43e0d55b6fe3dd0648df52466a (patch) | |
tree | e1a60757fe61908da054c878b2722265cd66570f /sysdeps | |
parent | ae1025be4026d5d4beb605541854d800ce05ee4e (diff) | |
download | glibc-bca973bcd954bb43e0d55b6fe3dd0648df52466a.zip glibc-bca973bcd954bb43e0d55b6fe3dd0648df52466a.tar.gz glibc-bca973bcd954bb43e0d55b6fe3dd0648df52466a.tar.bz2 |
Update.cvs/libc-ud-970627
1997-06-27 20:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/quota.h: Add <asm/types.h>.
Reported by a sun <asun@zoology.washington.edu>.
* libc.map: Add _rpc_dtablesize. Reported by Thorsten Kukuk.
* db/makedb.c: Exit with error if number of option is incorrect.
* math/Makefile (tests): Add test-fenv.
* math/test-fenv.c: New file. Test for exception handling functions.
Written mainly by Andreas Jaeger.
* sysdeps/i386/fpu/fraiseexcpt.c: Correct implementation.
* sysdeps/mach/hurd/abi-tag.h: Set tag to 1 for Hurd and kernel
compatibility version to 0. Reported by Roland McGrath.
1997-06-27 18:49 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/standalone/brk.c (__NONE_set_memvals): Correct typo.
* sysdeps/standalone/arm/bits/errno.h: Add ENOTDIR.
* sysdeps/stub/sys/param.h: Add definition of MAX and MIN.
1997-06-27 10:44 Fila Kolodny <fila@ibi.com>
* sysdeps/mach/hurd/dl-sysdep.c: Make _dl_sysdep_read_whole_file weak.
1997-06-27 00:51 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-open.c (_dl_open): Check versions of all newly loaded
objects, including dependencies.
* elf/dl-runtime.c (fixup): Always use version information if
available.
1997-06-26 12:25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/bits/nan.h: Renamed from sysdeps/m68k/nan.h.
1997-06-26 11:40 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/regex.c (DEBUG_POP): Assume parameter to be pointer to
int, not pointer to fail_stack_elt_t.
(PUSH_FAILURE_POINT): Fix all formats in debugging messages. Fix
type of this_reg.
(POP_FAILURE_POINT): Likewise. Fix type of failure_id.
(re_match_2_internal): Pass NULL, not 0, to PUSH_FAILURE_POINT.
1997-06-27 02:17 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/syscalls.list: Add quotactl.
Reported by a sun.
* manual/lgpl.texinfo: Update copyright.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/fraiseexcpt.c | 51 | ||||
-rw-r--r-- | sysdeps/m68k/bits/nan.h (renamed from sysdeps/m68k/nan.h) | 0 | ||||
-rw-r--r-- | sysdeps/mach/hurd/abi-tag.h | 15 | ||||
-rw-r--r-- | sysdeps/mach/hurd/dl-sysdep.c | 1 | ||||
-rw-r--r-- | sysdeps/standalone/arm/bits/errno.h | 1 | ||||
-rw-r--r-- | sysdeps/standalone/brk.c | 6 | ||||
-rw-r--r-- | sysdeps/stub/getdomain.c | 34 | ||||
-rw-r--r-- | sysdeps/stub/sys/param.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/quota.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 1 |
10 files changed, 60 insertions, 54 deletions
diff --git a/sysdeps/i386/fpu/fraiseexcpt.c b/sysdeps/i386/fpu/fraiseexcpt.c index 90e992a..c6cd6d6 100644 --- a/sysdeps/i386/fpu/fraiseexcpt.c +++ b/sysdeps/i386/fpu/fraiseexcpt.c @@ -32,44 +32,67 @@ feraiseexcept (int excepts) /* First: invalid exception. */ if ((FE_INVALID & excepts) != 0) { - /* One example of a invalid operation is 0 * Infinity. */ - double d = 0.0 * HUGE_VAL; + /* One example of a invalid operation is 0.0 / 0.0. */ + double d; + __asm__ ("fldz; fdiv %%st, %%st(0); fwait" : "=t" (d)); (void) &d; - /* Now force the exception. */ - __asm__ ("fwait"); } /* Next: division by zero. */ if ((FE_DIVBYZERO & excepts) != 0) { double d; - __asm__ ("fld1; fldz; fdivp %%st, %%st(1); fwait" : "=t" (d)); + __asm__ ("fldz; fld1; fdivp %%st, %%st(1); fwait" : "=t" (d)); (void) &d; } /* Next: overflow. */ if ((FE_OVERFLOW & excepts) != 0) { - long double d = LDBL_MAX * LDBL_MAX; - (void) &d; - /* Now force the exception. */ - __asm__ ("fwait"); + /* There is no way to raise only the overflow flag. Do it the + hard way. */ + fenv_t temp; + + /* Bah, we have to clear selected exceptions. Since there is no + `fldsw' instruction we have to do it the hard way. */ + __asm__ ("fnstenv %0" : "=m" (*&temp)); + + /* Set the relevant bits. */ + temp.status_word |= FE_OVERFLOW; + + /* Put the new data in effect. */ + __asm__ ("fldenv %0" : : "m" (*&temp)); + + /* And raise the exception. */ + __asm__ ("fwait"); } /* Next: underflow. */ if ((FE_UNDERFLOW & excepts) != 0) { - long double d = LDBL_MIN / 16.0; - (void) &d; - /* Now force the exception. */ - __asm__ ("fwait"); + /* There is no way to raise only the overflow flag. Do it the + hard way. */ + fenv_t temp; + + /* Bah, we have to clear selected exceptions. Since there is no + `fldsw' instruction we have to do it the hard way. */ + __asm__ ("fnstenv %0" : "=m" (*&temp)); + + /* Set the relevant bits. */ + temp.status_word |= FE_UNDERFLOW; + + /* Put the new data in effect. */ + __asm__ ("fldenv %0" : : "m" (*&temp)); + + /* And raise the exception. */ + __asm__ ("fwait"); } /* Last: inexact. */ if ((FE_INEXACT & excepts) != 0) { long double d; - __asm__ ("fld1; fldpi; fdivp %%st, %%st(1); fwait" : "=t" (d)); + __asm__ ("fmul %%st, %%st(0); fwait" : "=t" (d) : "0" (LDBL_MAX)); (void) &d; } } diff --git a/sysdeps/m68k/nan.h b/sysdeps/m68k/bits/nan.h index b4efddf..b4efddf 100644 --- a/sysdeps/m68k/nan.h +++ b/sysdeps/m68k/bits/nan.h diff --git a/sysdeps/mach/hurd/abi-tag.h b/sysdeps/mach/hurd/abi-tag.h index 0cf6e80..0498d6e 100644 --- a/sysdeps/mach/hurd/abi-tag.h +++ b/sysdeps/mach/hurd/abi-tag.h @@ -1,5 +1,12 @@ -#define HURD_MAJOR_VERSION 0 -#define HURD_MINOR_VERSION 2 +#define ABI_HURD_TAG 1 -#define ABI_TAG ((HURD_MAJOR_VERSION << 24) + \ - (HURD_MINOR_VERSION << 16)) +#define ABI_HURD_MAJOR 0 +#define ABI_HURD_MINOR 0 +#define ABI_HURD_PATCH 0 + +/* Don't use `|' in this expression, it is a comment character in the + assembler. */ +#define ABI_TAG ((ABI_HURD_TAG << 24) + \ + (ABI_HURD_MAJOR << 16) + \ + (ABI_HURD_MINOR << 8) + \ + (ABI_HURD_PATCH << 0)) diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index 0f26abe..68c4cb3 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -665,6 +665,7 @@ _exit (int status) /* Read the whole contents of FILE into new mmap'd space with given protections. The size of the file is returned in SIZE. */ void * +weak_function _dl_sysdep_read_whole_file (const char *file, size_t *size, int prot) { struct stat stat; diff --git a/sysdeps/standalone/arm/bits/errno.h b/sysdeps/standalone/arm/bits/errno.h index 8090a80..49a4998 100644 --- a/sysdeps/standalone/arm/bits/errno.h +++ b/sysdeps/standalone/arm/bits/errno.h @@ -47,6 +47,7 @@ #define EPROTOTYPE 19 #define ESRCH 20 #define EPERM 21 +#define ENOTDIR 22 #endif #define __set_errno(val) errno = (val) diff --git a/sysdeps/standalone/brk.c b/sysdeps/standalone/brk.c index 5985b30..6ee9935 100644 --- a/sysdeps/standalone/brk.c +++ b/sysdeps/standalone/brk.c @@ -46,8 +46,10 @@ int __C_heap_size; static #endif void -__NONE_set_memvals (argc, argv, envp), - int argc; char **argv; char **envp; +__NONE_set_memvals (argc, argv, envp) + int argc; + char **argv; + char **envp; { __rorig = diff --git a/sysdeps/stub/getdomain.c b/sysdeps/stub/getdomain.c deleted file mode 100644 index ad7d72b..0000000 --- a/sysdeps/stub/getdomain.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 1994, 1995, 1996, 1997 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 - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <errno.h> -#include <unistd.h> - -/* Put the name of the current YP domain in no more than LEN bytes of NAME. - The result is null-terminated if LEN is large enough for the full - name and the terminator. */ -int -getdomainname (name, len) - char *name; - size_t len; -{ - __set_errno (ENOSYS); - return -1; -} - -stub_warning (getdomainname) diff --git a/sysdeps/stub/sys/param.h b/sysdeps/stub/sys/param.h index b1ea52a..1dafdda 100644 --- a/sysdeps/stub/sys/param.h +++ b/sysdeps/stub/sys/param.h @@ -8,3 +8,7 @@ #include <limits.h> #define MAXSYMLINKS 1 + +/* Macros for min/max. */ +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h index d897b79..3a1c696 100644 --- a/sysdeps/unix/sysv/linux/sys/quota.h +++ b/sysdeps/unix/sysv/linux/sys/quota.h @@ -1,2 +1,3 @@ /* The kernel header file contains all declarations and definitions. */ +#include <asm/types.h> #include <linux/quota.h> diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index c7180cc..5d91a2e 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -32,6 +32,7 @@ pause - pause 0 __libc_pause pause personality init-first personality 1 __personality personality pipe - pipe 1 __pipe pipe query_module EXTRA query_module 5 query_module +quotactl EXTRA quotactl 4 quotactl s_getdents EXTRA getdents 3 __getdents s_getpriority getpriority getpriority 2 __syscall_getpriority s_poll poll poll 3 __syscall_poll |