aboutsummaryrefslogtreecommitdiffstats
path: root/libm
diff options
context:
space:
mode:
authorBen Cheng2014-05-29 18:02:09 -0500
committerBen Cheng2014-05-29 18:32:00 -0500
commitff00dc8565d36fc5d30c0c8aa3714c66536dbcee (patch)
tree046c8601c75ac3f4d2137dd0327c5d1ceead5aea /libm
parentd4fbb1a8617285ab1d29324308aa016377fc36f3 (diff)
downloadplatform-bionic-ff00dc8565d36fc5d30c0c8aa3714c66536dbcee.tar.gz
platform-bionic-ff00dc8565d36fc5d30c0c8aa3714c66536dbcee.tar.xz
platform-bionic-ff00dc8565d36fc5d30c0c8aa3714c66536dbcee.zip
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
Diffstat (limited to 'libm')
-rw-r--r--libm/Android.mk7
1 files changed, 5 insertions, 2 deletions
diff --git a/libm/Android.mk b/libm/Android.mk
index 4dfb2165..b67395f8 100644
--- a/libm/Android.mk
+++ b/libm/Android.mk
@@ -241,6 +241,11 @@ libm_common_cflags := \
241 -Wno-unknown-pragmas \ 241 -Wno-unknown-pragmas \
242 -fvisibility=hidden \ 242 -fvisibility=hidden \
243 243
244# Workaround the GCC "(long)fn -> lfn" optimization bug which will result in
245# self recursions for lrint, lrintf, and lrintl.
246# BUG: 14225968
247libm_common_cflags += -fno-builtin-rint -fno-builtin-rintf -fno-builtin-rintl
248
244libm_common_includes := $(LOCAL_PATH)/upstream-freebsd/lib/msun/src/ 249libm_common_includes := $(LOCAL_PATH)/upstream-freebsd/lib/msun/src/
245 250
246libm_ld_includes := $(LOCAL_PATH)/upstream-freebsd/lib/msun/ld128/ 251libm_ld_includes := $(LOCAL_PATH)/upstream-freebsd/lib/msun/ld128/
@@ -270,10 +275,8 @@ LOCAL_SRC_FILES_x86 := i387/fenv.c
270LOCAL_C_INCLUDES_x86_64 := $(libm_ld_includes) 275LOCAL_C_INCLUDES_x86_64 := $(libm_ld_includes)
271LOCAL_SRC_FILES_x86_64 := amd64/fenv.c $(libm_ld_src_files) 276LOCAL_SRC_FILES_x86_64 := amd64/fenv.c $(libm_ld_src_files)
272 277
273LOCAL_CFLAGS_mips := -fno-builtin-rintf -fno-builtin-rint
274LOCAL_SRC_FILES_mips := mips/fenv.c 278LOCAL_SRC_FILES_mips := mips/fenv.c
275 279
276LOCAL_CFLAGS_mips64 := -fno-builtin-rintf -fno-builtin-rint
277LOCAL_C_INCLUDES_mips64 := $(libm_ld_includes) 280LOCAL_C_INCLUDES_mips64 := $(libm_ld_includes)
278LOCAL_SRC_FILES_mips64 := mips/fenv.c $(libm_ld_src_files) 281LOCAL_SRC_FILES_mips64 := mips/fenv.c $(libm_ld_src_files)
279 282