Message ID | 1338136323-53160-1-git-send-email-andreas.faerber@web.de |
---|---|
State | New |
Headers | show |
Am 27.05.2012 18:32, schrieb Andreas Färber: > 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. > > Signed-off-by: Andreas Färber <andreas.faerber@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..6e98b1d 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) > +# endif > +# ifndef NTOHS > +# define NTOHS(d) > +# endif > +# ifndef HTONL > +# define HTONL(d) > +# endif > +# ifndef HTONS > +# define HTONS(d) > +# endif Ahem, these would have the same issue. v2 coming up. Andreas > # endif > #else > # ifndef NTOHL
diff --git a/slirp/ip.h b/slirp/ip.h index 88c903f..6e98b1d 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) +# endif +# ifndef NTOHS +# define NTOHS(d) +# endif +# ifndef HTONL +# define HTONL(d) +# endif +# ifndef HTONS +# define HTONS(d) +# endif # endif #else # ifndef NTOHL
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. Signed-off-by: Andreas Färber <andreas.faerber@web.de> --- slirp/ip.h | 33 ++++++++++++++++++++++----------- 1 files changed, 22 insertions(+), 11 deletions(-)