diff --git a/libc/Android.mk b/libc/Android.mk index e632ee72f..78b847584 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -1007,7 +1007,7 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(libc_thread_atexit_impl_src_files) -LOCAL_CFLAGS := $(libc_common_cflags) -fno-data-sections -Wframe-larger-than=2048 +LOCAL_CFLAGS := $(libc_common_cflags) -Wframe-larger-than=2048 LOCAL_CONLYFLAGS := $(libc_common_conlyflags) LOCAL_CPPFLAGS := $(libc_common_cppflags) -Wold-style-cast diff --git a/libc/bionic/__cxa_thread_atexit_impl.cpp b/libc/bionic/__cxa_thread_atexit_impl.cpp index 9ae6dfda1..0e427d346 100644 --- a/libc/bionic/__cxa_thread_atexit_impl.cpp +++ b/libc/bionic/__cxa_thread_atexit_impl.cpp @@ -22,7 +22,7 @@ struct thread_local_dtor { thread_local_dtor* next; }; -__thread thread_local_dtor* thread_local_dtors = nullptr; +static __thread thread_local_dtor* thread_local_dtors = nullptr; extern "C" int __cxa_thread_atexit_impl(void (*func) (void *), void *arg, void *dso_handle) { thread_local_dtor* dtor = new thread_local_dtor(); diff --git a/tests/__cxa_thread_atexit_test.cpp b/tests/__cxa_thread_atexit_test.cpp index fea60b719..83aab53cc 100644 --- a/tests/__cxa_thread_atexit_test.cpp +++ b/tests/__cxa_thread_atexit_test.cpp @@ -35,7 +35,7 @@ class ClassWithDtor { std::string message; }; -thread_local ClassWithDtor class_with_dtor; +static thread_local ClassWithDtor class_with_dtor; static void* thread_nop(void* arg) { class_with_dtor.set_message(*static_cast(arg));