Android.mk revision 8b90ac3b73e48894c4b7547ee4a04deff0ccc595
1e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#
2e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Copyright (C) 2014 The Android Open Source Project
3e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#
4e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Licensed under the Apache License, Version 2.0 (the "License");
5e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# you may not use this file except in compliance with the License.
6e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# You may obtain a copy of the License at
7e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#
8e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#      http://www.apache.org/licenses/LICENSE-2.0
9e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#
10e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# Unless required by applicable law or agreed to in writing, software
11e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# distributed under the License is distributed on an "AS IS" BASIS,
12e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# See the License for the specific language governing permissions and
14e085735cbedc82b1064f05ff796e32e906a95036Dan Albert# limitations under the License.
15e085735cbedc82b1064f05ff796e32e906a95036Dan Albert#
16e085735cbedc82b1064f05ff796e32e906a95036Dan Albert
17e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_PATH := $(call my-dir)
18e085735cbedc82b1064f05ff796e32e906a95036Dan Albert
19e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_SRC_FILES := \
2007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/abort_message.cpp \
2107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_aux_runtime.cpp \
2207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_default_handlers.cpp \
2307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_demangle.cpp \
2407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_exception.cpp \
2507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_exception_storage.cpp \
2607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_guard.cpp \
2707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_handlers.cpp \
2807bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_new_delete.cpp \
2907bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_personality.cpp \
304d4cef86f56f034acef8790572c173bc7db91eb1Dmitriy Ivanov    src/cxa_thread_atexit.cpp \
3107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_unexpected.cpp \
3207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_vector.cpp \
3307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/cxa_virtual.cpp \
3407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/exception.cpp \
3507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/fallback_malloc.ipp \
3607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/private_typeinfo.cpp \
3707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/stdexcept.cpp \
3807bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    src/typeinfo.cpp \
3987a9be28aceed80250cd1d1a47eb8afa0ee67b51Dan Albert
4007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLIBCXXABI_INCLUDES := \
4196d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan Albert    $(LOCAL_PATH)/include \
4296d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan Albert    external/libcxx/include \
43e085735cbedc82b1064f05ff796e32e906a95036Dan Albert
44e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_RTTI_FLAG := -frtti
45e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_CPPFLAGS := \
468e51add97ec958d86c1ed970dbc6dbf50e952112Dan Albert    -std=c++14 \
4707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert    -fexceptions \
48e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert    -Wall \
49e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert    -Wextra \
50e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert    -Wno-unused-function \
51e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert    -Werror \
5207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert
5307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albertinclude $(CLEAR_VARS)
54ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi
55e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true
56e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES)
5707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES)
588b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_C_INCLUDES_arm := external/libunwind_llvm/include
598b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
604d4cef86f56f034acef8790572c173bc7db91eb1Dmitriy IvanovLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) -DHAVE___CXA_THREAD_ATEXIT_IMPL
61f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm := -DLIBCXXABI_USE_LLVM_UNWINDER=1
62f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0
63f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips := -DLIBCXXABI_USE_LLVM_UNWINDER=0
64f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0
65f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86 := -DLIBCXXABI_USE_LLVM_UNWINDER=0
66f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86_64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0
67e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG)
6896d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_CXX_STL := none
6996d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_SANITIZE := never
70e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# When src/cxa_exception.cpp is compiled with Clang assembler
71e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# __cxa_end_cleanup_impl, although marked as used, was discarded
72e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# since it is used only in embedded assembly code.
73e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# This caused the following warning when linking libc++.so:
74e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# libc++_static.a(cxa_exception.o)(.text.__cxa_end_cleanup+0x2):
75e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# warning: relocation refers to discarded section
76e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# See also http://llvm.org/bugs/show_bug.cgi?id=21292.
77e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung HsiehLOCAL_CLANG_CFLAGS_arm += -no-integrated-as
78873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_STATIC_LIBRARY)
79e085735cbedc82b1064f05ff796e32e906a95036Dan Albert
80e085735cbedc82b1064f05ff796e32e906a95036Dan Albertinclude $(CLEAR_VARS)
81ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi
82e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true
83e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES)
8407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES)
858b90ac3b73e48894c4b7547ee4a04deff0ccc595Dan AlbertLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
86e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS)
8796d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG)
8896d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_MULTILIB := both
892cf24ad3f1ff619533d195768ed66c83fb118472Dan AlbertLOCAL_CXX_STL := none
9096d7ecd753c2409ebb05511cd0098f0a3fa317a7Dan AlbertLOCAL_SANITIZE := never
9109437217701ee0d16962250b375698ceece839e8Tim Murray
9209437217701ee0d16962250b375698ceece839e8Tim Murrayifeq ($(HOST_OS),darwin)
9309437217701ee0d16962250b375698ceece839e8Tim Murray# libcxxabi really doesn't like the non-LLVM assembler on Darwin
9409437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_ASFLAGS += -integrated-as
9509437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CFLAGS += -integrated-as
9609437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CPPFLAGS += -integrated-as
9709437217701ee0d16962250b375698ceece839e8Tim Murrayendif
9809437217701ee0d16962250b375698ceece839e8Tim Murray
99873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_HOST_STATIC_LIBRARY)
100