From 9b58b2d97b8d684ec896b98bc212a6435cd34724 Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 19 Apr 2023 11:38:17 +0100 Subject: [PATCH] Merge bitcoin/bitcoin#27447: depends: Remove `_LIBCPP_DEBUG` from depends DEBUG mode bc4fd49d09dec3791b0acd4ada285b2287361d14 depends: add _LIBCPP_ENABLE_ASSERTIONS to DEBUG mode (fanquake) cf266b2270081f05a277ba683f00de90a741112f depends: Remove _LIBCPP_DEBUG from depends DEBUG mode (fanquake) Pull request description: It was deprecated in LLVM 15, turned into compile-time error in LLVM 16: ```bash In file included from /usr/lib/llvm-16/bin/../include/c++/v1/cassert:19: /usr/lib/llvm-16/bin/../include/c++/v1/__assert:22:5: error: "Defining _LIBCPP_DEBUG is not supported anymore. Please use _LIBCPP_ENABLE_DEBUG_MODE instead." ^ 1 error generated. ``` and has been removed entirely in LLVM 17 (main): https://github.com/llvm/llvm-project/commit/ff573a42cd1f1d05508f165dc3e645a0ec17edb5. [Building libc++ in debug mode](https://releases.llvm.org/16.0.0/projects/libcxx/docs/DesignDocs/DebugMode.html), will also automatically set `_LIBCPP_ENABLE_DEBUG_MODE` (the new define), so adding it to depends doesn't seem useful, and would just result in redefinition errors. I'm wondering if as a followup, we could enable a DEBUG build of libc++ in our MSAN CI job? i.e https://github.com/fanquake/bitcoin/tree/msan_with_enable_debug_mode. Somewhat related to https://github.com/google/oss-fuzz/pull/9828, where it looks like we'll have to sort out getting a DEBUG build of LLVM, and can drop the commentary about re-enabling DEBUG=1. ACKs for top commit: MarcoFalke: lgtm Approach ACK bc4fd49d09dec3791b0acd4ada285b2287361d14 Tree-SHA512: 9c0f48fc428278fbf34fbb8f81e761e232506d7ab28e971cb9a9b9a81d549b4d8bbe51e2f7608d56e489428679231da5b7431443849b238a8a993ad241740282 --- depends/hosts/linux.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/hosts/linux.mk b/depends/hosts/linux.mk index 5322520e6f..b5723d83a7 100644 --- a/depends/hosts/linux.mk +++ b/depends/hosts/linux.mk @@ -13,7 +13,7 @@ linux_release_CXXFLAGS=$(linux_release_CFLAGS) linux_debug_CFLAGS=-O1 linux_debug_CXXFLAGS=$(linux_debug_CFLAGS) -linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1 +linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_ENABLE_ASSERTIONS=1 ifeq (86,$(findstring 86,$(build_arch))) i686_linux_CC=gcc -m32