seems like both musl libc and android has byteswap.h diff --git a/src/google/protobuf/stubs/port.h b/src/google/protobuf/stubs/port.h --- a/src/google/protobuf/stubs/port.h +++ b/src/google/protobuf/stubs/port.h @@ -93,7 +93,7 @@ #include // NOLINT(build/include) #elif defined(__APPLE__) #include -#elif defined(__GLIBC__) || defined(__CYGWIN__) +#elif defined(__linux__) || defined(__CYGWIN__) #include // IWYU pragma: export #endif @@ -366,7 +366,7 @@ #define bswap_32(x) OSSwapInt32(x) #define bswap_64(x) OSSwapInt64(x) -#elif !defined(__GLIBC__) && !defined(__CYGWIN__) +#elif !defined(__linux__) && !defined(__CYGWIN__) static inline uint16 bswap_16(uint16 x) { return static_cast(((x & 0xFF) << 8) | ((x & 0xFF00) >> 8));