[llvm] r371561 - Move LLVM_ENABLE_ABI_BREAKING_CHECKS variables to their own file

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 10 15:05:01 PDT 2019


Author: echristo
Date: Tue Sep 10 15:05:01 2019
New Revision: 371561

URL: http://llvm.org/viewvc/llvm-project?rev=371561&view=rev
Log:
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

Added:
    llvm/trunk/lib/Support/ABIBreak.cpp
Modified:
    llvm/trunk/lib/Support/CMakeLists.txt
    llvm/trunk/lib/Support/Error.cpp
    llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn

Added: llvm/trunk/lib/Support/ABIBreak.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/ABIBreak.cpp?rev=371561&view=auto
==============================================================================
--- llvm/trunk/lib/Support/ABIBreak.cpp (added)
+++ llvm/trunk/lib/Support/ABIBreak.cpp Tue Sep 10 15:05:01 2019
@@ -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

Modified: llvm/trunk/lib/Support/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CMakeLists.txt?rev=371561&r1=371560&r2=371561&view=diff
==============================================================================
--- llvm/trunk/lib/Support/CMakeLists.txt (original)
+++ llvm/trunk/lib/Support/CMakeLists.txt Tue Sep 10 15:05:01 2019
@@ -53,6 +53,7 @@ endif()
 
 add_llvm_library(LLVMSupport
   AArch64TargetParser.cpp
+  ABIBreak.cpp
   ARMTargetParser.cpp
   AMDGPUMetadata.cpp
   APFloat.cpp

Modified: llvm/trunk/lib/Support/Error.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Error.cpp?rev=371561&r1=371560&r2=371561&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Error.cpp (original)
+++ llvm/trunk/lib/Support/Error.cpp Tue Sep 10 15:05:01 2019
@@ -167,18 +167,3 @@ void LLVMDisposeErrorMessage(char *ErrMs
 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

Modified: llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn?rev=371561&r1=371560&r2=371561&view=diff
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn (original)
+++ llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn Tue Sep 10 15:05:01 2019
@@ -29,6 +29,7 @@ static_library("Support") {
   ]
   sources = [
     "AArch64TargetParser.cpp",
+    "ABIBreak.cpp",
     "AMDGPUMetadata.cpp",
     "APFloat.cpp",
     "APInt.cpp",




More information about the llvm-commits mailing list