summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2019-09-10 22:05:01 +0000
committerEric Christopher <echristo@gmail.com>2019-09-10 22:05:01 +0000
commit5fc4bee355a5fbafaa41318ce9b71d4df1e98055 (patch)
treeb2baf690b1d30c3c84ae43942031afcdefb15ef4
parent6ca76ceb63bf91282d9bbcc2a1cad190455a3c5a (diff)
downloadbcm5719-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.cpp24
-rw-r--r--llvm/lib/Support/CMakeLists.txt1
-rw-r--r--llvm/lib/Support/Error.cpp15
-rw-r--r--llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn1
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",
OpenPOWER on IntegriCloud