summaryrefslogtreecommitdiffstats
path: root/libm
Commit message (Collapse)AuthorAgeFilesLines
* Disable Clang, due to x86 LDBL_MANT_DIG errors.Chih-Hung Hsieh2014-09-041-0/+8
| | | | | | | | Clang -m32 has incorrect sizeof(long double) = 12. With -m64, LDBL_MANT_DIG is incorrect 64. BUG: 17163651 Change-Id: I4b157aa1a8572c3a10aece6070e119a292ab8e83
* Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.Elliott Hughes2014-08-291-2/+2
| | | | | Bug: 16874785 Change-Id: I8512f8be3fd149d8720c5c3b4657bedd5ce2b1d1
* Move the meat of <features.h> into <sys/cdefs.h>.Elliott Hughes2014-08-191-1/+0
| | | | | | | | This way it's a lot harder for us to screw up (since we should always be including <sys/cdefs.h> anyway). Bug: 14659579 Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53
* Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).Elliott Hughes2014-08-182-3/+4
| | | | | | | | | | | <features.h> is supposed to take user-settable stuff like _GNU_SOURCE and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in the C library headers. Instead, bionic used to unconditionally define _BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header files (which makes no sense whatsoever). Bug: 14659579 Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987
* Revert "Switch libm to building with clang."Elliott Hughes2014-07-112-18/+6
| | | | | | | | This reverts commit aadc4b2ff03b12142f2c6163266ebdb1df2a6e76. The patch broke x86. Change-Id: I0cda903732a685838bbd1877f94e1593a2a32acc
* Switch libm to building with clang.Elliott Hughes2014-07-102-6/+18
| | | | | Bug: 16211965 Change-Id: I81ec9706a4f2b5e8a840508a0f711cd25a5826ca
* Revert "Revert "Prevent symbols from libgcc from being reexported.""Dan Albert2014-06-241-0/+7
| | | | | | This reverts commit 4e4e1a5d78ff6dd9394b9b116c012046da409e99. Change-Id: I8e78c3a59598e052e02965dd37b3fba8f567eed9
* Revert "Prevent symbols from libgcc from being reexported."Dan Albert2014-06-231-7/+0
| | | | | | This reverts commit 65e80cf62200085f72c1c081aea2d6e9b800cde2. Change-Id: I5f94b123f73db8d0b03cd71a5cffa0662776a017
* Prevent symbols from libgcc from being reexported.Dan Albert2014-06-211-0/+7
| | | | | | | | Since this was not done earlier, there are binary compatibility concerns that prevent us from being able to apply this to LP32. Bug: 11156955 Change-Id: Ie717c3ae4b81c749548a45a993c834e109700b27
* Merge "Add a flag control that PRIVATE libm can be chosen"Elliott Hughes2014-06-171-0/+2
|\
| * Add a flag control that PRIVATE libm can be chosenXiaokang, Qin2013-01-141-0/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I080456a2c45ac870965c25552c5821875568fe9b Author: Xiaokang, Qin <xiaokang.qin@intel.com> Signed-off-by: Xiaokang, Qin <xiaokang.qin@intel.com> Signed-off-by: Shuo Gao <shuo.gao@intel.com> Signed-off-by: Bruce Beare <bruce.j.beare@intel.com> Signed-off-by: Jack Ren <jack.ren@intel.com> Author-tracking-BZ: 63396
* | Merge "Move mips fenv implementation details into fenv.c."Elliott Hughes2014-06-092-18/+17
|\ \
| * | Move mips fenv implementation details into fenv.c.Elliott Hughes2014-06-092-18/+17
| | | | | | | | | | | | Change-Id: I2415e4808e40c2981d016c01969ba14ea22bf82e
* | | Move x86 fenv implementation details into fenv.c.Elliott Hughes2014-06-094-25/+25
|/ / | | | | | | Change-Id: I6cb8c730483c325dc3cb75c2b2fbdd2d8455a54c
* | Clean up the ARM fenv.h, moving implementation details into fenv.c.Elliott Hughes2014-06-092-18/+14
| | | | | | | | Change-Id: I919d35db27ec16a6f54a7a5c3c070f33f03d9bb9
* | AArch64: libm: Fix ARM64 fenv_t and refactor ARM64 libm implementation.Serban Constantinescu2014-06-092-135/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the ARM64 ABI for libm. fenv_t is now split in 32bit status and 32bit control. This mirrors the AArch64 FPU control and status registers (FPCR, FPSR). The patch also refactors the libm implementation for ARM64 into a finer grained control over the FPU registers. Bionic-benchmarks has been expanded with 3 more benchmarks for floating point operations. The new libm implementation for ARM64 performs better over all the math benchmarks available. Change-Id: I2a7f81d6b4e55c91f8a63a4c69614fc8b1bcf2db Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* | Workaround the GCC "(long)fn -> lfn" optimization bug.Ben Cheng2014-05-291-2/+5
| | | | | | | | | | | | | | | | Pass "-fno-builtin-rint -fno-builtin-rintl -fno-builtin-rintf" to avoid generating self recursions in lrint, lrintl, and lrintf. BUG: 14225968 Change-Id: Iffc4d8f0692580d636a529f4c8aa9a7a10d7acd8
* | Use -fvisibility=hidden to build libm.Elliott Hughes2014-05-193-1/+9
| | | | | | | | | | Bug: 11156955 Change-Id: I77b7772a44313a1eb3970f5d2c8e2af63690efa4
* | Declare sincos/sincosf/sincosl in <math.h>.Elliott Hughes2014-05-081-0/+7
| | | | | | | | Change-Id: If7b98f98c7ab4d3d77d310be082bff64512d51a8
* | Fix <math.h> to quieten most of our warnings.Elliott Hughes2014-05-052-35/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've reported the wcsftime bug upstream, but we really just want to use -D to ensure the buggy code isn't built. (I've also brought our strftime a bit closer to upstream now we have the right define.) I don't think upstream is likely to fix all their sign-compare and uninitialized warnings, so let's just silence them. As for libm, again upstream isn't likely to fix all their warnings, and silencing those made the ones that were our fault stand out. I've fixed our <math.h> to fix the warnings caused by our lack of definitions for the non-imprecise long-double functions. I checked the C99 standard, and all these functions are there. Change-Id: Iee8e1182c1db375058fb2c451eceb212bab47a37
* | Update the NOTICE files and improve the script slightly.Elliott Hughes2014-05-051-26/+52
| | | | | | | | Change-Id: Ia131634cd97ca9523e1b63dce41f66247cbaa311
* | Clean-up _fpmath and fake_long_doublesCalin Juravle2014-04-2312-521/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - promoted IEEEld2bits to fpmath since most of the where the same for diffrent archs - removed _fpmath - reinstated weak_references - moved isfinite and isnormal to libc - clean up fake_long_doubles - clean up some useless ifdefs - added missing nexttoward* tests Bug: 14134235 Change-Id: I95639c4885653fe47fd7dc0570ee5bb3389bbc6b
* | Regenerate the NOTICE files.Elliott Hughes2014-04-161-27/+89
| | | | | | | | Change-Id: Iac666f69b930e31bbeac3438812d544c6af55b0f
* | Fix arm64 floating point definitions.Elliott Hughes2014-04-142-23/+13
| | | | | | | | Change-Id: I6836da8fc9f66465435a21c51cb18851e20e9645
* | Reimplement isinf/isnan/fpclassify.Elliott Hughes2014-04-145-239/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also move isinf and isnan into libc like everyone else. Also move fpclassify to libc like the BSDs (but unlike glibc). We need this to be able to upgrade our float/double/long double parsing to gdtoa. Also add some missing aliases. We now have all of: isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl, isinf, __isinf, isinff, __isinff, isinfl, __isinfl, __fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl. Bug: 13469877 Change-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d
* | Emit warnings when linking against imprecise math functionsCalin Juravle2014-04-023-79/+27
| | | | | | | | Change-Id: I3da7b8396a64d7899fcb89452c879806a8a511ff
* | Fix LP64 libm for 128-bit long doublesCalin Juravle2014-03-2421-73/+2747
| | | | | | | | | | | | | | | | | | | | | | | | | | * reworked amd64/_fpmath.h and arm64/_fpmath.h to support 128-bit long doubles. * improved tests to cover long double cases * made modfl an alias for LP32 Tests pass on x86, x86_64, arm, arm64 and mips. Bug: 12921273 Change-Id: Ibe39acde57972447a8950fa45b1e702acc68ebeb
* | Update libm to the upstream head (2014.03.13)Calin Juravle2014-03-134-100/+72
| | | | | | | | | | | | | | The most relevant changes are the ones in s_erff.c which should improve the overall speed of exececution and the maximum error in ULP. Change-Id: I7bd867f902db418db67f02cd58578624357b1ee8
* | Update the NOTICE files.Elliott Hughes2014-03-061-0/+26
| | | | | | | | Change-Id: Ie72a01cddd5b813393656f603689e497b0f88ddd
* | Fix x86_64 buildPavel Chupin2014-02-282-2/+2
| | | | | | | | | | | | | | | | Fix types after recent update: https://android-review.googlesource.com/#/c/83435/ Change-Id: I17ed28af84b7adeb8572e18834e66f3264ec061d Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
* | Fix mips buildCalin Juravle2014-02-261-1/+1
| | | | | | | | Change-Id: Ica843d387e115d0b27afd961af73237ec9109ed9
* | Moved to a more openbsd-like fenv.hCalin Juravle2014-02-2613-1058/+1039
| | | | | | | | | | | | | | | | Factored out common declarations to include/fenv.h and pushed the implementation to .c files. Bug: 11050744 Change-Id: I446b13cc4bc599d328343a8d392b07de280f6304
* | Clean up various warnings in bionic.Elliott Hughes2014-02-181-0/+3
| | | | | | | | Change-Id: Ic57541d0a567fd4ae79f0ad59b2ffde1130eb7d2
* | Merge "Remove <sys/_types.h>."Elliott Hughes2014-02-081-3/+4
|\ \
| * | Remove <sys/_types.h>.Elliott Hughes2014-02-071-3/+4
| | | | | | | | | | | | | | | Bug: 12213562 Change-Id: I0d10664f9da60739bdbad0408be0dd61eea3c1fe
* | | [MIPS64] libc/libm supportChris Dearman2014-02-062-4/+35
|/ / | | | | | | | | | | | | | | libc/libm support for MIPS64 targets Change-Id: I8271941d418612a286be55495f0e95822f90004f Signed-off-by: Chris Dearman <chris.dearman@imgtec.com> Signed-off-by: Raghu Gandham <raghu.gandham@imgtec.com>
* | Use arch-specific LOCAL_ variables to build libm.Ying Wang2014-02-031-19/+21
| | | | | | | | | | | | | | | | Use arch-specific LOCAL_ variables to build libm for both TARGET_ARCH and TARGET_2ND_ARCH. Bug: 11654773 Change-Id: I6da794ba722bb68e7484d8869c6eb0425b7d17cb
* | bionic: rename aarch64 target to arm64Colin Cross2014-01-234-3/+3
| | | | | | | | | | | | | | Rename aarch64 build targets to arm64. The gcc toolchain is still aarch64. Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
* | Regenerate the NOTICE files.Elliott Hughes2014-01-072-27/+53
| | | | | | | | | | | | | | Also standardize the orthography in a few places to reduce near-duplicates in the NOTICE files. Change-Id: I347c75e817be61ec1b9c5b4b96226feedc8d09ab
* | Fix __isnanl on aarch64.Elliott Hughes2013-12-191-1/+1
| | | | | | | | | | | | This fixes the math.__isnanl, math.powl, and math.fdiml tests. Change-Id: I0086e4a1a82d0e2708fa07cf580a6d9778c548f2
* | We actually have modfl.Elliott Hughes2013-12-192-3/+3
| | | | | | | | Change-Id: I22bb4d14f99a418819f2941c2dfec49094807c5f
* | Don't use weak aliases in libm.Elliott Hughes2013-12-182-2/+20
| | | | | | | | | | | | | | The aarch64 toolchain doesn't support them, and we were already implementing most of the fake long-double functions differently anyway. Change-Id: I4a2f2df81972ee9c34ddfe96cec81b126506d881
* | AArch64: Initial AArch64 port of libmSerban Constantinescu2013-12-164-0/+326
| | | | | | | | | | | | | | This patch adds intial support for AArch64 to bionic's libm. Change-Id: I9ae0f895bbdd7fe67815e6ca1ead627581163a27 Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* | Switch to upstream sleep(3) and usleep(3).Elliott Hughes2013-11-202-1/+32
| | | | | | | | | | | | | | | | | | | | | | Also fix the signature of usleep, and the definition of useconds_t which should be unsigned, as the 'u' in its name implies. This patch also cleans up the existing FreeBSD hacks by moving the libm stuff from <sys/cdefs.h> to a libm-private header, and adding comments about the hacks we use to build FreeBSD source. Change-Id: Ibe5067a380502df94a0a3a7901969b35411085b6
* | Fix the x86_64 fenv.h.Elliott Hughes2013-10-021-5/+35
| | | | | | | | | | | | | | We should clean all the fenv.h files up, but not now. I've raised bug 11050744 as a reminder. Change-Id: I640c15b0f0477ec1a7891c031860404875bbe4b5
* | Fix libm build for x86_64.Elliott Hughes2013-10-013-77/+438
| | | | | | | | Change-Id: If89da2d5c3d9a88f78ffd8b260ad0f2fd391c608
* | x86_64: libm fixesPavel Chupin2013-10-013-0/+222
| | | | | | | | | | | | | | | | * Makefile update for x86_64 target * amd64 arch files Change-Id: I8f17e3338bffd89a3086fbddd1e91bb4619eac1b Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
* | Take upstream libm changes.Elliott Hughes2013-06-1221-22/+383
| | | | | | | | | | | | Mostly workarounds for GCC and Clang bugs. Change-Id: I4ef428a42d4ac6d622659053711a8cc416925727
* | Regenerate NOTICE files.Elliott Hughes2013-03-071-90/+0
| | | | | | | | | | | | Also clean up some obsolete cruft. Change-Id: Iec3b36f6607f7a08b72de99294ed5b6cd910dd5f
* | Revert "Pull the pthread_key_t functions out of pthread.c."Elliott Hughes2013-02-111-36/+46
| | | | | | | | | | | | | | | | This reverts commit ad59322ae432d11ff36dcf046016af8cfe45fbe4 somehow my unfinished libm/Android.mk change got into here. Change-Id: I46be626c5269d60fb1ced9862f2ebaa380b4e0af