Android.mk revision f4ce0f175347ef16883c76396cd63f028a68d036
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 \ 3007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_unexpected.cpp \ 3107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_vector.cpp \ 3207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/cxa_virtual.cpp \ 3307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/exception.cpp \ 3407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/fallback_malloc.ipp \ 3507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/private_typeinfo.cpp \ 3607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/stdexcept.cpp \ 3707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/typeinfo.cpp \ 3887a9be28aceed80250cd1d1a47eb8afa0ee67b51Dan Albert 3987a9be28aceed80250cd1d1a47eb8afa0ee67b51Dan AlbertLLVM_UNWIND_SRC_FILES := \ 4007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/libunwind.cpp \ 4107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/Unwind-EHABI.cpp \ 4207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/Unwind-sjlj.c \ 4307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/UnwindLevel1-gcc-ext.c \ 4407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/UnwindLevel1.c \ 4507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/UnwindRegistersSave.S \ 4607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert src/Unwind/UnwindRegistersRestore.S \ 47e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 4807bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLIBCXXABI_INCLUDES := \ 4907bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert $(LOCAL_PATH)/include/ \ 5007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert external/libcxx/include/ \ 51e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 52e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_RTTI_FLAG := -frtti 53e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLIBCXXABI_CPPFLAGS := \ 5407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert -std=c++11 \ 5507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert -fexceptions \ 56e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wall \ 57e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wextra \ 58e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Wno-unused-function \ 59e44dc7755bf137061288ca06515ccd0f0a0d2218Dan Albert -Werror \ 6007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert 6107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albertinclude $(CLEAR_VARS) 6207bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_MODULE := libunwind_llvm 6307bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_CLANG := true 6407bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_SRC_FILES_arm := $(LLVM_UNWIND_SRC_FILES) 6507bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES) 6607bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 6707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_CXX_STL := none 6807bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albert# src/Unwind/UnwindRegistersSave.S does not compile. 6907bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_CLANG_ASFLAGS_arm += -no-integrated-as 7007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 7107bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan Albertinclude $(BUILD_STATIC_LIBRARY) 72e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 73e085735cbedc82b1064f05ff796e32e906a95036Dan Albertinclude $(CLEAR_VARS) 74ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi 75e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true 76e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 7707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES) 78e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 79f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm := -DLIBCXXABI_USE_LLVM_UNWINDER=1 80f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_arm64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 81f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips := -DLIBCXXABI_USE_LLVM_UNWINDER=0 82f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_mips64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 83f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 84f4ce0f175347ef16883c76396cd63f028a68d036Dan AlbertLOCAL_CPPFLAGS_x86_64 := -DLIBCXXABI_USE_LLVM_UNWINDER=0 852cf24ad3f1ff619533d195768ed66c83fb118472Dan AlbertLOCAL_CXX_STL := none 86e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 8707bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_arm := libunwind_llvm 889623d0dca99755d5bbf4623c5513b060bb3a0be4Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_arm64 := libunwindbacktrace 899623d0dca99755d5bbf4623c5513b060bb3a0be4Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_mips := libunwindbacktrace 909623d0dca99755d5bbf4623c5513b060bb3a0be4Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_mips64 := libunwindbacktrace 919623d0dca99755d5bbf4623c5513b060bb3a0be4Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_x86 := libunwindbacktrace 929623d0dca99755d5bbf4623c5513b060bb3a0be4Dan AlbertLOCAL_WHOLE_STATIC_LIBRARIES_x86_64 := libunwindbacktrace 93d5cc515c98421408b082fb82bbb3e947f2583e6fBrian CarlstromLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 94e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# src/Unwind/UnwindRegistersSave.S does not compile. 95e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung HsiehLOCAL_CLANG_ASFLAGS_arm += -no-integrated-as 96e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# When src/cxa_exception.cpp is compiled with Clang assembler 97e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# __cxa_end_cleanup_impl, although marked as used, was discarded 98e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# since it is used only in embedded assembly code. 99e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# This caused the following warning when linking libc++.so: 100e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# libc++_static.a(cxa_exception.o)(.text.__cxa_end_cleanup+0x2): 101e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# warning: relocation refers to discarded section 102e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung Hsieh# See also http://llvm.org/bugs/show_bug.cgi?id=21292. 103e3e9a2a4f28eecf404101d137cb98e4e7d002caeChih-Hung HsiehLOCAL_CLANG_CFLAGS_arm += -no-integrated-as 104873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_STATIC_LIBRARY) 105e085735cbedc82b1064f05ff796e32e906a95036Dan Albert 106e085735cbedc82b1064f05ff796e32e906a95036Dan Albertinclude $(CLEAR_VARS) 107ab22a8fc0e1fd348c19b99efa183ffd8c00af815Dan AlbertLOCAL_MODULE := libc++abi 108e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CLANG := true 109e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_SRC_FILES := $(LIBCXXABI_SRC_FILES) 11007bb9920a5724ac414b6b6dfcb64f19adb69deb1Dan AlbertLOCAL_C_INCLUDES := $(LIBCXXABI_INCLUDES) 111e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_CPPFLAGS := $(LIBCXXABI_CPPFLAGS) 1122cf24ad3f1ff619533d195768ed66c83fb118472Dan AlbertLOCAL_CXX_STL := none 11309437217701ee0d16962250b375698ceece839e8Tim Murray 11409437217701ee0d16962250b375698ceece839e8Tim Murrayifeq ($(HOST_OS),darwin) 11587a9be28aceed80250cd1d1a47eb8afa0ee67b51Dan AlbertLOCAL_SRC_FILES += $(LLVM_UNWIND_SRC_FILES) src/Unwind/Unwind_AppleExtras.cpp 11609437217701ee0d16962250b375698ceece839e8Tim Murray# libcxxabi really doesn't like the non-LLVM assembler on Darwin 11709437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_ASFLAGS += -integrated-as 11809437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CFLAGS += -integrated-as 11909437217701ee0d16962250b375698ceece839e8Tim MurrayLOCAL_CPPFLAGS += -integrated-as 12009437217701ee0d16962250b375698ceece839e8Tim Murrayendif 12109437217701ee0d16962250b375698ceece839e8Tim Murray 122e085735cbedc82b1064f05ff796e32e906a95036Dan AlbertLOCAL_RTTI_FLAG := $(LIBCXXABI_RTTI_FLAG) 123d5cc515c98421408b082fb82bbb3e947f2583e6fBrian CarlstromLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 12420116856117ff5f5257fc51c5c1bb2499d436d58Ian RogersLOCAL_MULTILIB := both 125873f8586ee0ba081b0537f84dc827a400d0bc73dDan Albertinclude $(BUILD_HOST_STATIC_LIBRARY) 126