Use gcc to build and test x86_64 long double code.
Clang/llvm x86_64 configuration of long double is still
incompatible with gcc.
https://llvm.org/bugs/show_bug.cgi?id=23897
BUG: 21899249
Change-Id: I47fd6d0ce2daa84ae0035e7885a4d90e4c3056f7
diff --git a/libc/Android.mk b/libc/Android.mk
index 2c8f554..de0bb41 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -580,6 +580,13 @@
endif
use_clang := $(USE_CLANG_PLATFORM_BUILD)
+
+# Clang/llvm has incompatible long double (fp128) for x86_64.
+# https://llvm.org/bugs/show_bug.cgi?id=23897
+ifeq ($(TARGET_ARCH),x86_64)
+ use_clang := false
+endif
+
ifeq ($(use_clang),)
use_clang := false
endif
diff --git a/libm/Android.mk b/libm/Android.mk
index bc4c86d..7a7e3b0 100644
--- a/libm/Android.mk
+++ b/libm/Android.mk
@@ -3,6 +3,12 @@
bionic_coverage := false
+# Clang/llvm has incompatible long double (fp128) for x86_64.
+# https://llvm.org/bugs/show_bug.cgi?id=23897
+ifeq ($(TARGET_ARCH),x86_64)
+libm_clang := false
+endif
+
# -----------------------------------------------------------------------------
# libm.a
# -----------------------------------------------------------------------------
@@ -473,7 +479,7 @@
LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream-freebsd/lib/msun/src/
LOCAL_C_INCLUDES_64 += $(LOCAL_PATH)/upstream-freebsd/lib/msun/ld128/
-LOCAL_CLANG := true
+LOCAL_CLANG := $(libm_clang)
LOCAL_ARM_MODE := arm
LOCAL_CFLAGS := \
-DFLT_EVAL_METHOD=0 \
@@ -514,7 +520,7 @@
LOCAL_LDFLAGS := -Wl,--version-script,$(LOCAL_PATH)/libm.map
LOCAL_MODULE := libm
-LOCAL_CLANG := true
+LOCAL_CLANG := $(libm_clang)
LOCAL_SYSTEM_SHARED_LIBRARIES := libc
LOCAL_WHOLE_STATIC_LIBRARIES := libm
diff --git a/tests/Android.mk b/tests/Android.mk
index 84d3426..8aba70b 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -137,6 +137,11 @@
libBionicStandardTests_ldlibs_host := \
-lrt \
+# Clang/llvm has incompatible long double (fp128) for x86_64.
+# https://llvm.org/bugs/show_bug.cgi?id=23897
+# This affects most of math_test.cpp.
+libBionicStandardTests_clang_target := false
+
module := libBionicStandardTests
module_tag := optional
build_type := target