diff --git a/src/buildtools/third_party/libc++/BUILD.gn b/src/buildtools/third_party/libc++/BUILD.gn index 78e270c731..7e48795223 100644 --- a/src/buildtools/third_party/libc++/BUILD.gn +++ b/src/buildtools/third_party/libc++/BUILD.gn @@ -543,12 +543,8 @@ target(libcxx_target_type, "libc++") { # so that modules can be used for other chromium targets which don't enable # exception and rtti. configs -= configs_to_remove + [ - "//build/config/compiler:no_exceptions", - "//build/config/compiler:no_rtti", ] configs += configs_to_add + [ - "//build/config/compiler:exceptions", - "//build/config/compiler:rtti", ] deps = [ "//third_party/llvm-libc:llvm-libc-shared" ] diff --git a/src/buildtools/third_party/libc++abi/BUILD.gn b/src/buildtools/third_party/libc++abi/BUILD.gn index c39830cf15..f79f507228 100644 --- a/src/buildtools/third_party/libc++abi/BUILD.gn +++ b/src/buildtools/third_party/libc++abi/BUILD.gn @@ -100,4 +100,34 @@ target(libcxxabi_target_type, "libc++abi") { if (use_libcxx_modules) { configs -= [ "//build/config/compiler:libcxx_module" ] } + if (!is_apple) { + sources -= [ + "//third_party/libc++abi/src/src/cxa_exception.cpp", + "//third_party/libc++abi/src/src/cxa_personality.cpp", + "//third_party/libc++abi/src/src/private_typeinfo.cpp", + ] + sources += [ + "//third_party/libc++abi/src/src/cxa_noexception.cpp", + ] + defines += [ "_LIBCXXABI_NO_EXCEPTIONS" ] + configs -= [ + "//build/config/compiler:exceptions", + "//build/config/compiler:rtti", + ] + configs += [ + "//build/config/compiler:no_exceptions", + "//build/config/compiler:no_rtti", + ] + } + if (is_android) { + sources += [ + "//third_party/libc++abi/src/src/private_typeinfo.cpp", + ] + configs -= [ + "//build/config/compiler:no_rtti", + ] + configs += [ + "//build/config/compiler:rtti", + ] + } }