1 // 2 // Copyright (C) 2014 The Android Open Source Project 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 cc_library_static { 18 name: "libc++abi", 19 host_supported: true, 20 vendor_available: true, 21 srcs: [ 22 "src/abort_message.cpp", 23 "src/cxa_aux_runtime.cpp", 24 "src/cxa_default_handlers.cpp", 25 "src/cxa_demangle.cpp", 26 "src/cxa_exception.cpp", 27 "src/cxa_exception_storage.cpp", 28 "src/cxa_guard.cpp", 29 "src/cxa_handlers.cpp", 30 "src/cxa_personality.cpp", 31 "src/cxa_thread_atexit.cpp", 32 "src/cxa_unexpected.cpp", 33 "src/cxa_vector.cpp", 34 "src/cxa_virtual.cpp", 35 "src/fallback_malloc.cpp", 36 "src/private_typeinfo.cpp", 37 "src/stdlib_exception.cpp", 38 "src/stdlib_new_delete.cpp", 39 "src/stdlib_stdexcept.cpp", 40 "src/stdlib_typeinfo.cpp", 41 ], 42 include_dirs: ["external/libcxx/include"], 43 local_include_dirs: ["include"], 44 export_include_dirs: ["include"], 45 cflags: [ 46 "-Wall", 47 "-Werror", 48 ], 49 cppflags: [ 50 "-std=c++14", 51 "-fexceptions", 52 "-Wextra", 53 "-Wno-unused-function", 54 ], 55 sanitize: { 56 never: true, 57 }, 58 stl: "none", 59 rtti: true, 60 arch: { 61 arm: { 62 include_dirs: ["external/libunwind_llvm/include"], 63 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=1"], 64 }, 65 arm64: { 66 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"], 67 }, 68 mips: { 69 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"], 70 }, 71 mips64: { 72 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"], 73 }, 74 x86: { 75 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"], 76 }, 77 x86_64: { 78 cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"], 79 }, 80 }, 81 target: { 82 android: { 83 cppflags: ["-DHAVE___CXA_THREAD_ATEXIT_IMPL"], 84 }, 85 darwin: { 86 // libcxxabi really doesn't like the non-LLVM assembler on Darwin 87 asflags: ["-integrated-as"], 88 cflags: ["-integrated-as", "-D_LIBCPP_DISABLE_AVAILABILITY"], 89 cppflags: ["-integrated-as"], 90 }, 91 linux_bionic: { 92 cppflags: ["-DHAVE___CXA_THREAD_ATEXIT_IMPL"], 93 enabled: true, 94 }, 95 }, 96 97 } 98