glibc/sysdeps/powerpc/nofpu/feupdateenv.c

54 lines
1.7 KiB
C
Raw Normal View History

2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
/* Install given floating-point environment and raise exceptions
(soft-float edition).
Copyright (C) 2002-2016 Free Software Foundation, Inc.
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
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 Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
2012-03-09 23:56:38 +00:00
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
#include "soft-fp.h"
#include "soft-supp.h"
#include <signal.h>
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
int
__feupdateenv (const fenv_t *envp)
{
int saved_exceptions;
/* Save currently set exceptions. */
saved_exceptions = __sim_exceptions_thread;
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
/* Set environment. */
Fix libm fesetenv namespace (bug 17748). Continuing the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of fesetenv by making it a weak alias of __fesetenv and making the affected code (including various copies of feupdateenv which also gets called from C90 functions) call __fesetenv. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). Also tested for ARM (soft-float) that fesetenv failures disappear from the linknamespace test results (fsetround and feupdateenv remain to be addressed to complete fixing bug 17748). [BZ #17748] * include/fenv.h (__fesetenv): Use libm_hidden_proto. * math/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/alpha/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/arm/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/hppa/fpu/fesetenv.c (fesetenv): Likewise. * sysdeps/i386/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/ia64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/m68k/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/mips/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/powerpc/nofpu/fesetenv.c (__fesetenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c (__fesetenv): Likewise. * sysdeps/s390/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/sh/sh4/fpu/fesetenv.c (fesetenv): Likewise. * sysdeps/sparc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/tile/math_private.h (__fesetenv): New inline function. * sysdeps/x86_64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/generic/math_private.h (default_libc_fesetenv): Use __fesetenv instead of fesetenv. (libc_feresetround_noex_ctx): Likewise. * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Likewise.
2015-01-06 23:36:20 +00:00
__fesetenv (envp);
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
/* Raise old exceptions. */
__sim_exceptions_thread |= saved_exceptions;
SIM_SET_GLOBAL (__sim_exceptions_global, __sim_exceptions_thread);
if (saved_exceptions & ~__sim_disabled_exceptions_thread)
raise (SIGFPE);
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
return 0;
}
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__feupdateenv, __old_feupdateenv)
compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
2002-10-19 Roland McGrath <roland@redhat.com> * config.make.in: Nix completely-soft nonsense. * configure.in: Likewise. Under --without-fp, use nofpu subdirectory of machine directories instead of fpu subdirectory. * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... * sysdeps/powerpc/nofpu/sim-full.c: ... here. * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fegetenv.c: ... here. * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... * sysdeps/powerpc/nofpu/fesetenv.c: ... here. * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... * sysdeps/powerpc/nofpu/fegetround.c: ... here. * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... * sysdeps/powerpc/nofpu/fesetround.c: ... here. * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... * sysdeps/powerpc/nofpu/fenv_const.c: ... here. * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... * sysdeps/powerpc/nofpu/soft-supp.h: ... here. * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... * sysdeps/powerpc/nofpu/Versions: ... here, new file.
2002-10-19 20:06:29 +00:00
#endif
Fix libm feupdateenv namespace (bug 17748). Concluding the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of feupdateenv by making it a weak alias for __feupdateenv and making the affected code call __feupdateenv. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). Also tested for ARM (soft-float) that the math.h linknamespace tests now pass. [BZ #17748] * include/fenv.h (__feupdateenv): Use libm_hidden_proto. * math/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/aarch64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/arm/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/tile/math_private.h (__feupdateenv): New inline function. * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/generic/math_private.h (default_libc_feupdateenv): Call __feupdateenv instead of feupdateenv. (default_libc_feupdateenv_test): Likewise. (libc_feresetround_ctx): Likewise.
2015-01-07 19:01:20 +00:00
libm_hidden_def (__feupdateenv)
libm_hidden_ver (__feupdateenv, feupdateenv)
versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);