From 84783a776e846bfa628e0d9732ab2d7365017970 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 3 Oct 2019 16:04:52 -0700 Subject: [PATCH] Use -nostdlib++ instead of -nodefaultlibs Host builds using libc++ used -nodefaultlibs to turn off the default C++ runtime, and then added back all the other necessary libraries. Clang supports -nostdlib++ since https://reviews.llvm.org/D47115 that removes the C++ runtime without affecting the other default libraries. Use -nostdlib++, and remove the lists of default libraries. Test: m checkbuild Change-Id: Ib8b761534f64fd7f881e14598e514783678e0b35 --- core/cxx_stl_setup.mk | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/core/cxx_stl_setup.mk b/core/cxx_stl_setup.mk index 8e4a46c436..95b1090811 100644 --- a/core/cxx_stl_setup.mk +++ b/core/cxx_stl_setup.mk @@ -33,12 +33,6 @@ else endif endif -# Yes, this is actually what the clang driver does. -linux_dynamic_gcclibs := -lgcc_s -lgcc -lc -lgcc_s -lgcc -linux_static_gcclibs := -Wl,--start-group -lgcc -lgcc_eh -lc -Wl,--end-group -darwin_dynamic_gcclibs := -lc -lSystem -darwin_static_gcclibs := NO_STATIC_HOST_BINARIES_ON_DARWIN - my_link_type := dynamic ifdef LOCAL_IS_HOST_MODULE ifneq (,$(BUILD_HOST_static)) @@ -79,8 +73,7 @@ ifneq ($(filter $(my_cxx_stl),libc++ libc++_static),) ifdef LOCAL_IS_HOST_MODULE my_cppflags += -nostdinc++ - my_ldflags += -nodefaultlibs - my_cxx_ldlibs += $($($(my_prefix)OS)_$(my_link_type)_gcclibs) + my_ldflags += -nostdlib++ else my_static_libraries += libc++demangle ifeq (arm,$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) @@ -99,8 +92,7 @@ else ifeq ($(my_cxx_stl),libstdc++) else ifeq ($(my_cxx_stl),none) ifdef LOCAL_IS_HOST_MODULE my_cppflags += -nostdinc++ - my_ldflags += -nodefaultlibs - my_cxx_ldlibs += $($($(my_prefix)OS)_$(my_link_type)_gcclibs) + my_ldflags += -nostdlib++ endif else $(error $(LOCAL_PATH): $(LOCAL_MODULE): $(my_cxx_stl) is not a supported STL.)