Introduces cmake option LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING

Summary:
We recently introduced a feature that enforce at link-time that the
LLVM headers used by a clients are matching the ABI setting of the
LLVM library linked to.

However for clients that are using only headers from ADT and promise
they won't call into LLVM, this is forcing to link libSupport. This
new flag is intended to provide a way to configure LLVM with this
promise for such client.

Reviewers: bob.wilson, compnerd

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D27432

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288754 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Mehdi Amini 2016-12-06 01:23:04 +00:00
parent a079dfc363
commit 1e117391d7
2 changed files with 10 additions and 0 deletions

View File

@ -414,6 +414,9 @@ option(LLVM_ENABLE_EXPENSIVE_CHECKS "Enable expensive checks" OFF)
set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING
"Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.") "Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")
option(LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
"Disable abi-breaking checks mismatch detection at link-tim." OFF)
option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN
"Set to ON to force using an old, unsupported host toolchain." OFF) "Set to ON to force using an old, unsupported host toolchain." OFF)

View File

@ -15,6 +15,11 @@
/* Define to enable checks that alter the LLVM C++ ABI */ /* Define to enable checks that alter the LLVM C++ ABI */
#cmakedefine01 LLVM_ENABLE_ABI_BREAKING_CHECKS #cmakedefine01 LLVM_ENABLE_ABI_BREAKING_CHECKS
/* Define to disable the link-time checking of mismatch for
LLVM_ENABLE_ABI_BREAKING_CHECKS */
#cmakedefine01 LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build // ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
// mismatch with LLVM // mismatch with LLVM
#if defined(_MSC_VER) #if defined(_MSC_VER)
@ -38,4 +43,6 @@ __attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks
} }
#endif // _MSC_VER #endif // _MSC_VER
#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
#endif #endif