# Copyright 2017 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/c++/c++.gni") config("libunwind_config") { # ValueAsBitPattern in Unwind-EHABI.cpp is only used on Debug builds. cflags = [ "-Wno-unused-function" ] } source_set("libunwind") { visibility = [ "//buildtools/third_party/libc++abi" ] # On desktop Linux, libunwind symbols conflict with glibc's, so # always make them hidden, even for component builds. if (libcpp_is_static || !is_fuchsia) { defines = [ "_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS" ] } sources = [ # C++ sources "trunk/src/Unwind-EHABI.cpp", "trunk/src/libunwind.cpp", # C sources "trunk/src/Unwind-sjlj.c", "trunk/src/UnwindLevel1-gcc-ext.c", "trunk/src/UnwindLevel1.c", # ASM sources "trunk/src/UnwindRegistersRestore.S", "trunk/src/UnwindRegistersSave.S", ] configs -= [ "//build/config/compiler:chromium_code", "//build/config/compiler:no_exceptions", "//build/config/compiler:no_rtti", "//build/config/coverage:default_coverage", ] configs += [ "//build/config/compiler:no_chromium_code", "//build/config/compiler:exceptions", "//build/config/compiler:rtti", "//buildtools/third_party/libc++:config", # Must be after no_chromium_code ":libunwind_config", ] }