History log of /bionic/libm/Android.mk
Revision Date Author Comments
4d0d31475f1584ed7bf4a52ce784c62c30ad522c 05-Jun-2015 Dmitriy Ivanov <dimitry@google.com> Add versions to libm.so symbols

Bug: http://b/20139821
Change-Id: Ifdfcac62d59eb8f0985990aa8512046ecb87449e
(cherry picked from commit 636f5ddddcd9e0bcfc7139b0905ebc92d4adc40a)
69a5fb951d69689dedd83cb033ae3dcd0ef05b65 16-May-2015 Dmitriy Ivanov <dimitry@google.com> Apply work around b/19059885 to x86

Bug: http://b/19059885
Bug: http://b/21203348
Change-Id: Ic375e9f877d68de8f866d17362879a7dde638465
f7009f450e596dc76352da7ceefc8caeeb74ff14 08-May-2015 Dmitriy Ivanov <dimitry@google.com> Switch libc/libcstdc++/libm to hash-style=both

Bug: http://b/19059885
Change-Id: Ie42703d91f291fd689a1cf9c35bcab5c487b9a84
(cherry picked from commit 88e777d6f46709abebab88421e8c4ea7a9e3d9c4)
2e16d2cf1e477af1db92efde389a5ce0a8e6fbb3 13-Mar-2015 Dmitriy Ivanov <dimitry@google.com> Switch libc and libm to sysv-only hash style

Bug: 19059885
Change-Id: I60a23dc5f9c756994d566818332ca42b305b4a05
1156508265422f407c7072788ce6c32c35411941 10-Mar-2015 Goran Jakovljevic <goran.jakovljevic@imgtec.com> Generate gnu hash for arm only

Fixes build failure caused by:
https://android-review.googlesource.com/#/c/139660

As previously discussed [1], MIPS does not support GNU-style ELF hashes.

[1] https://android-review.googlesource.com/#/c/49282/2/tests/Android.mk

Change-Id: I9a7966eebfd1ef0a587a20b71faefde38e84ab62
4a55c46d308deae70d7d8669c50514d521813dc2 10-Mar-2015 Dmitriy Ivanov <dimitry@google.com> Generate sysv hash for libc, libstdc++ and libm

Bug: 19059885
Change-Id: I35e2a9cd0bb3914d9d0c82d163bfaf0fff844667
5d4f0e6a26b66f1dab8d20a65af4469c6dd7370d 31-Oct-2014 Jingwei Zhang <jingwei.zhang@intel.com> Add the optimized implementation of 18 math functions for x86 and x86_64 respectively

Change-Id: I31bf601448a9427f825517f3a0ff24de47f49bfa
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
45789b63db5c186f1ccac23093c198ae8b0dd921 12-Nov-2014 James Rose <james.rose@intel.com> libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64

Add hardware implementations for sqrt, ceil, floor and trunc for
x86 and x86_64. These routines, and in particular sqrt are much
faster than the BSD C language versions of these functions.

Fixed whitespace errors.

Revised x86 versions with respect to alignment.
Rebased for Android 5.0

Change-Id: I86bdb520ce5e589b0cf63778f353fbd3263c8f0e
Author: James Rose <james.rose@intel.com>
Signed-off-by: James Rose <james.rose@intel.com>
c78fa26d47987d7e29245199e66b9cb45020be10 23-Jul-2014 Shu Zhang <chazhang@nvidia.com> libm: arm: add arm specific sqrt and sqrtf

Add arm specific optimized sqrt and sqrtf.

Change-Id: I8ea417fc98a800c8cf4f47a0c6668c51d927b1dc
32936c895d4407f7444c09ef4b0fd0ea532feb00 18-Feb-2015 Amaury Le Leyzour <amaury.leleyzour@arm.com> Add aarch64 instructions wherever possible

fma, sqrt and various rounding functions have aarch64 instruction equivalent

Change-Id: I1284f31b9f78f914281e5563b8d44db8362b627d
3a629af0add238c2801b64aade52ee983c9012bc 23-Jul-2014 Shu Zhang <chazhang@nvidia.com> libm: arm: Add arm specific floor() optimization

Add arm specific floor() implementation which avoids VMSR and VMRS
instructions.

Change-Id: Ibd4cd7147aa2f98c9b5bbaf74948843ea619dba4
3d535d23121c2656e6c82342fcf215cdc4ca385d 11-Feb-2015 Duane Sand <duane.sand@imgtec.com> [MIPS] Fix Mips64 build of libm

Change-Id: Ib742b408d4f21d5ec8d455a3fea7c08165c7f321
d40d1a08cd3174e87bd806c999b8b5639a31723a 23-Jan-2015 Christopher Ferris <cferris@google.com> Cleanup the libm makefile.

Change-Id: I3d95f75da24ee3b064a9cce67586b0e6f32272d8
da194780b1ae4487aa630bef4e720694acf4da82 18-Dec-2014 Dan Albert <danalbert@google.com> Disable ASAN for more of our libraries.

Since ASAN depends on these libraries, we need to exclude them from
being instrumented.

Change-Id: I62005b6d04ee7b2283c4bd54ace5304386c67358
b8ee16f1dc1253e3f1c99b4a6b9df249515cd919 06-Nov-2014 Elliott Hughes <enh@google.com> Fix our <complex.h> support.

We build libm with -fvisibility=hidden, so we weren't exporting any
of the <complex.h> functions.

We also weren't building many of the functions anyway.

We were also missing the complex inverse trigonometric functions.

And because we didn't even have perfunctory "call each function once"
tests, we didn't notice that we weren't exporting any symbols, so this
patch adds at least that level of testing.

Change-Id: Ibcf2843f507126c51d134cc5fc8d67747e033a0d
e91d9cd4ad0916707e0717663694a5562bf11c78 16-Oct-2014 Dan Albert <danalbert@google.com> Don't use an STL for libm.

The default is none right now, but this will be needed when the
default becomes libc++.

Change-Id: Ib022adac2b9dc08fbfae830908128043cfffb91e
12e3f22c7c17d9d23e1720c9d23b9ee09c7528c6 01-Oct-2014 Dan Albert <danalbert@google.com> Add coverage flag for libm.

Change-Id: I195d38c5e1f50d1cc6d4353dc8857f11b803b7a3
755318548d787c7ca36901be064c69efba41c6cf 18-Sep-2014 Elliott Hughes <enh@google.com> Fix lgamma_r/lgammaf_r/lgammal_r for -0.

Upstream has implemented lgammal/lgammal_r for ld128, and fixed the
sign problem we reported with all the lgamma*_r functions and -0.

Bug: 17471883
Change-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc
c729d4f23771a01226c761423c6b35210dbb6ca7 13-Sep-2014 Elliott Hughes <enh@google.com> Get new coshl, sinhl, and tanhl implementations from upstream.

Change-Id: I92f9cd53d12efb2e0f4f8a9590b9fe42398233f6
460ad7454a281470a1938103f099a1e3192fb3d6 12-Sep-2014 Elliott Hughes <enh@google.com> Sync libm with upstream.

Change-Id: I8ac8ee52122ee19a2e423c3211092023cb4896eb
356a6249d8072f6cc8038d9939f360c08c583d49 04-Sep-2014 Chih-Hung Hsieh <chh@google.com> Disable Clang, due to x86 LDBL_MANT_DIG errors.

Clang -m32 has incorrect sizeof(long double) = 12.
With -m64, LDBL_MANT_DIG is incorrect 64.

BUG: 17163651
Change-Id: I4b157aa1a8572c3a10aece6070e119a292ab8e83
aadc4b2ff03b12142f2c6163266ebdb1df2a6e76 11-Jul-2014 Elliott Hughes <enh@google.com> Switch libm to building with clang.

Bug: 16211965
Change-Id: I81ec9706a4f2b5e8a840508a0f711cd25a5826ca
1e83245bae05d6a70ad31c3675310036fbb74219 11-Jul-2014 Elliott Hughes <enh@google.com> Revert "Switch libm to building with clang."

This reverts commit aadc4b2ff03b12142f2c6163266ebdb1df2a6e76.

The patch broke x86.

Change-Id: I0cda903732a685838bbd1877f94e1593a2a32acc
71f9b34fbeef00f3bd34364dadad41bff60b6b1d 24-Jun-2014 Dan Albert <danalbert@google.com> Revert "Revert "Prevent symbols from libgcc from being reexported.""

This reverts commit 4e4e1a5d78ff6dd9394b9b116c012046da409e99.

Change-Id: I8e78c3a59598e052e02965dd37b3fba8f567eed9
4e4e1a5d78ff6dd9394b9b116c012046da409e99 23-Jun-2014 Dan Albert <danalbert@google.com> Revert "Prevent symbols from libgcc from being reexported."

This reverts commit 65e80cf62200085f72c1c081aea2d6e9b800cde2.

Change-Id: I5f94b123f73db8d0b03cd71a5cffa0662776a017
65e80cf62200085f72c1c081aea2d6e9b800cde2 19-Jun-2014 Dan Albert <danalbert@google.com> Prevent symbols from libgcc from being reexported.

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
ff00dc8565d36fc5d30c0c8aa3714c66536dbcee 30-May-2014 Ben Cheng <bccheng@google.com> Workaround the GCC "(long)fn -> lfn" optimization bug.

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
de9ac710534626e6796ea885f8480fc4cfd64158 20-May-2014 Elliott Hughes <enh@google.com> Use -fvisibility=hidden to build libm.

Bug: 11156955
Change-Id: I77b7772a44313a1eb3970f5d2c8e2af63690efa4
9a5a3e8e74e2c6d7850ab29711189acf0f7378a2 06-May-2014 Elliott Hughes <enh@google.com> Fix <math.h> to quieten most of our warnings.

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
1abc9ff6a5b5f8a9925f1b8d9d333bc5bc7d407f 17-Apr-2014 Calin Juravle <calin@google.com> Clean-up _fpmath and fake_long_doubles

- 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
02c78a386739a8a2b3007efeb00a9ca04132100a 12-Apr-2014 Elliott Hughes <enh@google.com> Reimplement isinf/isnan/fpclassify.

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
f723b70fe0d0c49dd764e72b01501c8a211545e4 01-Apr-2014 Calin Juravle <calin@google.com> Emit warnings when linking against imprecise math functions

Change-Id: I3da7b8396a64d7899fcb89452c879806a8a511ff
4d77c1151c40010d137e4a2fa8629bff4bea72b0 14-Mar-2014 Calin Juravle <calin@google.com> Fix LP64 libm for 128-bit long doubles

* 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
645d0312c2d6b6492cc4b3891bc1a91908dc24b7 06-Feb-2014 Chris Dearman <chris.dearman@imgtec.com> [MIPS64] libc/libm support

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>
609526f97f2dbc0e52b7ff399aedec0a837832de 27-Jan-2014 Ying Wang <wangying@google.com> Use arch-specific LOCAL_ variables to build libm.

Use arch-specific LOCAL_ variables to build libm for both
TARGET_ARCH and TARGET_2ND_ARCH.

Bug: 11654773
Change-Id: I6da794ba722bb68e7484d8869c6eb0425b7d17cb
d1973ca51325393f304e82a4d79874f33e54ac16 22-Jan-2014 Colin Cross <ccross@android.com> bionic: rename aarch64 target to arm64

Rename aarch64 build targets to arm64. The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
20adf52cf2d6542df0dcf1513c26f4c8c773a6d6 19-Dec-2013 Elliott Hughes <enh@google.com> We actually have modfl.

Change-Id: I22bb4d14f99a418819f2941c2dfec49094807c5f
1c4f101a9b95d79e0c2307cd1016e8d1870de51a 11-Oct-2013 Serban Constantinescu <serban.constantinescu@arm.com> AArch64: Initial AArch64 port of libm

This patch adds intial support for AArch64 to bionic's libm.

Change-Id: I9ae0f895bbdd7fe67815e6ca1ead627581163a27
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
ab61eb366ac48addf2bca6093a34455193f5c8df 21-Nov-2013 Elliott Hughes <enh@google.com> Switch to upstream sleep(3) and usleep(3).

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
770a3495607497071693147f162ac75f39423973 02-Oct-2013 Elliott Hughes <enh@google.com> Fix libm build for x86_64.

Change-Id: If89da2d5c3d9a88f78ffd8b260ad0f2fd391c608
ce7add19d8100cb4935b193d77ad6cb14ed3d3bc 20-Sep-2013 Pavel Chupin <pavel.v.chupin@intel.com> x86_64: libm fixes

* Makefile update for x86_64 target
* amd64 arch files

Change-Id: I8f17e3338bffd89a3086fbddd1e91bb4619eac1b
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
6260553d48f6fd87ca220270bea8bafdde5726ec 11-Feb-2013 Elliott Hughes <enh@google.com> Revert "Pull the pthread_key_t functions out of pthread.c."

This reverts commit ad59322ae432d11ff36dcf046016af8cfe45fbe4

somehow my unfinished libm/Android.mk change got into here.

Change-Id: I46be626c5269d60fb1ced9862f2ebaa380b4e0af
ad59322ae432d11ff36dcf046016af8cfe45fbe4 09-Feb-2013 Elliott Hughes <enh@google.com> Pull the pthread_key_t functions out of pthread.c.

This was originally motivated by noticing that we were setting the
wrong bits for the well-known tls entries. That was a harmless bug
because none of the well-known tls entries has a destructor, but
it's best not to leave land mines lying around.

Also add some missing POSIX constants, a new test, and fix
pthread_key_create's return value when we hit the limit.

Change-Id: Ife26ea2f4b40865308e8410ec803b20bcc3e0ed1
a0ee07829a9ba7e99ef68e8c12551301cc797f0f 31-Jan-2013 Elliott Hughes <enh@google.com> Upgrade libm.

This brings us up to date with FreeBSD HEAD, fixes various bugs, unifies
the set of functions we support on ARM, MIPS, and x86, fixes "long double",
adds ISO C99 support, and adds basic unit tests.

It turns out that our "long double" functions have always been broken
for non-normal numbers. This patch fixes that by not using the upstream
implementations and just forwarding to the regular "double" implementation
instead (since "long double" on Android is just "double" anyway, which is
what BSD doesn't support).

All the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.

Bug: 3169850
Bug: 8012787
Bug: https://code.google.com/p/android/issues/detail?id=6697
Change-Id: If0c343030959c24bfc50d4d21c9530052c581837
d97d1ca7d9e514129d0ef07cb39f35b0fc9489b5 20-Oct-2012 Xiaokang, Qin <xiaokang.qin@intel.com> Add a flag control that PRIVATE libm can be chosen

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
ae5c64413bf72bc18d7fc81e1f5761824bc01f49 13-Aug-2012 Elliott Hughes <enh@google.com> Add dependencies on all the makefiles.

This should help prevent broken builds next time I'm messing with
assembler/compiler/linker flags...

Change-Id: I30f15a3ce3c3f3c60cad7bc59aaba9f42d792224
29aa0099248b3a7ac4e178e15bdcb2edbce2500a 25-Jun-2012 xqian6 <xi.qian@intel.com> Enable sqrtf() x86 assembly code

This patch can improve the sqrtf() performance.

Change-Id: Ic9d11d6a9ecd9b263f54d4878e13595e136b95ce
726800e8f42f25a1bf7a36b1603ded29266e8ac6 02-May-2012 Chris Dearman <chris@mips.com> MIPS support to libm, libdl and libthread_db

Change-Id: I9106721af7fe0cd45df82976250db0d300a20117
Signed-off-by: Raghu Gandham <raghu@mips.com>
70b1668a76d3b719ae690903ea790fda964a5458 30-Jan-2012 David 'Digit' Turner <digit@google.com> remove obsolete SuperH support

We don't have a toolchain anymore, we don't have working original
kernel headers, and nobody is maintaining this so there is really
no point in keeping this here. Details of the patch:

- removed code paths from Android.mk files related to the SuperH
architecture ("sh")

- removed libc/arch-sh, linker/arch-sh, libc/kernel/arch-sh

- simplified libc/SYSCALLS.TXT

- simplified the scripts in libc/tools/ and libc/kernel/tools

Change-Id: I26b0e1422bdc347489e4573e2fbec0e402f75560

Signed-off-by: David 'Digit' Turner <digit@android.com>
8e2ff164cc327aad8666333a1d75f86291858da0 25-Jan-2011 David 'Digit' Turner <digit@google.com> libm: Add nanf() and tgammaf() implementations.

Requested by b/3370708 to export these through RenderScript.

Change-Id: I1ae69f87a1ad4765b2dee8e4a6f2f3a6eb7c5ad4
2beac0f5c67470611629e4fe4c8e495232ff63fa 10-Jun-2010 David 'Digit' Turner <digit@google.com> DO NOT MERGE - add sincos.c to libm compilation

For some reason, a previous backport from master didn't get this.

Change-Id: I59eb96ad9de495a659808fdfb557033476c3d123
ddd235bd9c264f08dee7887e210d61ca2351cf86 19-May-2010 David 'Digit' Turner <digit@google.com> Add sincos() and sincosf() implementation.

This is a GLibc-compatibility patch required to simplify our
upcoming toolchain work/porting.

Change-Id: I615a20a449763f86b6e2b0e4f5ab43fb029ceb6d
d87945b4e706dbbacd71f6a3fd2e96162e970094 31-Aug-2009 Shin-ichiro KAWASAKI <shinichiro.kawasaki.mg@hitachi.com> added and modified libm to support SuperH architecture
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution