linux/pkt_cls.h indirectly includes linux/stddef.h, which may define
__always_inline when using Linux kernel headers 4.6 or later.

netinet/in.h indirectly includes sys/cdefs.h, which before Glibc 2.24
would unconditionally define __always_inline.

This combination of headers causes compilation failure. Resolve the
issue by placing the netinet/in.h include above linux/pkt_cls.h.

Sourceware-BZ: #20215.
Fixes: f98e418fbdb6 ("tc: Add tc flower functions")
Signed-off-by: Joe Stringer <j...@ovn.org>
---
 lib/tc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/tc.h b/lib/tc.h
index a472b998f638..61188dd43ec3 100644
--- a/lib/tc.h
+++ b/lib/tc.h
@@ -18,10 +18,10 @@
 #ifndef TC_H
 #define TC_H 1
 
+#include <netinet/in.h> /* Must happen before linux/pkt_cls.h - Glibc #20215 */
 #include <linux/pkt_cls.h>
 #include <linux/pkt_sched.h>
 #include <linux/rtnetlink.h>
-#include <netinet/in.h>
 #include "lib/netlink-socket.h"
 #include "odp-netlink.h"
 #include "openvswitch/ofpbuf.h"
-- 
2.11.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to