gnetworkmonitornetlink.c: Fix compilation on RHEL 6.2
authorChristophe Fergeau <cfergeau@redhat.com>
Mon, 12 Dec 2011 14:06:41 +0000 (15:06 +0100)
committerChristophe Fergeau <cfergeau@redhat.com>
Tue, 13 Dec 2011 15:40:34 +0000 (16:40 +0100)
When trying to compile glib master on a RHEL 6.2 system, it fails with:

make[4]: Entering directory `/home/teuf/gnome/src/glib/gio'
  CC     libgio_2_0_la-gnetworkmonitornetlink.lo
In file included from gnetworkmonitornetlink.c:25:
/usr/include/linux/netlink.h:35: error: expected specifier-qualifier-list before 'sa_family_t'
gnetworkmonitornetlink.c: In function 'g_network_monitor_netlink_initable_init':
gnetworkmonitornetlink.c:99: error: 'struct sockaddr_nl' has no member named 'nl_family'
gnetworkmonitornetlink.c:100: error: 'struct sockaddr_nl' has no member named 'nl_pid'
gnetworkmonitornetlink.c:100: error: 'struct sockaddr_nl' has no member named 'nl_pad'
gnetworkmonitornetlink.c:101: error: 'struct sockaddr_nl' has no member named 'nl_groups'
make[4]: *** [libgio_2_0_la-gnetworkmonitornetlink.lo] Error 1

sa_family_t is defined in sys/socket.h, this commit makes sure this header is included before netlink.h

This fixes bgo bug #666001

gio/gnetworkmonitornetlink.c

index 046c9e9..ecdc0d4 100644 (file)
@@ -22,8 +22,6 @@
 
 #include <errno.h>
 #include <unistd.h>
-#include <linux/netlink.h>
-#include <linux/rtnetlink.h>
 
 #include "gnetworkmonitornetlink.h"
 #include "gcredentials.h"
 #include "gsocket.h"
 #include "gunixcredentialsmessage.h"
 
+/* must come at the end to pick system includes from
+ * gnetworkingprivate.h */
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+
 static void g_network_monitor_netlink_iface_init (GNetworkMonitorInterface *iface);
 static void g_network_monitor_netlink_initable_iface_init (GInitableIface *iface);