Commit 2896b3e1f8 for aom
commit 2896b3e1f8dec127d14cf607d1da0ba556ff409c
Author: Ihor Buhaiov <freedbrt@gmail.com>
Date: Thu Nov 5 18:23:51 2026 +0100
Add an extern "C" guard to txb_common.h
Since 70dd1176e5, encodetxb_test.cc reads av1_txb_padded_idx from
txb_common.h. The header has no extern "C" block, so C++ code sees
the table with C++ linkage. On the MSVC ABI that name is mangled and
no longer matches the C definition, and test_libaom fails to link
with clang-cl:
lld-link: error: undefined symbol: short const *const *const
av1_txb_padded_idx
>>> referenced by test\encodetxb_test.cc.obj
Linux and macOS link because the Itanium ABI does not mangle global
variables.
Wrap the header in the usual __cplusplus extern "C" block, as the
other av1/common headers do.
Change-Id: I48a65c49626d0a8b9c5ac12d8e027197f86b1592
diff --git a/av1/common/txb_common.h b/av1/common/txb_common.h
index a8a34b00b2..7b3ee8c431 100644
--- a/av1/common/txb_common.h
+++ b/av1/common/txb_common.h
@@ -14,6 +14,10 @@
#include "av1/common/av1_common_int.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern const int16_t av1_eob_group_start[12];
extern const int16_t av1_eob_offset_bits[12];
@@ -473,4 +477,8 @@ static inline void get_txb_ctx(const BLOCK_SIZE plane_bsize,
}
#undef MAX_TX_SIZE_UNIT
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
#endif // AOM_AV1_COMMON_TXB_COMMON_H_