aboutsummaryrefslogtreecommitdiffstats
path: root/android-tools/protobuf-36-absl-log-macros.patch
blob: 3593c7604a96d956725d67b92cfda09e77d7e9d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Felix Yan <felixonmars@archlinux.org>
Date: Thu, 27 Aug 2026 16:00:00 +0800
Subject: [PATCH] adb: keep libbase logging macros after protobuf includes

Protobuf 36's descriptor.h includes absl/log/log.h, which defines the
short LOG and VLOG macros. Several adb sources include generated protobuf
headers after adb's libbase logging/trace headers; those protobuf headers
then replace adb's macros and make adb_trace.h's LOG(DEBUG) expand as
Abseil logging, where DEBUG is not a valid severity.

sysdeps.h is the first include for most adb translation units. Extend its
existing protobuf-first include to cover descriptor.h as well, so Abseil's
short logging macros are seen before android-base/logging.h and adb_trace.h
install adb's macros. Include sysdeps.h first from mdns_tracker.cpp too,
matching the rest of adb host sources.

This keeps adb's logging behavior intact and avoids per-include macro
save/restore blocks.
---
 vendor/adb/client/mdns_tracker.cpp | 2 ++
 vendor/adb/sysdeps.h               | 7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/vendor/adb/client/mdns_tracker.cpp b/vendor/adb/client/mdns_tracker.cpp
index 92ef35086b18..0f21f5054164 100644
--- a/vendor/adb/client/mdns_tracker.cpp
+++ b/vendor/adb/client/mdns_tracker.cpp
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#include "sysdeps.h"
+
 #include "mdns_tracker.h"
 
 #include <list>
diff --git a/vendor/adb/sysdeps.h b/vendor/adb/sysdeps.h
index 970e7cf27b4d..da2a8830317e 100644
--- a/vendor/adb/sysdeps.h
+++ b/vendor/adb/sysdeps.h
@@ -24,9 +24,12 @@
 #  undef _WIN32
 #endif
 
-// Include this protobuf header first, because it uses some write() calls
-// that we will redefine later. Not all modules that include sysdeps.h use
-// protobufs, so only include it if it exists.
+// Include protobuf headers first, because they expose Abseil's LOG/VLOG macros
+// and use some write() calls that we will redefine later. Not all modules that
+// include sysdeps.h use protobufs, so only include them if they exist.
+#if __has_include("google/protobuf/descriptor.h")
+#include "google/protobuf/descriptor.h"
+#endif
 #if __has_include("google/protobuf/io/coded_stream.h")
 #include "google/protobuf/io/coded_stream.h"
 #endif