/* Generated by ./xlat/gen.sh from ./xlat/sock_options.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(SO_DEBUG) || (defined(HAVE_DECL_SO_DEBUG) && HAVE_DECL_SO_DEBUG)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DEBUG) == (1), "SO_DEBUG != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DEBUG 1
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_REUSEADDR) || (defined(HAVE_DECL_SO_REUSEADDR) && HAVE_DECL_SO_REUSEADDR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_REUSEADDR) == (4), "SO_REUSEADDR != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_REUSEADDR 4
#endif
#else
#if defined(SO_REUSEADDR) || (defined(HAVE_DECL_SO_REUSEADDR) && HAVE_DECL_SO_REUSEADDR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_REUSEADDR) == (2), "SO_REUSEADDR != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_REUSEADDR 2
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_TYPE) || (defined(HAVE_DECL_SO_TYPE) && HAVE_DECL_SO_TYPE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TYPE) == (4104), "SO_TYPE != 4104");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TYPE 4104
#endif
#else
#if defined(SO_TYPE) || (defined(HAVE_DECL_SO_TYPE) && HAVE_DECL_SO_TYPE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TYPE) == (3), "SO_TYPE != 3");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TYPE 3
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_ERROR) || (defined(HAVE_DECL_SO_ERROR) && HAVE_DECL_SO_ERROR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ERROR) == (4103), "SO_ERROR != 4103");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ERROR 4103
#endif
#else
#if defined(SO_ERROR) || (defined(HAVE_DECL_SO_ERROR) && HAVE_DECL_SO_ERROR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ERROR) == (4), "SO_ERROR != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ERROR 4
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_DONTROUTE) || (defined(HAVE_DECL_SO_DONTROUTE) && HAVE_DECL_SO_DONTROUTE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DONTROUTE) == (16), "SO_DONTROUTE != 16");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DONTROUTE 16
#endif
#else
#if defined(SO_DONTROUTE) || (defined(HAVE_DECL_SO_DONTROUTE) && HAVE_DECL_SO_DONTROUTE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DONTROUTE) == (5), "SO_DONTROUTE != 5");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DONTROUTE 5
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_BROADCAST) || (defined(HAVE_DECL_SO_BROADCAST) && HAVE_DECL_SO_BROADCAST)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BROADCAST) == (32), "SO_BROADCAST != 32");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BROADCAST 32
#endif
#else
#if defined(SO_BROADCAST) || (defined(HAVE_DECL_SO_BROADCAST) && HAVE_DECL_SO_BROADCAST)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BROADCAST) == (6), "SO_BROADCAST != 6");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BROADCAST 6
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_SNDBUF) || (defined(HAVE_DECL_SO_SNDBUF) && HAVE_DECL_SO_SNDBUF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDBUF) == (4097), "SO_SNDBUF != 4097");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDBUF 4097
#endif
#else
#if defined(SO_SNDBUF) || (defined(HAVE_DECL_SO_SNDBUF) && HAVE_DECL_SO_SNDBUF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDBUF) == (7), "SO_SNDBUF != 7");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDBUF 7
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_RCVBUF) || (defined(HAVE_DECL_SO_RCVBUF) && HAVE_DECL_SO_RCVBUF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVBUF) == (4098), "SO_RCVBUF != 4098");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVBUF 4098
#endif
#else
#if defined(SO_RCVBUF) || (defined(HAVE_DECL_SO_RCVBUF) && HAVE_DECL_SO_RCVBUF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVBUF) == (8), "SO_RCVBUF != 8");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVBUF 8
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_KEEPALIVE) || (defined(HAVE_DECL_SO_KEEPALIVE) && HAVE_DECL_SO_KEEPALIVE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_KEEPALIVE) == (8), "SO_KEEPALIVE != 8");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_KEEPALIVE 8
#endif
#else
#if defined(SO_KEEPALIVE) || (defined(HAVE_DECL_SO_KEEPALIVE) && HAVE_DECL_SO_KEEPALIVE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_KEEPALIVE) == (9), "SO_KEEPALIVE != 9");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_KEEPALIVE 9
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_OOBINLINE) || (defined(HAVE_DECL_SO_OOBINLINE) && HAVE_DECL_SO_OOBINLINE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_OOBINLINE) == (256), "SO_OOBINLINE != 256");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_OOBINLINE 256
#endif
#else
#if defined(SO_OOBINLINE) || (defined(HAVE_DECL_SO_OOBINLINE) && HAVE_DECL_SO_OOBINLINE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_OOBINLINE) == (10), "SO_OOBINLINE != 10");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_OOBINLINE 10
#endif
#endif
#if defined __hppa__
#if defined(SO_NO_CHECK) || (defined(HAVE_DECL_SO_NO_CHECK) && HAVE_DECL_SO_NO_CHECK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_NO_CHECK) == (16395), "SO_NO_CHECK != 16395");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_NO_CHECK 16395
#endif
#else
#if defined(SO_NO_CHECK) || (defined(HAVE_DECL_SO_NO_CHECK) && HAVE_DECL_SO_NO_CHECK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_NO_CHECK) == (11), "SO_NO_CHECK != 11");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_NO_CHECK 11
#endif
#endif
#if defined __hppa__
#if defined(SO_PRIORITY) || (defined(HAVE_DECL_SO_PRIORITY) && HAVE_DECL_SO_PRIORITY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PRIORITY) == (16396), "SO_PRIORITY != 16396");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PRIORITY 16396
#endif
#else
#if defined(SO_PRIORITY) || (defined(HAVE_DECL_SO_PRIORITY) && HAVE_DECL_SO_PRIORITY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PRIORITY) == (12), "SO_PRIORITY != 12");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PRIORITY 12
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_LINGER) || (defined(HAVE_DECL_SO_LINGER) && HAVE_DECL_SO_LINGER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_LINGER) == (128), "SO_LINGER != 128");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_LINGER 128
#endif
#else
#if defined(SO_LINGER) || (defined(HAVE_DECL_SO_LINGER) && HAVE_DECL_SO_LINGER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_LINGER) == (13), "SO_LINGER != 13");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_LINGER 13
#endif
#endif
#if defined __sparc__
#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BSDCOMPAT) == (1024), "SO_BSDCOMPAT != 1024");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BSDCOMPAT 1024
#endif
#elif defined __hppa__
#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BSDCOMPAT) == (16398), "SO_BSDCOMPAT != 16398");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BSDCOMPAT 16398
#endif
#else
#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BSDCOMPAT) == (14), "SO_BSDCOMPAT != 14");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BSDCOMPAT 14
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_REUSEPORT) || (defined(HAVE_DECL_SO_REUSEPORT) && HAVE_DECL_SO_REUSEPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_REUSEPORT) == (512), "SO_REUSEPORT != 512");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_REUSEPORT 512
#endif
#else
#if defined(SO_REUSEPORT) || (defined(HAVE_DECL_SO_REUSEPORT) && HAVE_DECL_SO_REUSEPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_REUSEPORT) == (15), "SO_REUSEPORT != 15");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_REUSEPORT 15
#endif
#endif
#if defined __sparc__
#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSCRED) == (2), "SO_PASSCRED != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSCRED 2
#endif
#elif defined __alpha__ || defined __mips__
#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSCRED) == (17), "SO_PASSCRED != 17");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSCRED 17
#endif
#elif defined __powerpc__
#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSCRED) == (20), "SO_PASSCRED != 20");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSCRED 20
#endif
#elif defined __hppa__
#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSCRED) == (16400), "SO_PASSCRED != 16400");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSCRED 16400
#endif
#else
#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSCRED) == (16), "SO_PASSCRED != 16");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSCRED 16
#endif
#endif
#if defined __alpha__ || defined __mips__
#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERCRED) == (18), "SO_PEERCRED != 18");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERCRED 18
#endif
#elif defined __powerpc__
#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERCRED) == (21), "SO_PEERCRED != 21");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERCRED 21
#endif
#elif defined __sparc__
#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERCRED) == (64), "SO_PEERCRED != 64");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERCRED 64
#endif
#elif defined __hppa__
#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERCRED) == (16401), "SO_PEERCRED != 16401");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERCRED 16401
#endif
#else
#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERCRED) == (17), "SO_PEERCRED != 17");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERCRED 17
#endif
#endif
#if defined __powerpc__
#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVLOWAT) == (16), "SO_RCVLOWAT != 16");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVLOWAT 16
#endif
#elif defined __sparc__
#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVLOWAT) == (2048), "SO_RCVLOWAT != 2048");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVLOWAT 2048
#endif
#elif defined __hppa__ || defined __mips__
#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVLOWAT) == (4100), "SO_RCVLOWAT != 4100");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVLOWAT 4100
#endif
#elif defined __alpha__
#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVLOWAT) == (4112), "SO_RCVLOWAT != 4112");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVLOWAT 4112
#endif
#else
#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVLOWAT) == (18), "SO_RCVLOWAT != 18");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVLOWAT 18
#endif
#endif
#if defined __powerpc__
#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDLOWAT) == (17), "SO_SNDLOWAT != 17");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDLOWAT 17
#endif
#elif defined __sparc__
#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDLOWAT) == (4096), "SO_SNDLOWAT != 4096");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDLOWAT 4096
#endif
#elif defined __hppa__ || defined __mips__
#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDLOWAT) == (4099), "SO_SNDLOWAT != 4099");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDLOWAT 4099
#endif
#elif defined __alpha__
#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDLOWAT) == (4113), "SO_SNDLOWAT != 4113");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDLOWAT 4113
#endif
#else
#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDLOWAT) == (19), "SO_SNDLOWAT != 19");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDLOWAT 19
#endif
#endif
#if defined __powerpc__
#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVTIMEO) == (18), "SO_RCVTIMEO != 18");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVTIMEO 18
#endif
#elif defined __hppa__ || defined __mips__
#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVTIMEO) == (4102), "SO_RCVTIMEO != 4102");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVTIMEO 4102
#endif
#elif defined __alpha__
#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVTIMEO) == (4114), "SO_RCVTIMEO != 4114");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVTIMEO 4114
#endif
#elif defined __sparc__
#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVTIMEO) == (8192), "SO_RCVTIMEO != 8192");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVTIMEO 8192
#endif
#else
#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVTIMEO) == (20), "SO_RCVTIMEO != 20");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVTIMEO 20
#endif
#endif
#if defined __powerpc__
#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDTIMEO) == (19), "SO_SNDTIMEO != 19");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDTIMEO 19
#endif
#elif defined __hppa__ || defined __mips__
#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDTIMEO) == (4101), "SO_SNDTIMEO != 4101");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDTIMEO 4101
#endif
#elif defined __alpha__
#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDTIMEO) == (4115), "SO_SNDTIMEO != 4115");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDTIMEO 4115
#endif
#elif defined __sparc__
#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDTIMEO) == (16384), "SO_SNDTIMEO != 16384");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDTIMEO 16384
#endif
#else
#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDTIMEO) == (21), "SO_SNDTIMEO != 21");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDTIMEO 21
#endif
#endif
#if defined __alpha__
#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_AUTHENTICATION) == (19), "SO_SECURITY_AUTHENTICATION != 19");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_AUTHENTICATION 19
#endif
#elif defined __hppa__
#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_AUTHENTICATION) == (16406), "SO_SECURITY_AUTHENTICATION != 16406");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_AUTHENTICATION 16406
#endif
#elif defined __sparc__
#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_AUTHENTICATION) == (20481), "SO_SECURITY_AUTHENTICATION != 20481");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_AUTHENTICATION 20481
#endif
#else
#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_AUTHENTICATION) == (22), "SO_SECURITY_AUTHENTICATION != 22");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_AUTHENTICATION 22
#endif
#endif
#if defined __alpha__
#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (20), "SO_SECURITY_ENCRYPTION_TRANSPORT != 20");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_TRANSPORT 20
#endif
#elif defined __hppa__
#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (16407), "SO_SECURITY_ENCRYPTION_TRANSPORT != 16407");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_TRANSPORT 16407
#endif
#elif defined __sparc__
#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (20482), "SO_SECURITY_ENCRYPTION_TRANSPORT != 20482");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_TRANSPORT 20482
#endif
#else
#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (23), "SO_SECURITY_ENCRYPTION_TRANSPORT != 23");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_TRANSPORT 23
#endif
#endif
#if defined __alpha__
#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (21), "SO_SECURITY_ENCRYPTION_NETWORK != 21");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_NETWORK 21
#endif
#elif defined __hppa__
#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (16408), "SO_SECURITY_ENCRYPTION_NETWORK != 16408");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_NETWORK 16408
#endif
#elif defined __sparc__
#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (20484), "SO_SECURITY_ENCRYPTION_NETWORK != 20484");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_NETWORK 20484
#endif
#else
#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (24), "SO_SECURITY_ENCRYPTION_NETWORK != 24");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SECURITY_ENCRYPTION_NETWORK 24
#endif
#endif
#if defined __sparc__
#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BINDTODEVICE) == (13), "SO_BINDTODEVICE != 13");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BINDTODEVICE 13
#endif
#elif defined __hppa__
#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BINDTODEVICE) == (16409), "SO_BINDTODEVICE != 16409");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BINDTODEVICE 16409
#endif
#else
#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BINDTODEVICE) == (25), "SO_BINDTODEVICE != 25");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BINDTODEVICE 25
#endif
#endif
#if defined __hppa__
#if defined(SO_DETACH_FILTER) || (defined(HAVE_DECL_SO_DETACH_FILTER) && HAVE_DECL_SO_DETACH_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DETACH_FILTER) == (16411), "SO_DETACH_FILTER != 16411");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DETACH_FILTER 16411
#endif
#else
#if defined(SO_DETACH_FILTER) || (defined(HAVE_DECL_SO_DETACH_FILTER) && HAVE_DECL_SO_DETACH_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DETACH_FILTER) == (27), "SO_DETACH_FILTER != 27");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DETACH_FILTER 27
#endif
#endif
#if defined __hppa__
#if defined(SO_PEERNAME) || (defined(HAVE_DECL_SO_PEERNAME) && HAVE_DECL_SO_PEERNAME)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERNAME) == (8192), "SO_PEERNAME != 8192");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERNAME 8192
#endif
#else
#if defined(SO_PEERNAME) || (defined(HAVE_DECL_SO_PEERNAME) && HAVE_DECL_SO_PEERNAME)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERNAME) == (28), "SO_PEERNAME != 28");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERNAME 28
#endif
#endif
#if defined __hppa__
#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMP) == (16402), "SO_TIMESTAMP != 16402");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMP 16402
#endif
#else
#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMP) == (29), "SO_TIMESTAMP != 29");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMP 29
#endif
#endif
#if defined __mips__
#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ACCEPTCONN) == (4105), "SO_ACCEPTCONN != 4105");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ACCEPTCONN 4105
#endif
#elif defined __alpha__
#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ACCEPTCONN) == (4116), "SO_ACCEPTCONN != 4116");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ACCEPTCONN 4116
#endif
#elif defined __hppa__
#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ACCEPTCONN) == (16412), "SO_ACCEPTCONN != 16412");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ACCEPTCONN 16412
#endif
#elif defined __sparc__
#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ACCEPTCONN) == (32768), "SO_ACCEPTCONN != 32768");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ACCEPTCONN 32768
#endif
#else
#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ACCEPTCONN) == (30), "SO_ACCEPTCONN != 30");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ACCEPTCONN 30
#endif
#endif
#if defined __alpha__ || defined __mips__ || defined __sparc__
#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERSEC) == (30), "SO_PEERSEC != 30");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERSEC 30
#endif
#elif defined __hppa__
#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERSEC) == (16413), "SO_PEERSEC != 16413");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERSEC 16413
#endif
#else
#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERSEC) == (31), "SO_PEERSEC != 31");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERSEC 31
#endif
#endif
#if defined __mips__
#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDBUFFORCE) == (31), "SO_SNDBUFFORCE != 31");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDBUFFORCE 31
#endif
#elif defined __alpha__ || defined __hppa__ || defined __sparc__
#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDBUFFORCE) == (4106), "SO_SNDBUFFORCE != 4106");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDBUFFORCE 4106
#endif
#else
#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SNDBUFFORCE) == (32), "SO_SNDBUFFORCE != 32");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SNDBUFFORCE 32
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __sparc__
#if defined(SO_RCVBUFFORCE) || (defined(HAVE_DECL_SO_RCVBUFFORCE) && HAVE_DECL_SO_RCVBUFFORCE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVBUFFORCE) == (4107), "SO_RCVBUFFORCE != 4107");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVBUFFORCE 4107
#endif
#else
#if defined(SO_RCVBUFFORCE) || (defined(HAVE_DECL_SO_RCVBUFFORCE) && HAVE_DECL_SO_RCVBUFFORCE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RCVBUFFORCE) == (33), "SO_RCVBUFFORCE != 33");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RCVBUFFORCE 33
#endif
#endif
#if defined __sparc__
#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSSEC) == (31), "SO_PASSSEC != 31");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSSEC 31
#endif
#elif defined __hppa__
#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSSEC) == (16414), "SO_PASSSEC != 16414");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSSEC 16414
#endif
#else
#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PASSSEC) == (34), "SO_PASSSEC != 34");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PASSSEC 34
#endif
#endif
#if defined __sparc__
#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPNS) == (33), "SO_TIMESTAMPNS != 33");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPNS 33
#endif
#elif defined __hppa__
#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPNS) == (16403), "SO_TIMESTAMPNS != 16403");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPNS 16403
#endif
#else
#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPNS) == (35), "SO_TIMESTAMPNS != 35");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPNS 35
#endif
#endif
#if defined __sparc__
#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MARK) == (34), "SO_MARK != 34");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MARK 34
#endif
#elif defined __hppa__
#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MARK) == (16415), "SO_MARK != 16415");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MARK 16415
#endif
#else
#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MARK) == (36), "SO_MARK != 36");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MARK 36
#endif
#endif
#if defined __sparc__
#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPING) == (35), "SO_TIMESTAMPING != 35");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPING 35
#endif
#elif defined __hppa__
#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPING) == (16416), "SO_TIMESTAMPING != 16416");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPING 16416
#endif
#else
#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TIMESTAMPING) == (37), "SO_TIMESTAMPING != 37");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TIMESTAMPING 37
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_PROTOCOL) || (defined(HAVE_DECL_SO_PROTOCOL) && HAVE_DECL_SO_PROTOCOL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PROTOCOL) == (4136), "SO_PROTOCOL != 4136");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PROTOCOL 4136
#endif
#else
#if defined(SO_PROTOCOL) || (defined(HAVE_DECL_SO_PROTOCOL) && HAVE_DECL_SO_PROTOCOL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PROTOCOL) == (38), "SO_PROTOCOL != 38");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PROTOCOL 38
#endif
#endif
#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
#if defined(SO_DOMAIN) || (defined(HAVE_DECL_SO_DOMAIN) && HAVE_DECL_SO_DOMAIN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DOMAIN) == (4137), "SO_DOMAIN != 4137");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DOMAIN 4137
#endif
#else
#if defined(SO_DOMAIN) || (defined(HAVE_DECL_SO_DOMAIN) && HAVE_DECL_SO_DOMAIN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_DOMAIN) == (39), "SO_DOMAIN != 39");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_DOMAIN 39
#endif
#endif
#if defined __sparc__
#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RXQ_OVFL) == (36), "SO_RXQ_OVFL != 36");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RXQ_OVFL 36
#endif
#elif defined __hppa__
#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RXQ_OVFL) == (16417), "SO_RXQ_OVFL != 16417");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RXQ_OVFL 16417
#endif
#else
#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_RXQ_OVFL) == (40), "SO_RXQ_OVFL != 40");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_RXQ_OVFL 40
#endif
#endif
#if defined __sparc__
#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_WIFI_STATUS) == (37), "SO_WIFI_STATUS != 37");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_WIFI_STATUS 37
#endif
#elif defined __hppa__
#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_WIFI_STATUS) == (16418), "SO_WIFI_STATUS != 16418");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_WIFI_STATUS 16418
#endif
#else
#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_WIFI_STATUS) == (41), "SO_WIFI_STATUS != 41");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_WIFI_STATUS 41
#endif
#endif
#if defined __sparc__
#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEEK_OFF) == (38), "SO_PEEK_OFF != 38");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEEK_OFF 38
#endif
#elif defined __hppa__
#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEEK_OFF) == (16419), "SO_PEEK_OFF != 16419");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEEK_OFF 16419
#endif
#else
#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEEK_OFF) == (42), "SO_PEEK_OFF != 42");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEEK_OFF 42
#endif
#endif
#if defined __sparc__
#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_NOFCS) == (39), "SO_NOFCS != 39");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_NOFCS 39
#endif
#elif defined __hppa__
#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_NOFCS) == (16420), "SO_NOFCS != 16420");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_NOFCS 16420
#endif
#else
#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_NOFCS) == (43), "SO_NOFCS != 43");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_NOFCS 43
#endif
#endif
#if defined __sparc__
#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_LOCK_FILTER) == (40), "SO_LOCK_FILTER != 40");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_LOCK_FILTER 40
#endif
#elif defined __hppa__
#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_LOCK_FILTER) == (16421), "SO_LOCK_FILTER != 16421");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_LOCK_FILTER 16421
#endif
#else
#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_LOCK_FILTER) == (44), "SO_LOCK_FILTER != 44");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_LOCK_FILTER 44
#endif
#endif
#if defined __sparc__
#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SELECT_ERR_QUEUE) == (41), "SO_SELECT_ERR_QUEUE != 41");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SELECT_ERR_QUEUE 41
#endif
#elif defined __hppa__
#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SELECT_ERR_QUEUE) == (16422), "SO_SELECT_ERR_QUEUE != 16422");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SELECT_ERR_QUEUE 16422
#endif
#else
#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_SELECT_ERR_QUEUE) == (45), "SO_SELECT_ERR_QUEUE != 45");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_SELECT_ERR_QUEUE 45
#endif
#endif
#if defined __sparc__
#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BUSY_POLL) == (48), "SO_BUSY_POLL != 48");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BUSY_POLL 48
#endif
#elif defined __hppa__
#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BUSY_POLL) == (16423), "SO_BUSY_POLL != 16423");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BUSY_POLL 16423
#endif
#else
#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BUSY_POLL) == (46), "SO_BUSY_POLL != 46");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BUSY_POLL 46
#endif
#endif
#if defined __sparc__
#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MAX_PACING_RATE) == (49), "SO_MAX_PACING_RATE != 49");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MAX_PACING_RATE 49
#endif
#elif defined __hppa__
#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MAX_PACING_RATE) == (16424), "SO_MAX_PACING_RATE != 16424");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MAX_PACING_RATE 16424
#endif
#else
#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MAX_PACING_RATE) == (47), "SO_MAX_PACING_RATE != 47");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MAX_PACING_RATE 47
#endif
#endif
#if defined __sparc__
#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BPF_EXTENSIONS) == (50), "SO_BPF_EXTENSIONS != 50");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BPF_EXTENSIONS 50
#endif
#elif defined __hppa__
#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BPF_EXTENSIONS) == (16425), "SO_BPF_EXTENSIONS != 16425");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BPF_EXTENSIONS 16425
#endif
#else
#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_BPF_EXTENSIONS) == (48), "SO_BPF_EXTENSIONS != 48");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_BPF_EXTENSIONS 48
#endif
#endif
#if defined __sparc__
#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_CPU) == (51), "SO_INCOMING_CPU != 51");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_CPU 51
#endif
#elif defined __hppa__
#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_CPU) == (16426), "SO_INCOMING_CPU != 16426");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_CPU 16426
#endif
#else
#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_CPU) == (49), "SO_INCOMING_CPU != 49");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_CPU 49
#endif
#endif
#if defined __sparc__
#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_BPF) == (52), "SO_ATTACH_BPF != 52");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_BPF 52
#endif
#elif defined __hppa__
#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_BPF) == (16427), "SO_ATTACH_BPF != 16427");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_BPF 16427
#endif
#else
#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_BPF) == (50), "SO_ATTACH_BPF != 50");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_BPF 50
#endif
#endif
#if defined __sparc__
#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_CBPF) == (53), "SO_ATTACH_REUSEPORT_CBPF != 53");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_CBPF 53
#endif
#elif defined __hppa__
#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_CBPF) == (16428), "SO_ATTACH_REUSEPORT_CBPF != 16428");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_CBPF 16428
#endif
#else
#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_CBPF) == (51), "SO_ATTACH_REUSEPORT_CBPF != 51");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_CBPF 51
#endif
#endif
#if defined __sparc__
#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_EBPF) == (54), "SO_ATTACH_REUSEPORT_EBPF != 54");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_EBPF 54
#endif
#elif defined __hppa__
#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_EBPF) == (16429), "SO_ATTACH_REUSEPORT_EBPF != 16429");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_EBPF 16429
#endif
#else
#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_REUSEPORT_EBPF) == (52), "SO_ATTACH_REUSEPORT_EBPF != 52");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_REUSEPORT_EBPF 52
#endif
#endif
#if defined __sparc__
#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_CNX_ADVICE) == (55), "SO_CNX_ADVICE != 55");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_CNX_ADVICE 55
#endif
#elif defined __hppa__
#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_CNX_ADVICE) == (16430), "SO_CNX_ADVICE != 16430");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_CNX_ADVICE 16430
#endif
#else
#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_CNX_ADVICE) == (53), "SO_CNX_ADVICE != 53");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_CNX_ADVICE 53
#endif
#endif
#if defined __sparc__
#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MEMINFO) == (57), "SO_MEMINFO != 57");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MEMINFO 57
#endif
#elif defined __hppa__
#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MEMINFO) == (16432), "SO_MEMINFO != 16432");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MEMINFO 16432
#endif
#else
#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_MEMINFO) == (55), "SO_MEMINFO != 55");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_MEMINFO 55
#endif
#endif
#if defined __sparc__
#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_NAPI_ID) == (58), "SO_INCOMING_NAPI_ID != 58");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_NAPI_ID 58
#endif
#elif defined __hppa__
#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_NAPI_ID) == (16433), "SO_INCOMING_NAPI_ID != 16433");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_NAPI_ID 16433
#endif
#else
#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_INCOMING_NAPI_ID) == (56), "SO_INCOMING_NAPI_ID != 56");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_INCOMING_NAPI_ID 56
#endif
#endif
#if defined __sparc__
#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_COOKIE) == (59), "SO_COOKIE != 59");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_COOKIE 59
#endif
#elif defined __hppa__
#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_COOKIE) == (16434), "SO_COOKIE != 16434");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_COOKIE 16434
#endif
#else
#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_COOKIE) == (57), "SO_COOKIE != 57");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_COOKIE 57
#endif
#endif
#if defined __sparc__
#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERGROUPS) == (61), "SO_PEERGROUPS != 61");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERGROUPS 61
#endif
#elif defined __hppa__
#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERGROUPS) == (16436), "SO_PEERGROUPS != 16436");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERGROUPS 16436
#endif
#else
#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_PEERGROUPS) == (59), "SO_PEERGROUPS != 59");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_PEERGROUPS 59
#endif
#endif
#if defined __sparc__
#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ZEROCOPY) == (62), "SO_ZEROCOPY != 62");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ZEROCOPY 62
#endif
#elif defined __hppa__
#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ZEROCOPY) == (16437), "SO_ZEROCOPY != 16437");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ZEROCOPY 16437
#endif
#else
#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ZEROCOPY) == (60), "SO_ZEROCOPY != 60");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ZEROCOPY 60
#endif
#endif
#if defined __sparc__
#if defined(SO_TXTIME) || (defined(HAVE_DECL_SO_TXTIME) && HAVE_DECL_SO_TXTIME)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TXTIME) == (63), "SO_TXTIME != 63");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TXTIME 63
#endif
#elif defined __hppa__
#if defined(SO_TXTIME) || (defined(HAVE_DECL_SO_TXTIME) && HAVE_DECL_SO_TXTIME)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TXTIME) == (16438), "SO_TXTIME != 16438");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TXTIME 16438
#endif
#else
#if defined(SO_TXTIME) || (defined(HAVE_DECL_SO_TXTIME) && HAVE_DECL_SO_TXTIME)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_TXTIME) == (61), "SO_TXTIME != 61");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_TXTIME 61
#endif
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat sock_options in mpers mode

# else

static
const struct xlat sock_options[] = {


 XLAT(SO_DEBUG),

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_REUSEADDR),
#else
 XLAT(SO_REUSEADDR),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_TYPE),
#else
 XLAT(SO_TYPE),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_ERROR),
#else
 XLAT(SO_ERROR),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_DONTROUTE),
#else
 XLAT(SO_DONTROUTE),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_BROADCAST),
#else
 XLAT(SO_BROADCAST),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_SNDBUF),
#else
 XLAT(SO_SNDBUF),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_RCVBUF),
#else
 XLAT(SO_RCVBUF),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_KEEPALIVE),
#else
 XLAT(SO_KEEPALIVE),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_OOBINLINE),
#else
 XLAT(SO_OOBINLINE),
#endif

#if defined __hppa__
 XLAT(SO_NO_CHECK),
#else
 XLAT(SO_NO_CHECK),
#endif

#if defined __hppa__
 XLAT(SO_PRIORITY),
#else
 XLAT(SO_PRIORITY),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_LINGER),
#else
 XLAT(SO_LINGER),
#endif

#if defined __sparc__
 XLAT(SO_BSDCOMPAT),
#elif defined __hppa__
 XLAT(SO_BSDCOMPAT),
#else
 XLAT(SO_BSDCOMPAT),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_REUSEPORT),
#else
 XLAT(SO_REUSEPORT),
#endif

#if defined __sparc__
 XLAT(SO_PASSCRED),
#elif defined __alpha__ || defined __mips__
 XLAT(SO_PASSCRED),
#elif defined __powerpc__
 XLAT(SO_PASSCRED),
#elif defined __hppa__
 XLAT(SO_PASSCRED),
#else
 XLAT(SO_PASSCRED),
#endif

#if defined __alpha__ || defined __mips__
 XLAT(SO_PEERCRED),
#elif defined __powerpc__
 XLAT(SO_PEERCRED),
#elif defined __sparc__
 XLAT(SO_PEERCRED),
#elif defined __hppa__
 XLAT(SO_PEERCRED),
#else
 XLAT(SO_PEERCRED),
#endif

#if defined __powerpc__
 XLAT(SO_RCVLOWAT),
#elif defined __sparc__
 XLAT(SO_RCVLOWAT),
#elif defined __hppa__ || defined __mips__
 XLAT(SO_RCVLOWAT),
#elif defined __alpha__
 XLAT(SO_RCVLOWAT),
#else
 XLAT(SO_RCVLOWAT),
#endif

#if defined __powerpc__
 XLAT(SO_SNDLOWAT),
#elif defined __sparc__
 XLAT(SO_SNDLOWAT),
#elif defined __hppa__ || defined __mips__
 XLAT(SO_SNDLOWAT),
#elif defined __alpha__
 XLAT(SO_SNDLOWAT),
#else
 XLAT(SO_SNDLOWAT),
#endif

#if defined __powerpc__
 XLAT(SO_RCVTIMEO),
#elif defined __hppa__ || defined __mips__
 XLAT(SO_RCVTIMEO),
#elif defined __alpha__
 XLAT(SO_RCVTIMEO),
#elif defined __sparc__
 XLAT(SO_RCVTIMEO),
#else
 XLAT(SO_RCVTIMEO),
#endif

#if defined __powerpc__
 XLAT(SO_SNDTIMEO),
#elif defined __hppa__ || defined __mips__
 XLAT(SO_SNDTIMEO),
#elif defined __alpha__
 XLAT(SO_SNDTIMEO),
#elif defined __sparc__
 XLAT(SO_SNDTIMEO),
#else
 XLAT(SO_SNDTIMEO),
#endif

#if defined __alpha__
 XLAT(SO_SECURITY_AUTHENTICATION),
#elif defined __hppa__
 XLAT(SO_SECURITY_AUTHENTICATION),
#elif defined __sparc__
 XLAT(SO_SECURITY_AUTHENTICATION),
#else
 XLAT(SO_SECURITY_AUTHENTICATION),
#endif

#if defined __alpha__
 XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
#elif defined __hppa__
 XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
#elif defined __sparc__
 XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
#else
 XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
#endif

#if defined __alpha__
 XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
#elif defined __hppa__
 XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
#elif defined __sparc__
 XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
#else
 XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
#endif

#if defined __sparc__
 XLAT(SO_BINDTODEVICE),
#elif defined __hppa__
 XLAT(SO_BINDTODEVICE),
#else
 XLAT(SO_BINDTODEVICE),
#endif

#if defined __hppa__
 XLAT(SO_DETACH_FILTER),
#else
 XLAT(SO_DETACH_FILTER),
#endif

#if defined __hppa__
 XLAT(SO_PEERNAME),
#else
 XLAT(SO_PEERNAME),
#endif

#if defined __hppa__
 XLAT(SO_TIMESTAMP),
#else
 XLAT(SO_TIMESTAMP),
#endif

#if defined __mips__
 XLAT(SO_ACCEPTCONN),
#elif defined __alpha__
 XLAT(SO_ACCEPTCONN),
#elif defined __hppa__
 XLAT(SO_ACCEPTCONN),
#elif defined __sparc__
 XLAT(SO_ACCEPTCONN),
#else
 XLAT(SO_ACCEPTCONN),
#endif

#if defined __alpha__ || defined __mips__ || defined __sparc__
 XLAT(SO_PEERSEC),
#elif defined __hppa__
 XLAT(SO_PEERSEC),
#else
 XLAT(SO_PEERSEC),
#endif

#if defined __mips__
 XLAT(SO_SNDBUFFORCE),
#elif defined __alpha__ || defined __hppa__ || defined __sparc__
 XLAT(SO_SNDBUFFORCE),
#else
 XLAT(SO_SNDBUFFORCE),
#endif

#if defined __alpha__ || defined __hppa__ || defined __sparc__
 XLAT(SO_RCVBUFFORCE),
#else
 XLAT(SO_RCVBUFFORCE),
#endif

#if defined __sparc__
 XLAT(SO_PASSSEC),
#elif defined __hppa__
 XLAT(SO_PASSSEC),
#else
 XLAT(SO_PASSSEC),
#endif

#if defined __sparc__
 XLAT(SO_TIMESTAMPNS),
#elif defined __hppa__
 XLAT(SO_TIMESTAMPNS),
#else
 XLAT(SO_TIMESTAMPNS),
#endif

#if defined __sparc__
 XLAT(SO_MARK),
#elif defined __hppa__
 XLAT(SO_MARK),
#else
 XLAT(SO_MARK),
#endif

#if defined __sparc__
 XLAT(SO_TIMESTAMPING),
#elif defined __hppa__
 XLAT(SO_TIMESTAMPING),
#else
 XLAT(SO_TIMESTAMPING),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_PROTOCOL),
#else
 XLAT(SO_PROTOCOL),
#endif

#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
 XLAT(SO_DOMAIN),
#else
 XLAT(SO_DOMAIN),
#endif

#if defined __sparc__
 XLAT(SO_RXQ_OVFL),
#elif defined __hppa__
 XLAT(SO_RXQ_OVFL),
#else
 XLAT(SO_RXQ_OVFL),
#endif

#if defined __sparc__
 XLAT(SO_WIFI_STATUS),
#elif defined __hppa__
 XLAT(SO_WIFI_STATUS),
#else
 XLAT(SO_WIFI_STATUS),
#endif

#if defined __sparc__
 XLAT(SO_PEEK_OFF),
#elif defined __hppa__
 XLAT(SO_PEEK_OFF),
#else
 XLAT(SO_PEEK_OFF),
#endif

#if defined __sparc__
 XLAT(SO_NOFCS),
#elif defined __hppa__
 XLAT(SO_NOFCS),
#else
 XLAT(SO_NOFCS),
#endif

#if defined __sparc__
 XLAT(SO_LOCK_FILTER),
#elif defined __hppa__
 XLAT(SO_LOCK_FILTER),
#else
 XLAT(SO_LOCK_FILTER),
#endif

#if defined __sparc__
 XLAT(SO_SELECT_ERR_QUEUE),
#elif defined __hppa__
 XLAT(SO_SELECT_ERR_QUEUE),
#else
 XLAT(SO_SELECT_ERR_QUEUE),
#endif

#if defined __sparc__
 XLAT(SO_BUSY_POLL),
#elif defined __hppa__
 XLAT(SO_BUSY_POLL),
#else
 XLAT(SO_BUSY_POLL),
#endif

#if defined __sparc__
 XLAT(SO_MAX_PACING_RATE),
#elif defined __hppa__
 XLAT(SO_MAX_PACING_RATE),
#else
 XLAT(SO_MAX_PACING_RATE),
#endif

#if defined __sparc__
 XLAT(SO_BPF_EXTENSIONS),
#elif defined __hppa__
 XLAT(SO_BPF_EXTENSIONS),
#else
 XLAT(SO_BPF_EXTENSIONS),
#endif

#if defined __sparc__
 XLAT(SO_INCOMING_CPU),
#elif defined __hppa__
 XLAT(SO_INCOMING_CPU),
#else
 XLAT(SO_INCOMING_CPU),
#endif

#if defined __sparc__
 XLAT(SO_ATTACH_BPF),
#elif defined __hppa__
 XLAT(SO_ATTACH_BPF),
#else
 XLAT(SO_ATTACH_BPF),
#endif

#if defined __sparc__
 XLAT(SO_ATTACH_REUSEPORT_CBPF),
#elif defined __hppa__
 XLAT(SO_ATTACH_REUSEPORT_CBPF),
#else
 XLAT(SO_ATTACH_REUSEPORT_CBPF),
#endif

#if defined __sparc__
 XLAT(SO_ATTACH_REUSEPORT_EBPF),
#elif defined __hppa__
 XLAT(SO_ATTACH_REUSEPORT_EBPF),
#else
 XLAT(SO_ATTACH_REUSEPORT_EBPF),
#endif

#if defined __sparc__
 XLAT(SO_CNX_ADVICE),
#elif defined __hppa__
 XLAT(SO_CNX_ADVICE),
#else
 XLAT(SO_CNX_ADVICE),
#endif

#if defined __sparc__
 XLAT(SO_MEMINFO),
#elif defined __hppa__
 XLAT(SO_MEMINFO),
#else
 XLAT(SO_MEMINFO),
#endif

#if defined __sparc__
 XLAT(SO_INCOMING_NAPI_ID),
#elif defined __hppa__
 XLAT(SO_INCOMING_NAPI_ID),
#else
 XLAT(SO_INCOMING_NAPI_ID),
#endif

#if defined __sparc__
 XLAT(SO_COOKIE),
#elif defined __hppa__
 XLAT(SO_COOKIE),
#else
 XLAT(SO_COOKIE),
#endif

#if defined __sparc__
 XLAT(SO_PEERGROUPS),
#elif defined __hppa__
 XLAT(SO_PEERGROUPS),
#else
 XLAT(SO_PEERGROUPS),
#endif

#if defined __sparc__
 XLAT(SO_ZEROCOPY),
#elif defined __hppa__
 XLAT(SO_ZEROCOPY),
#else
 XLAT(SO_ZEROCOPY),
#endif

#if defined __sparc__
 XLAT(SO_TXTIME),
#elif defined __hppa__
 XLAT(SO_TXTIME),
#else
 XLAT(SO_TXTIME),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
