-
Notifications
You must be signed in to change notification settings - Fork 13.2k
[lldb/cmake] Normalize use of HAVE_LIBCOMPRESSION #135528
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
base: main
Are you sure you want to change the base?
Conversation
I *think* this was the reason behind the failures in 2fd860c: the clang include tool showed the Config.h headers as unused, and because the macro was referenced through an `#ifdef`, its removal didn't cause build failures. Switching to `#cmakedefine01` + `#if` should make sure this does not happen again. According to D48977, the `#ifndef`+`#cmakedefine` patterns is due to some files redefining the macro themselves. I no longer see any such files in the source tree (there also were no files like that in the source tree at the revision mentioned, but the macro *was* defined in the hand-maintained XCode project we had at the time).
@llvm/pr-subscribers-lldb Author: Pavel Labath (labath) ChangesI think this was the reason behind the failures in 2fd860c: the clang include tool showed the Config.h headers as unused, and because the macro was referenced through an According to D48977, the Full diff: https://github.com/llvm/llvm-project/pull/135528.diff 4 Files Affected:
diff --git a/lldb/include/lldb/Host/Config.h.cmake b/lldb/include/lldb/Host/Config.h.cmake
index 9e538534086a2..46e9a95781c32 100644
--- a/lldb/include/lldb/Host/Config.h.cmake
+++ b/lldb/include/lldb/Host/Config.h.cmake
@@ -23,9 +23,7 @@
#cmakedefine01 HAVE_NR_PROCESS_VM_READV
-#ifndef HAVE_LIBCOMPRESSION
-#cmakedefine HAVE_LIBCOMPRESSION
-#endif
+#cmakedefine01 HAVE_LIBCOMPRESSION
#cmakedefine01 LLDB_ENABLE_POSIX
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
index 77eadfc8c9f6c..ed9a0dad48eb9 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
@@ -46,7 +46,7 @@
#define DEBUGSERVER_BASENAME "lldb-server"
#endif
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
#include <compression.h>
#endif
@@ -77,7 +77,7 @@ GDBRemoteCommunication::~GDBRemoteCommunication() {
Disconnect();
}
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
if (m_decompression_scratch)
free (m_decompression_scratch);
#endif
@@ -514,7 +514,7 @@ bool GDBRemoteCommunication::DecompressPacket() {
}
}
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
if (m_compression_type == CompressionType::ZlibDeflate ||
m_compression_type == CompressionType::LZFSE ||
m_compression_type == CompressionType::LZ4 ||
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
index 107c0896c4e61..45688d24bc5c2 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
@@ -227,7 +227,7 @@ class GDBRemoteCommunication : public Communication {
HostThread m_listen_thread;
std::string m_listen_url;
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
CompressionType m_decompression_scratch_type = CompressionType::None;
void *m_decompression_scratch = nullptr;
#endif
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index 501670d62e75b..748f95c61cd3c 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -41,7 +41,7 @@
#include "llvm/Config/llvm-config.h" // for LLVM_ENABLE_ZLIB
#include "llvm/Support/JSON.h"
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
#include <compression.h>
#endif
@@ -1104,7 +1104,7 @@ void GDBRemoteCommunicationClient::MaybeEnableCompression(
CompressionType avail_type = CompressionType::None;
llvm::StringRef avail_name;
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
if (avail_type == CompressionType::None) {
for (auto compression : supported_compressions) {
if (compression == "lzfse") {
@@ -1114,9 +1114,6 @@ void GDBRemoteCommunicationClient::MaybeEnableCompression(
}
}
}
-#endif
-
-#if defined(HAVE_LIBCOMPRESSION)
if (avail_type == CompressionType::None) {
for (auto compression : supported_compressions) {
if (compression == "zlib-deflate") {
@@ -1140,7 +1137,7 @@ void GDBRemoteCommunicationClient::MaybeEnableCompression(
}
#endif
-#if defined(HAVE_LIBCOMPRESSION)
+#if HAVE_LIBCOMPRESSION
if (avail_type == CompressionType::None) {
for (auto compression : supported_compressions) {
if (compression == "lz4") {
@@ -1150,9 +1147,6 @@ void GDBRemoteCommunicationClient::MaybeEnableCompression(
}
}
}
-#endif
-
-#if defined(HAVE_LIBCOMPRESSION)
if (avail_type == CompressionType::None) {
for (auto compression : supported_compressions) {
if (compression == "lzma") {
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
I think this was the reason behind the failures in 2fd860c: the clang include tool showed the Config.h headers as unused, and because the macro was referenced through an
#ifdef
, its removal didn't cause build failures. Switching to#cmakedefine01
+#if
should make sure this does not happen again.According to D48977, the
#ifndef
+#cmakedefine
patterns is due to some files redefining the macro themselves. I no longer see any such files in the source tree (there also were no files like that in the source tree at the revision mentioned, but the macro was defined in the hand-maintained XCode project we had at the time).