diff options
author | Eric Christopher <echristo@gmail.com> | 2019-09-10 22:05:01 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2019-09-10 22:05:01 +0000 |
commit | 5fc4bee355a5fbafaa41318ce9b71d4df1e98055 (patch) | |
tree | b2baf690b1d30c3c84ae43942031afcdefb15ef4 | |
parent | 6ca76ceb63bf91282d9bbcc2a1cad190455a3c5a (diff) | |
download | bcm5719-llvm-5fc4bee355a5fbafaa41318ce9b71d4df1e98055.tar.gz bcm5719-llvm-5fc4bee355a5fbafaa41318ce9b71d4df1e98055.zip |
Move LLVM_ENABLE_ABI_BREAKING_CHECKS variables to their own file
so that you don't have to link Error.o and all of its dependencies.
In more detail: global initializers in Error.o can't be elided with
-ffunction-sections/-gc-sections since they always need to be run
causing a fairly significant binary bloat if all you want is the
ABI breaking checks code.
Differential Revision: https://reviews.llvm.org/D67387
llvm-svn: 371561
-rw-r--r-- | llvm/lib/Support/ABIBreak.cpp | 24 | ||||
-rw-r--r-- | llvm/lib/Support/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/lib/Support/Error.cpp | 15 | ||||
-rw-r--r-- | llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn | 1 |
4 files changed, 26 insertions, 15 deletions
diff --git a/llvm/lib/Support/ABIBreak.cpp b/llvm/lib/Support/ABIBreak.cpp new file mode 100644 index 00000000000..247b635e02b --- /dev/null +++ b/llvm/lib/Support/ABIBreak.cpp @@ -0,0 +1,24 @@ +//===----- lib/Support/ABIBreak.cpp - EnableABIBreakingChecks -------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/Config/abi-breaking.h" + +#ifndef _MSC_VER +namespace llvm { + +// One of these two variables will be referenced by a symbol defined in +// llvm-config.h. We provide a link-time (or load time for DSO) failure when +// there is a mismatch in the build configuration of the API client and LLVM. +#if LLVM_ENABLE_ABI_BREAKING_CHECKS +int EnableABIBreakingChecks; +#else +int DisableABIBreakingChecks; +#endif + +} // end namespace llvm +#endif diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt index 013e6e6359f..29d99ff9cf7 100644 --- a/llvm/lib/Support/CMakeLists.txt +++ b/llvm/lib/Support/CMakeLists.txt @@ -53,6 +53,7 @@ endif() add_llvm_library(LLVMSupport AArch64TargetParser.cpp + ABIBreak.cpp ARMTargetParser.cpp AMDGPUMetadata.cpp APFloat.cpp diff --git a/llvm/lib/Support/Error.cpp b/llvm/lib/Support/Error.cpp index ae0e4b0c044..9ea08c37478 100644 --- a/llvm/lib/Support/Error.cpp +++ b/llvm/lib/Support/Error.cpp @@ -167,18 +167,3 @@ void LLVMDisposeErrorMessage(char *ErrMsg) { delete[] ErrMsg; } LLVMErrorTypeId LLVMGetStringErrorTypeId() { return reinterpret_cast<void *>(&StringError::ID); } - -#ifndef _MSC_VER -namespace llvm { - -// One of these two variables will be referenced by a symbol defined in -// llvm-config.h. We provide a link-time (or load time for DSO) failure when -// there is a mismatch in the build configuration of the API client and LLVM. -#if LLVM_ENABLE_ABI_BREAKING_CHECKS -int EnableABIBreakingChecks; -#else -int DisableABIBreakingChecks; -#endif - -} // end namespace llvm -#endif diff --git a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn index a2f128ef7d7..db07859b716 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn @@ -29,6 +29,7 @@ static_library("Support") { ] sources = [ "AArch64TargetParser.cpp", + "ABIBreak.cpp", "AMDGPUMetadata.cpp", "APFloat.cpp", "APInt.cpp", |