From 04445460de095884f53170937d5733e74daf2552 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 4 Jun 2024 11:50:07 -0700 Subject: [PATCH] endian: port better to Android NDK r26 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * lib/endian.in.h (be16toh, be32toh, be64toh, htobe16, htobe32) (htobe64, le16toh, le32toh, le64toh, htole16, htole32, htole64): When @HAVE_ENDIAN_H@, define each NAME to rpl_NAME so that they don’t interact incorrectly with system-defined implementations. Problem reported by Po Lu for Android NDK r26 in: https://lists.gnu.org/r/bug-gnulib/2024-06/msg00040.html and this patch is an updated version of Collin Funk’s patch in: https://lists.gnu.org/r/bug-gnulib/2024-06/msg00041.html --- ChangeLog | 12 ++++++++++++ lib/endian.in.h | 18 +++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1200ec0ec8..8e808fd6a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2024-06-04 Paul Eggert + + endian: port better to Android NDK r26 + * lib/endian.in.h (be16toh, be32toh, be64toh, htobe16, htobe32) + (htobe64, le16toh, le32toh, le64toh, htole16, htole32, htole64): + When @HAVE_ENDIAN_H@, define each NAME to rpl_NAME so that they + don’t interact incorrectly with system-defined implementations. + Problem reported by Po Lu for Android NDK r26 in: + https://lists.gnu.org/r/bug-gnulib/2024-06/msg00040.html + and this patch is an updated version of Collin Funk’s patch in: + https://lists.gnu.org/r/bug-gnulib/2024-06/msg00041.html + 2024-06-04 Collin Funk boot-time, readutmp: Fix missing MinGW include (regr. 2024-05-24). diff --git a/lib/endian.in.h b/lib/endian.in.h index bd65ae8aab..156fe49fbd 100644 --- a/lib/endian.in.h +++ b/lib/endian.in.h @@ -69,8 +69,9 @@ _GL_INLINE_HEADER_BEGIN # define BYTE_ORDER LITTLE_ENDIAN #endif -/* Make sure function-like macros get undefined. */ #if @HAVE_ENDIAN_H@ + +/* Make sure we don't have any system definitions. */ # undef be16toh # undef be32toh # undef be64toh @@ -83,6 +84,21 @@ _GL_INLINE_HEADER_BEGIN # undef htole16 # undef htole32 # undef htole64 + +/* Define our own. */ +# define be16toh rpl_endian_be16toh +# define be32toh rpl_endian_be32toh +# define be64toh rpl_endian_be64toh +# define htobe16 rpl_endian_htobe16 +# define htobe32 rpl_endian_htobe32 +# define htobe64 rpl_endian_htobe64 +# define le16toh rpl_endian_le16toh +# define le32toh rpl_endian_le32toh +# define le64toh rpl_endian_le64toh +# define htole16 rpl_endian_htole16 +# define htole32 rpl_endian_htole32 +# define htole64 rpl_endian_htole64 + #endif #ifdef __cplusplus -- 2.39.5