diff options
Diffstat (limited to 'recipes-devtools/qemu')
-rw-r--r-- | recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch | 84 | ||||
-rw-r--r-- | recipes-devtools/qemu/qemu_2.3.0.bb | 38 |
2 files changed, 122 insertions, 0 deletions
diff --git a/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch b/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch new file mode 100644 index 0000000..13a6ea2 --- /dev/null +++ b/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch | |||
@@ -0,0 +1,84 @@ | |||
1 | fix libcap header issue on some distro | ||
2 | |||
3 | 1, When build qemu-native on SLED 11.2, there is an error: | ||
4 | ... | ||
5 | | In file included from /usr/include/bits/sigcontext.h:28, | ||
6 | | from /usr/include/signal.h:339, | ||
7 | | from /buildarea2/tmp/work/i686-linux/qemu-native/1.4.0-r0/ | ||
8 | qemu-1.4.0/include/qemu-common.h:42, | ||
9 | | from fsdev/virtfs-proxy-helper.c:23: | ||
10 | | /usr/include/asm/sigcontext.h:28: error: expected specifier- | ||
11 | qualifier-list before '__u64' | ||
12 | | /usr/include/asm/sigcontext.h:191: error: expected specifier- | ||
13 | qualifier-list before '__u64' | ||
14 | ... | ||
15 | |||
16 | 2, The virtfs-proxy-helper.c includes <sys/capability.h> and | ||
17 | qemu-common.h in sequence. The header include map is: | ||
18 | (`-->' presents `include') | ||
19 | ... | ||
20 | "virtfs-proxy-helper.c" --> <sys/capability.h> | ||
21 | ... | ||
22 | "virtfs-proxy-helper.c" --> "qemu-common.h" --> <signal.h> --> | ||
23 | <bits/sigcontext.h> --> <asm/sigcontext.h> --> <linux/types.h> --> | ||
24 | <asm/types.h> --> <asm-generic/types.h> --> <asm-generic/int-ll64.h> | ||
25 | ... | ||
26 | |||
27 | 3, The bug is found on SLED 11.2 x86. In libcap header file | ||
28 | /usr/include/sys/capability.h, it does evil stuff like this: | ||
29 | ... | ||
30 | 25 /* | ||
31 | 26 * Make sure we can be included from userland by preventing | ||
32 | 27 * capability.h from including other kernel headers | ||
33 | 28 */ | ||
34 | 29 #define _LINUX_TYPES_H | ||
35 | 30 #define _LINUX_FS_H | ||
36 | 31 #define __LINUX_COMPILER_H | ||
37 | 32 #define __user | ||
38 | 33 | ||
39 | 34 typedef unsigned int __u32; | ||
40 | 35 typedef __u32 __le32; | ||
41 | ... | ||
42 | This completely prevents including /usr/include/linux/types.h. | ||
43 | The above `<asm/sigcontext.h> --> <linux/types.h>' is prevented, | ||
44 | and '__u64' is defined in <asm-generic/int-ll64.h>. | ||
45 | |||
46 | 4, Modify virtfs-proxy-helper.c to include <sys/capability.h> | ||
47 | last to workaround the issue. | ||
48 | |||
49 | http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html | ||
50 | http://patchwork.linuxtv.org/patch/12748/ | ||
51 | |||
52 | Upstream-Status: Pending | ||
53 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
54 | --- | ||
55 | fsdev/virtfs-proxy-helper.c | 7 +++++-- | ||
56 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
57 | |||
58 | diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c | ||
59 | --- a/fsdev/virtfs-proxy-helper.c | ||
60 | +++ b/fsdev/virtfs-proxy-helper.c | ||
61 | @@ -12,7 +12,6 @@ | ||
62 | #include <sys/resource.h> | ||
63 | #include <getopt.h> | ||
64 | #include <syslog.h> | ||
65 | -#include <sys/capability.h> | ||
66 | #include <sys/fsuid.h> | ||
67 | #include <sys/vfs.h> | ||
68 | #include <sys/ioctl.h> | ||
69 | @@ -26,7 +25,11 @@ | ||
70 | #include "virtio-9p-marshal.h" | ||
71 | #include "hw/9pfs/virtio-9p-proxy.h" | ||
72 | #include "fsdev/virtio-9p-marshal.h" | ||
73 | - | ||
74 | +/* | ||
75 | + * Include this one last due to some versions of it being buggy: | ||
76 | + * http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html | ||
77 | + */ | ||
78 | +#include <sys/capability.h> | ||
79 | #define PROGNAME "virtfs-proxy-helper" | ||
80 | |||
81 | #ifndef XFS_SUPER_MAGIC | ||
82 | -- | ||
83 | 1.7.10.4 | ||
84 | |||
diff --git a/recipes-devtools/qemu/qemu_2.3.0.bb b/recipes-devtools/qemu/qemu_2.3.0.bb new file mode 100644 index 0000000..8ef3719 --- /dev/null +++ b/recipes-devtools/qemu/qemu_2.3.0.bb | |||
@@ -0,0 +1,38 @@ | |||
1 | require recipes-devtools/qemu/qemu.inc | ||
2 | |||
3 | PROVIDES = "qemu" | ||
4 | |||
5 | # This is v2.3.0 | ||
6 | #SRCREV = "e5b3a24181ea0cebf1c5b20f44d016311b7048f0" | ||
7 | |||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ | ||
9 | file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" | ||
10 | |||
11 | # Discard all files included in qemu.inc, we're not interested in them here | ||
12 | # This is why it is an "=" and not _prepend or "+=" as in other recipes: | ||
13 | SRC_URI = "git://git.qemu.org/qemu.git;tag=v2.3.0" | ||
14 | S = "${WORKDIR}/git" | ||
15 | |||
16 | DEFAULT_PREFERENCE = "-1" | ||
17 | |||
18 | COMPATIBLE_HOST_class-target_mips64 = "null" | ||
19 | |||
20 | # build arm emulators only | ||
21 | QEMU_TARGETS = "arm aarch64" | ||
22 | |||
23 | # Override --disable-glx, which now is --disable-opengl | ||
24 | PACKAGECONFIG[glx] = "--enable-opengl,--disable-opengl,mesa" | ||
25 | PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,mesa" | ||
26 | |||
27 | FILES_${PN} += " \ | ||
28 | /run \ | ||
29 | /usr/share/qemu \ | ||
30 | " | ||
31 | |||
32 | # Our own do_install function so it doesn't try to install powerpc_rom.bin: | ||
33 | do_install () { | ||
34 | export STRIP="true" | ||
35 | autotools_do_install | ||
36 | install -d ${D}${datadir}/qemu | ||
37 | } | ||
38 | |||