Darwin has HTON*/NTOH* macros that on BE simply return the argument. This is incompatible with SLIRP's use of these macros as a statement.
Special-case Darwin in the HOST_WORDS_BIGENDIAN code path to redefine these macros as no-op statement to avoid tons of compiler warnings. Also adapt the fallback definitions. Signed-off-by: Andreas Färber <andreas.faer...@web.de> --- slirp/ip.h | 33 ++++++++++++++++++++++----------- 1 files changed, 22 insertions(+), 11 deletions(-) diff --git a/slirp/ip.h b/slirp/ip.h index 88c903f..ddf9e9e 100644 --- a/slirp/ip.h +++ b/slirp/ip.h @@ -34,17 +34,28 @@ #define _IP_H_ #ifdef HOST_WORDS_BIGENDIAN -# ifndef NTOHL -# define NTOHL(d) -# endif -# ifndef NTOHS -# define NTOHS(d) -# endif -# ifndef HTONL -# define HTONL(d) -# endif -# ifndef HTONS -# define HTONS(d) +# if defined(__APPLE__) +# undef NTOHL +# undef NTOHS +# undef HTONL +# undef HTONS +# define NTOHL(d) do { } while (0) +# define NTOHS(d) do { } while (0) +# define HTONL(d) do { } while (0) +# define HTONS(d) do { } while (0) +# else +# ifndef NTOHL +# define NTOHL(d) do { } while (0) +# endif +# ifndef NTOHS +# define NTOHS(d) do { } while (0) +# endif +# ifndef HTONL +# define HTONL(d) do { } while (0) +# endif +# ifndef HTONS +# define HTONS(d) do { } while (0) +# endif # endif #else # ifndef NTOHL -- 1.7.5.3