Linux/glibc sys/param.h has definitions of MIN/MAX that result in
multiple evaluations of its parameters. Force local definitions.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
}
/* Fletcher Checksum -- Refer to RFC1008. */
-#define MODX 4102 /* 5802 should be fine */
+#define MODX 4102U /* 5802 should be fine */
/* To be consistent, offset is 0-based index, rather than the 1-based
index required in the specification ISO 8473, Annex C.1 */
#endif /* ndef BYTE_ORDER */
/* MAX / MIN are not commonly defined, but useful */
-#ifndef MAX
+/* note: glibc sys/param.h has #define MIN(a,b) (((a)<(b))?(a):(b)) */
+#ifdef MAX
+#undef MAX
+#endif
#define MAX(a, b) \
({ typeof (a) _a = (a); \
typeof (b) _b = (b); \
_a > _b ? _a : _b; })
+#ifdef MIN
+#undef MIN
#endif
-#ifndef MIN
#define MIN(a, b) \
({ typeof (a) _a = (a); \
typeof (b) _b = (b); \
_a < _b ? _a : _b; })
-#endif
#define ZEBRA_NUM_OF(x) (sizeof (x) / sizeof (x[0]))