diff --git a/libc/Android.mk b/libc/Android.mk index 4ffdf5768..2808707d4 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -1043,9 +1043,6 @@ LOCAL_CONLYFLAGS := $(libc_common_conlyflags) LOCAL_CPPFLAGS := $(libc_common_cppflags) -Wold-style-cast LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_MODULE := libc_thread_atexit_impl -# TODO: Clang tries to use __tls_get_addr which is not supported yet -# remove after it is implemented. -LOCAL_CLANG := false LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_CXX_STL := none LOCAL_SYSTEM_SHARED_LIBRARIES := diff --git a/tests/Android.mk b/tests/Android.mk index 8de3b226e..f401d3380 100644 --- a/tests/Android.mk +++ b/tests/Android.mk @@ -142,7 +142,9 @@ libBionicStandardTests_ldlibs_host := \ # 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. +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86_64)) libBionicStandardTests_clang_target := false +endif module := libBionicStandardTests module_tag := optional @@ -309,9 +311,14 @@ bionic-unit-tests_shared_libraries_target := \ libdl_preempt_test_1 \ libdl_preempt_test_2 -# TODO: clang support for thread_local on arm is done via __aeabi_read_tp() -# which bionic does not support. Reenable this once this question is resolved. +# 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. +# For arm and arm64 target, b/25643775: +# external/libcxx/include/sstream:859: warning: relocation refers to discarded section +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86_64 arm arm64)) bionic-unit-tests_clang_target := false +endif bionic-unit-tests_shared_libraries_target += libdl_test_df_1_global diff --git a/tests/thread_local_test.cpp b/tests/thread_local_test.cpp index aeba2ba86..1422ed2f0 100644 --- a/tests/thread_local_test.cpp +++ b/tests/thread_local_test.cpp @@ -18,7 +18,8 @@ #include #include -#ifdef __GNUC__ +#if defined(__GNUC__) && !defined(__clang__) && \ + (defined(__arm__) || defined(__aarch64__)) // Gcc has a bug with -O -fdata-section for the arm target: http://b/22772147. // Until that bug is fixed, disable optimization since // it is not essential for this test.