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
This commit is contained in:
parent
147f46ba72
commit
84783a776e
|
@ -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.)
|
||||
|
|
Loading…
Reference in New Issue