about summary refs log tree commit diff
path: root/sysdeps/powerpc/nofpu
Commit message (Collapse)AuthorAgeFilesLines
* Fix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261).Joseph Myers2014-08-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | On powerpc, floating-point environment macros are defined as pointers to constants in the library that contain the bit-patterns of the desired environment, instead of being magic constants cast to pointer type. For soft-float, the bit-patterns used for fenv_t are not laid out the same as for hard-float. (e500 has a third layout used; that's not an ABI issue because these values are only meaningful within a single process, all of whose glibc libraries must come from the same build of glibc.) While the __fe_dfl_env value for soft-float was appropriate for the soft-float fenv_t representation, the other two constants had the same bit-patterns as for hard-float. Those bit patterns had the effect of having exceptions already raised, causing math/test-fenv-return to fail; this patch fixes the patterns used. (__fe_nonieee_env also had exceptions unmasked, though they should be masked to match hard-float semantics. Since there is no separate non-IEEE mode for soft-float, it's most appropriate for __fe_nonieee_env to be the same as __fe_dfl_env; this patch makes it an alias.) Tested for powerpc-nofpu. [BZ #17261] * sysdeps/powerpc/nofpu/fenv_const.c (__fe_enabled_env): Change value to 0. (__fe_nonieee_env): Define as an alias for __fe_dfl_env.
* Regenerate powerpc-nofpu libm-test-ulps.Joseph Myers2014-06-301-99/+1326
| | | | | | This patch regenerates libm-test-ulps for powerpc-nofpu. * sysdeps/powerpc/nofpu/libm-test-ulps: Regenerated.
* Remove shlib-versions ABI names support.Joseph Myers2014-06-271-1/+0
| | | | | | | | | | | | | | | | | | | | shlib-versions files can contain ABI lines that map triplets to a canonical ABI name. This name was once used for various purposes where test baseline files for different ABIs went in a single directory; now these purposes use sysdeps files, generation of headers which have per-ABI variants uses abi-variants and related Makefile variables and the shlib-versions ABI names are unused. This patch duly removes those lines and associated build system support for them. Tested for x86_64 (both a full testsuite run and confirming the installed shared libraries are unchanged by the patch). * Makeconfig ($(common-objpfx)soversions.mk): Do not generate abi-name definition. * scripts/soversions.awk: Do not handle or generate ABI lines. * shlib-versions: Remove ABI entries. * sysdeps/powerpc/nofpu/shlib-versions: Remove file. * sysdeps/x86_64/x32/shlib-versions: Remove ABI entry.
* Don't include individual test ulps in libm-test-ulps.Joseph Myers2014-03-051-12926/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As recently discussed <https://sourceware.org/ml/libc-alpha/2014-02/msg00670.html>, it doesn't seem particularly useful for libm-test-ulps files to contain huge amounts of data on ulps for individual tests; just the global maximum observed ulps for each function, together with the verification of exceptions, errno and special results such as infinities and NaNs for each test, suffices to verify that a function's behavior on the given test inputs is within the expected accuracy. Removing this data reduces source tree churn caused by updates to these files when libm tests are added, and reduces the frequency with which testsuite additions actually need libm-test-ulps changes at all. Accordingly, this patch removes that data, so that individual tests get checked against the global bounds for the given function and only generate an error if those are exceeded. Tested x86_64 (including verifying that if an ulps value is artificially reduced, the tests do indeed fail as they should and "make regen-ulps" generates the expected changes). * math/libm-test.inc (struct ulp_data): Don't refer to ulps for individual tests in comment. (libm-test-ulps.h): Don't refer to test_ulps in #include comment. (prev_max_error): New variable. (prev_real_max_error): Likewise. (prev_imag_max_error): Likewise. (compare_ulp_data): Don't refer to test names in comment. (find_test_ulps): Remove function. (find_function_ulps): Likewise. (find_complex_function_ulps): Likewise. (init_max_error): Take function name as argument. Look up ulps for that function. (print_ulps): Remove function. (print_max_error): Use prev_max_error instead of calling find_function_ulps. (print_complex_max_error): Use prev_real_max_error and prev_imag_max_error instead of calling find_complex_function_ulps. (check_float_internal): Take max_ulp parameter instead of calling find_test_ulps. Don't call print_ulps. (check_float): Update call to check_float_internal. (check_complex): Update calls to check_float_internal. (START): Pass argument to init_max_error. * math/gen-libm-test.pl (%results): Don't include "kind" information. (parse_ulps): Don't handle ulps of individual tests. (print_ulps_file): Likewise. (output_ulps): Likewise. * math/README.libm-test: Update. * manual/libm-err-tab.pl (parse_ulps): Don't handle ulps of individual tests. * sysdeps/aarch64/libm-test-ulps: Remove individual test ulps. * sysdeps/alpha/fpu/libm-test-ulps: Likewise. * sysdeps/arm/libm-test-ulps: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/ia64/fpu/libm-test-ulps: Likewise. * sysdeps/m68k/coldfire/fpu/libm-test-ulps: Likewise. * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Likewise. * sysdeps/microblaze/libm-test-ulps: Likewise. * sysdeps/mips/mips32/libm-test-ulps: Likewise. * sysdeps/mips/mips64/libm-test-ulps: Likewise. * sysdeps/powerpc/fpu/libm-test-ulps: Likewise. * sysdeps/powerpc/nofpu/libm-test-ulps: Likewise. * sysdeps/s390/fpu/libm-test-ulps: Likewise. * sysdeps/sh/libm-test-ulps: Likewise. * sysdeps/sparc/fpu/libm-test-ulps: Likewise. * sysdeps/tile/libm-test-ulps: Likewise. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. * sysdeps/hppa/fpu/libm-test-ulps: Remove individual test ulps.
* Regenerate powerpc-nofpu ulps (again).Joseph Myers2014-01-071-52/+64
|
* Fix soft-float ldbl-128ibm atan2l signs of zero results (bug 16390).Joseph Myers2014-01-031-0/+1
| | | | | | | | | | | This patch fixes bug 16390, incorrect signs of zero results from ldbl-128ibm atan2l, soft-float only. The problem is a longstanding GCC bug with fabsl not being correct for signed zero for soft float, and the fix is using -fno-builtin-fabsl as a workaround, as already done for various other source files. Tested powerpc-nofpu. * sysdeps/powerpc/nofpu/Makefile [$(subdir) = math] (CFLAGS-e_atan2l.c): Use -fno-builtin-fabsl.
* Regenerate powerpc-nofpu ulps.Joseph Myers2014-01-031-963/+7499
|
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-0123-23/+23
|
* Don't make soft-fp symbols compat symbols for powerpc-nofpu.Joseph Myers2013-12-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sysdeps/powerpc/powerpc32/libgcc-compat.S makes certain symbols that glibc once accidentally reexported from libgcc into compat symbols. Where the exports were purely accidental, this is the right thing to do. However, for powerpc-nofpu the soft-fp symbols are deliberately exported from libc, given public versions in sysdeps/powerpc/nofpu/Versions and used by libm in preference to the libgcc versions that do not support the software exceptions and rounding modes. The libc versions should also be usable by user programs, though normally libgcc gets linked in first (meaning, effectively, that the <fenv.h> functions are broken as regards their expected effects on user arithmetic). A longstanding todo item is to remove the functions in question from libgcc (when built with recent enough glibc) - that is, remove them from static libgcc and make them compat symbols in shared libgcc - so that this works properly (this is one of the items mentioned at <http://gcc.gnu.org/wiki/Software_floating_point> - parts of that page are obviously out of date, but this item still applies). Doing this requires first that the functions are actually available from libc for new links, not just as compat symbols. This patch stops the symbols in question being compat symbols for powerpc-nofpu. The nofpu Versions entries for them are removed (the symbols never were exported at GLIBC_2.3.2, only GLIBC_2.0, because the compat symbols took precedence). Tested powerpc-nofpu. The symbols are no longer compat symbols and libm.so now properly gets undefined references to them (resolved to libc.so) instead of the libgcc copies getting linked into libm as before. * sysdeps/powerpc/powerpc32/libgcc-compat.S [_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define as a macro and a compat symbol. [_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do not use .hidden. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf): Likewise. * sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi, __fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf from GLIBC_2.3.2.
* Add powerpc-nofpu/e500 support functions for atomic compound assignment and ↵Joseph Myers2013-11-286-1/+147
| | | | FLT_ROUNDS.
* Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271).Joseph Myers2013-11-281-0/+1
|
* Fix powerpc-nofpu build.Joseph Myers2013-11-251-0/+3
|
* Make powerpc-nofpu floating-point state thread-local (bug 15483).Joseph Myers2013-11-1917-54/+94
|
* Add e500 port.Joseph Myers2013-10-181-1/+8
|
* Extend powerpc-nofpu -fno-builtin-fabsl workaround to more files.Joseph Myers2013-10-101-0/+6
|
* Move powerpc ports pieces to libc.Joseph Myers2013-10-0424-0/+8044
|
* sysdeps/powerpc/nofpu moved to ports cvs/fedora-glibc-20051003T2040Roland McGrath2005-10-0321-1567/+0
| | | | | | 2005-10-03 Roland McGrath <roland@redhat.com> * sysdeps/powerpc/nofpu: Directory removed, saved in ports repository.
* (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper2004-12-2221-0/+1567
|
* 2.5-18.1Jakub Jelinek2007-07-1221-1567/+0
|
* 2004-01-13 Daniel Jacobowitz <drow@mvista.com>Roland McGrath2004-01-172-7/+14
| | | | | | | | | | | * sysdeps/powerpc/nofpu/sim-full.c (__sim_exceptions) (__sim_disabled_exceptions, __sim_round_mode): Declare with hidden data and nocommon. * sysdeps/powerpc/nofpu/soft-supp.h (__sim_exceptions) (__sim_disabled_exceptions, __sim_round_mode): Use libc_hidden_proto. * sysdeps/powerpc/soft-fp/sfp-machine.h (__sim_exceptions) (__sim_disabled_exceptions, __sim_round_mode): Likewise.
* Update.Ulrich Drepper2003-12-061-1/+1
| | | | | | | | 2003-12-04 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/fpu/fgetexcptflg.c (__fegetexceptflag): Add masking of fenv. * sysdeps/powerpc/nofpu/fgetexcptflg.c (__fegetexceptflag): Likewise.
* * sysdeps/alpha/fpu/libm-test-ulps: Update.Roland McGrath2003-03-231-10/+10
| | | | | | | | | | | | | | * sysdeps/arm/libm-test-ulps: Update. * sysdeps/hppa/fpu/libm-test-ulps: Update. * sysdeps/ia64/fpu/libm-test-ulps: Update. * sysdeps/mips/fpu/libm-test-ulps: Update. * sysdeps/powerpc/nofpu/libm-test-ulps: Update. * sysdeps/powerpc/fpu/libm-test-ulps: Update. * sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update. * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update. * sysdeps/sh/sh4/fpu/libm-test-ulps: Update. * sysdeps/s390/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
* Update.Ulrich Drepper2003-02-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | 2003-02-20 Ulrich Drepper <drepper@redhat.com> * version.h (VERSION): Bump to 2.3.2. * elf/Makefile (distribute): Add reldep9.c, tst-array1.exp, tst-array2.exp, tst-array4.exp, tst-array2dep.c, check-textrel.c, and dl-sysdep.h. * sysdeps/generic/Dist: Add sysdep-cancel.h. * sysdeps/powerpc/nofpu/Dist: Add soft-supp.h. * sysdeps/unix/Dist: Add s-proto-bp.S and s-proto-cancel.S. * sysdeps/unix/sysv/linux/Dist: Add pathconf.h. * sysdeps/unix/sysv/linux/i386/Dist: Add bp-thunk.h. * sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist: Add fe_nomask.c and ucontext_i.h. * Makefile (distribute): Add include/stubs-prologue.h, include/gnu/stubs.h, scripts/merge-abilist.awk, and scripts/extract-abilist.awk. 2002-02-20 Paolo Bonzini <bonzini@gnu.org>
* Update.Ulrich Drepper2003-02-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2002-07-24 Philip Blundell <philb@gnu.org> * sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV on unknown systems. 2003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/powerpc/powerpc32/atomicity.h: Remove compiler workaround. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_NEW_PRCTL_SYSCALL): Defined for ppc32 too. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Use prctl if possible. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short interprocedure branches. * sysdeps/powerpc/soft-fp/Dist (sim-full.c, fenv_const.c): Move to... * sysdeps/powerpc/nofpu/Dist: ...here. * sysdeps/unix/sysv/linux/powerpc/Dist (fe_nomask.c): Move to... * sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: ...here. * sysdeps/unix/sysv/linux/s390/s390-64/Dist (kernel_stat.h): Delete. * sysdeps/unix/sysv/linux/sparc/Dist (bits/utmpx.h): Delete. * sysdeps/unix/sysv/linux/x86_64/Dist (bits/utmpx.h): Delete.
* * configure: Regenerated (using Autoconf 2.54).Roland McGrath2002-10-1920-0/+1557
* sysdeps/alpha/elf/configure: Likewise. * sysdeps/generic/configure: Likewise. * sysdeps/i386/elf/configure: Likewise. * sysdeps/ia64/elf/configure: Likewise. * sysdeps/mach/hurd/configure: Likewise. * sysdeps/mach/configure: Likewise. * sysdeps/unix/configure: Likewise. * sysdeps/unix/common/configure: Likewise. * sysdeps/unix/sysv/aix/configure: Likewise. * sysdeps/unix/sysv/linux/configure: Likewise. * sysdeps/unix/sysv/linux/mips/configure: Likewise. * sysdeps/x86_64/elf/configure: Likewise. * 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 Bruno Haible <bruno@clisp.org> * sysdeps/unix/bsd/bsd4.4/freebsd/sys/sysmacros.h: New file. 2002-10-18 Roland McGrath <roland@redhat.com> * io/Makefile (routines): Add lchmod. * io/sys/stat.h [__USE_BSD] (lchmod): Declare it. * sysdeps/generic/lchmod.c: New file. * sysdeps/mach/hurd/lchmod.c: New file. * io/Versions (libc: GLIBC_2.3.2): New set, add lchmod.