blob: 613187d5316d1804178cf534b0d527675ef90e07 [file] [log] [blame]
LOCAL_DIR := $(GET_LOCAL_DIR)
MODULE := $(LOCAL_DIR)
LIBCXXABI_DIR = external/libcxxabi
GLOBAL_INCLUDES += $(LIBCXXABI_DIR)/include
# Internal libcxxabi build requires std::unexpected_handler to be defined, even
# though it is removed as of C++17. Building with LIBCPP_BUILDING_LIBRARY
# includes this required non-spec definition in the build.
MODULE_CPPFLAGS += -D_LIBCPP_BUILDING_LIBRARY
# The way we define LIBCPP_BUILDING_LIBRARY above conflicts with a definition in
# the fallback allocator. The resulting error is safe to ignore.
MODULE_COMPILEFLAGS += -Wno-macro-redefined
MODULE_COMPILEFLAGS += -D_LIBCXXABI_BUILDING_LIBRARY -D_LIBCXXABI_HAS_NO_THREADS
# Required if compiling without exceptions.
MODULE_COMPILEFLAGS += -D_LIBCXXABI_NO_EXCEPTIONS
# Required if compiling without RTTI, but also helps binary size.
MODULE_COMPILEFLAGS += -DLIBCXXABI_SILENT_TERMINATE
MODULE_SRCS := \
$(LIBCXXABI_DIR)/src/cxa_aux_runtime.cpp \
$(LIBCXXABI_DIR)/src/cxa_default_handlers.cpp \
$(LIBCXXABI_DIR)/src/cxa_demangle.cpp \
$(LIBCXXABI_DIR)/src/cxa_exception_storage.cpp \
$(LIBCXXABI_DIR)/src/cxa_guard.cpp \
$(LIBCXXABI_DIR)/src/cxa_handlers.cpp \
$(LIBCXXABI_DIR)/src/cxa_unexpected.cpp \
$(LIBCXXABI_DIR)/src/cxa_vector.cpp \
$(LIBCXXABI_DIR)/src/cxa_virtual.cpp \
$(LIBCXXABI_DIR)/src/stdlib_exception.cpp \
$(LIBCXXABI_DIR)/src/stdlib_stdexcept.cpp \
$(LIBCXXABI_DIR)/src/stdlib_typeinfo.cpp \
$(LIBCXXABI_DIR)/src/abort_message.cpp \
$(LIBCXXABI_DIR)/src/fallback_malloc.cpp \
# Exceptions disabled
MODULE_SRCS += \
$(LIBCXXABI_DIR)/src/cxa_noexception.cpp \
# Files that do not compile without exceptions
# $(LIBCXXABI_DIR)/src/cxa_exception.cpp \
# $(LIBCXXABI_DIR)/src/cxa_personality.cpp \
# Files that do not compile without RTTI
# $(LIBCXXABI_DIR)/src/private_typeinfo.cpp \
include make/module.mk