-
Notifications
You must be signed in to change notification settings - Fork 37.7k
depends: Remove _LIBCPP_DEBUG
from depends DEBUG mode
#27447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. |
sgtm |
We'll be removing the `_LIBCPP_DEBUG` (which has been deprecated/removed by LLVM), downstream in bitcoin/bitcoin#27447. So remove the comment about re-enabling DEBUG=1, as that will no-longer do anything for the builds here. We could follow up with getting a Debug Mode build of libc++ available in the oss-fuzz environment.
3da1320
to
625140e
Compare
We'll be removing the `_LIBCPP_DEBUG` (which has been deprecated/removed by LLVM), downstream in bitcoin/bitcoin#27447. So remove the comment about re-enabling DEBUG=1, as that will no-longer do anything for the builds here. We could follow up with getting a Debug Mode build of libc++ available in the oss-fuzz environment.
It was deprecated in LLVM 15, turned into a 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), llvm/llvm-project@ff573a4. Building libc++ in debug mode, 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? Somewhat related to google/oss-fuzz#9828, where it looks like we'll have to sort out getting a DEBUG build of LLVM.
625140e
to
bc4fd49
Compare
This should also fix a segfault with
on master -> segfault on this pull -> no segfault lgtm Approach ACK bc4fd49 |
…UG mode bc4fd49 depends: add _LIBCPP_ENABLE_ASSERTIONS to DEBUG mode (fanquake) cf266b2 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): llvm/llvm-project@ff573a4. [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 google/oss-fuzz#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 bc4fd49 Tree-SHA512: 9c0f48fc428278fbf34fbb8f81e761e232506d7ab28e971cb9a9b9a81d549b4d8bbe51e2f7608d56e489428679231da5b7431443849b238a8a993ad241740282
4de9c2a ci: build libc++ with assertions in MSAN jobs (fanquake) 23b8b20 ci: build libc++ in DEBUG mode in MSAN jobs (fanquake) Pull request description: Followup to #27447. See https://releases.llvm.org/16.0.0/projects/libcxx/docs/DesignDocs/DebugMode.html: > Libc++ provides a debug mode that enables special debugging checks meant to detect incorrect usage of the standard library. These checks are disabled by default, but they can be enabled by vendors when building the library by using LIBCXX_ENABLE_DEBUG_MODE. ACKs for top commit: MarcoFalke: lgtm ACK 4de9c2a Tree-SHA512: 788c7f031ccf7a6ac96a87758e57f604cf4d9db0144f0ecc4931823111d2396e64ab260825d74f06b2770d0ac3e4e2c21c46f4def046cf3e1a44d705921ab6d2
4de9c2a ci: build libc++ with assertions in MSAN jobs (fanquake) 23b8b20 ci: build libc++ in DEBUG mode in MSAN jobs (fanquake) Pull request description: Followup to bitcoin#27447. See https://releases.llvm.org/16.0.0/projects/libcxx/docs/DesignDocs/DebugMode.html: > Libc++ provides a debug mode that enables special debugging checks meant to detect incorrect usage of the standard library. These checks are disabled by default, but they can be enabled by vendors when building the library by using LIBCXX_ENABLE_DEBUG_MODE. ACKs for top commit: MarcoFalke: lgtm ACK 4de9c2a Tree-SHA512: 788c7f031ccf7a6ac96a87758e57f604cf4d9db0144f0ecc4931823111d2396e64ab260825d74f06b2770d0ac3e4e2c21c46f4def046cf3e1a44d705921ab6d2
It was deprecated in LLVM 15, turned into compile-time error in LLVM 16:
and has been removed entirely in LLVM 17 (main): llvm/llvm-project@ff573a4.
Building libc++ in debug mode, will also automatically set
_LIBCPP_ENABLE_DEBUG_MODE
(the new define), so adding it to dependsdoesn'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 google/oss-fuzz#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.