lguest: fix example launcher compilation for broken glibc headers.
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 4 Jul 2013 01:52:58 +0000 (11:22 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 4 Jul 2013 01:55:07 +0000 (11:25 +0930)
Somehow a naked u16 slipped into the glibc headers on my Ubuntu machine
(i386 2.17-0ubuntu5), breaking compile:

In file included from lguest.c:46:0:
/usr/include/linux/virtio_net.h:188:2: error: unknown type name ‘u16’

We use the kernel-style types anyway, just define them before the includes.
Also remove the advice on adding missing headers: that no longer works.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
tools/lguest/Makefile
tools/lguest/lguest.c

index 0ac34206f7a7c6fb44f92bd664f71487084580e3..97bca4871ea34d8b1f4adc3422907b3cecb5c45c 100644 (file)
@@ -1,5 +1,4 @@
 # This creates the demonstration utility "lguest" which runs a Linux guest.
-# Missing headers?  Add "-I../../../include -I../../../arch/x86/include"
 CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -U_FORTIFY_SOURCE
 
 all: lguest
index a64f5cb0c15b8ef66369a3255721720ed7500280..68f67cf3d3182f5dcc696a50f3ef889c05ea10d2 100644 (file)
 #include <pwd.h>
 #include <grp.h>
 
-#include <linux/virtio_config.h>
-#include <linux/virtio_net.h>
-#include <linux/virtio_blk.h>
-#include <linux/virtio_console.h>
-#include <linux/virtio_rng.h>
-#include <linux/virtio_ring.h>
-#include <asm/bootparam.h>
-#include "../../include/linux/lguest_launcher.h"
 /*L:110
  * We can ignore the 43 include files we need for this program, but I do want
  * to draw attention to the use of kernel-style types.
@@ -65,6 +57,15 @@ typedef uint16_t u16;
 typedef uint8_t u8;
 /*:*/
 
+#include <linux/virtio_config.h>
+#include <linux/virtio_net.h>
+#include <linux/virtio_blk.h>
+#include <linux/virtio_console.h>
+#include <linux/virtio_rng.h>
+#include <linux/virtio_ring.h>
+#include <asm/bootparam.h>
+#include "../../include/linux/lguest_launcher.h"
+
 #define BRIDGE_PFX "bridge:"
 #ifndef SIOCBRADDIF
 #define SIOCBRADDIF    0x89a2          /* add interface to bridge      */