aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-12-23 10:03:25 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-12-23 15:29:34 +0000
commite68aa4b6118b001c4752c54e65dbe9829b2e362c (patch)
tree6e89c8ee33d35e1eebd5e535c43034928c0b2c18
parentddee2f86a48e087867d4a2c12849b2e3baccc238 (diff)
downloadaports-e68aa4b6118b001c4752c54e65dbe9829b2e362c.tar.bz2
aports-e68aa4b6118b001c4752c54e65dbe9829b2e362c.tar.xz
main/qemu: musl build fix
-rw-r--r--main/qemu/APKBUILD24
-rw-r--r--main/qemu/qemu-170-ffsl.patch22
-rw-r--r--main/qemu/qemu-170-ffsll.patch18
-rw-r--r--main/qemu/qemu-170-openpty.patch11
-rw-r--r--main/qemu/qemu-170-sigset_t.patch11
5 files changed, 85 insertions, 1 deletions
diff --git a/main/qemu/APKBUILD b/main/qemu/APKBUILD
index f2cc5c106a..bcc816fe20 100644
--- a/main/qemu/APKBUILD
+++ b/main/qemu/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=qemu
pkgver=1.7.0
-pkgrel=0
+pkgrel=1
pkgdesc="QEMU is a generic machine emulator and virtualizer"
url="http://qemu.org/"
arch="all"
@@ -72,6 +72,11 @@ $pkgname-guest-agent:guest
"
source="http://wiki.qemu-project.org/download/qemu-$pkgver.tar.bz2
0001-elfload-load-PIE-executables-to-right-address.patch
+ qemu-170-ffsl.patch
+ qemu-170-ffsll.patch
+ qemu-170-openpty.patch
+ qemu-170-sigset_t.patch
+
qemu-guest-agent.confd
qemu-guest-agent.initd
80-kvm.rules"
@@ -97,6 +102,11 @@ prepare() {
build() {
cd "$srcdir"/$pkgname-$pkgver
+ if [ "x$CLIBC" = "xmusl" ]; then
+ CFLAGS="$CFLAGS -D_GNU_SOURCE -Dflock64=flock"
+ CFLAGS="$CFLAGS -DF_EXLCK=4 -DF_SHLCK=8"
+ CFLAGS="$CFLAGS -D__SIGRTMIN=32 -D__SIGRTMAX=\(NSIG-1\)"
+ fi
./configure \
--prefix=/usr \
--localstatedir=/var \
@@ -227,16 +237,28 @@ guest() {
md5sums="32893941d40d052a5e649efcf06aca06 qemu-1.7.0.tar.bz2
672727bb1d8c8ab7b5def65dd1793c33 0001-elfload-load-PIE-executables-to-right-address.patch
+a51a526312535019de143f2e6a54e3ce qemu-170-ffsl.patch
+78f4d1b13ddee47887b6d59378e8e44e qemu-170-ffsll.patch
+6589d3ba6975d245feefa0ad436eed76 qemu-170-openpty.patch
+f5e8ee9c5cd1ebc37194f3c151f420a8 qemu-170-sigset_t.patch
1663bc6977f6886a58394155b1bf3676 qemu-guest-agent.confd
2035cd781ea810e94bda250c609d8d90 qemu-guest-agent.initd
66660f143235201249dc0648b39b86ee 80-kvm.rules"
sha256sums="31f333a85f2d14c605a77679904a9668eaeb1b6dc7da53a1665230f46bc21314 qemu-1.7.0.tar.bz2
af35304b165622a53f7557b59ffd8da5030f5fd444e669c862f9410131f3b987 0001-elfload-load-PIE-executables-to-right-address.patch
+63adefe8f34a6859e5f7a1e2de49538267c93955231ef0c4c2bfd6de919711e0 qemu-170-ffsl.patch
+373ca5c783913645c6fc6c4c3b7740b0cc011aeed30bc8b848d5b26cf5d81070 qemu-170-ffsll.patch
+6cffdccc3e270e7ab65701cc4e68692b577540f02763b14c66bf2225edb20f8b qemu-170-openpty.patch
+fbc907e09c04110992a75bd4cc2f74fbc33e5b4a1cf0ebaa51c2a1dc4512ce5c qemu-170-sigset_t.patch
d84e53a94584f37f3bd1b21f44077b5de0d07094c6729f26ae20ab1f7b9cc298 qemu-guest-agent.confd
982fa8ba67c728405305e4cf5a36a41a780b3d1f388ebd6377e7964c271a1c92 qemu-guest-agent.initd
37f666f1cdb7d8a62171de69b531681dcb0fba74236729dac8b6c019232eba84 80-kvm.rules"
sha512sums="6ee52444b93fc2953e8080383cc0cdc618a826ddd5252bf5f6faf27d91699a414924d6015d27ea12ce1cc21e135acbc8dde595c84a4ce1e0c7173f0446f867eb qemu-1.7.0.tar.bz2
405008589cad1c8b609eca004d520bf944366e8525f85a19fc6e283c95b84b6c2429822ba064675823ab69f1406a57377266a65021623d1cd581e7db000134fd 0001-elfload-load-PIE-executables-to-right-address.patch
+13ac2ba2835764ad97d55dc62313a4626a4e4e12a5f932d26b8579101bd875411faf9ffd5642c94e7b8da7d41b5ca48507c3a08ce4d087b8306110e23206877e qemu-170-ffsl.patch
+80168f5eadb518dbae8277cc2ff78cc494783e2180dfbf78d7b5c068c3efecd0bbb3d61dfb0079e365c632c1a80b82d6955de9718ff0b8e8613a52407bd5a2af qemu-170-ffsll.patch
+b2cbb121c8ac85ee0aff835ecff59e2b4e886ddb9c5084286eaf735b5a3868043dad36e5e2289b6e6505bca4cfe971c9a35109a3638357d4b5b10168f921c984 qemu-170-openpty.patch
+d867db00b0ac83c8dabd45c9ef0f07559f1f2045f3a4b7fd507a1ee276325e693f772b22511e2d5e1fce866de0ef4cd9da057119cfc39b905471a8995b36619e qemu-170-sigset_t.patch
d90c034cae3f9097466854ed1a9f32ab4b02089fcdf7320e8f4da13b2b1ff65067233f48809911485e4431d7ec1a22448b934121bc9522a2dc489009e87e2b1f qemu-guest-agent.confd
761b4e2397569dae45ae3bb9e46e28746275297f629af9e9065525497fd26a48b65d8abcf4282727afd35309e338967acf6a1b14c3169577bdc16c1f42e618b3 qemu-guest-agent.initd
9b7a89b20fcf737832cb7b4d5dc7d8301dd88169cbe5339eda69fbb51c2e537d8cb9ec7cf37600899e734209e63410d50d0821bce97e401421db39c294d97be2 80-kvm.rules"
diff --git a/main/qemu/qemu-170-ffsl.patch b/main/qemu/qemu-170-ffsl.patch
new file mode 100644
index 0000000000..5da3d07eef
--- /dev/null
+++ b/main/qemu/qemu-170-ffsl.patch
@@ -0,0 +1,22 @@
+--- qemu-1.7.0.org/kvm-all.c
++++ qemu-1.7.0/kvm-all.c
+@@ -374,6 +374,19 @@
+ return 0;
+ }
+
++#ifndef HAVE_FFSL
++#include <limits.h>
++#if ULONG_MAX == UINT_MAX
++#define ffsl(X) ffs(X)
++#else
++static int ffsl(long i) {
++ unsigned long x = i & -i;
++ if (x <= 0xffffffff) return ffs (i);
++ else return 32 + ffs (i >> 32);
++}
++#endif
++#endif
++
+ /* get kvm's dirty pages bitmap and update qemu's */
+ static int kvm_get_dirty_pages_log_range(MemoryRegionSection *section,
+ unsigned long *bitmap)
diff --git a/main/qemu/qemu-170-ffsll.patch b/main/qemu/qemu-170-ffsll.patch
new file mode 100644
index 0000000000..c5a66426b9
--- /dev/null
+++ b/main/qemu/qemu-170-ffsll.patch
@@ -0,0 +1,18 @@
+--- qemu-1.7.0.org/hw/virtio/vhost.c
++++ qemu-1.7.0/hw/virtio/vhost.c
+@@ -22,6 +22,15 @@
+ #include "exec/address-spaces.h"
+ #include "hw/virtio/virtio-bus.h"
+
++#ifndef HAVE_FFSLL
++static int ffsll(long long i) {
++ unsigned long long x = i & -i;
++ if (x <= 0xffffffff) return ffs (i);
++ else return 32 + ffs (i >> 32);
++}
++#endif
++
++
+ static void vhost_dev_sync_region(struct vhost_dev *dev,
+ MemoryRegionSection *section,
+ uint64_t mfirst, uint64_t mlast,
diff --git a/main/qemu/qemu-170-openpty.patch b/main/qemu/qemu-170-openpty.patch
new file mode 100644
index 0000000000..3a0d051bdc
--- /dev/null
+++ b/main/qemu/qemu-170-openpty.patch
@@ -0,0 +1,11 @@
+--- qemu-1.7.0.org/util/qemu-openpty.c
++++ qemu-1.7.0/util/qemu-openpty.c
+@@ -47,6 +47,8 @@
+ #elif defined CONFIG_SOLARIS
+ # include <termios.h>
+ # include <stropts.h>
++#else
++# include <termios.h>
+ #endif
+
+ #ifdef __sun__
diff --git a/main/qemu/qemu-170-sigset_t.patch b/main/qemu/qemu-170-sigset_t.patch
new file mode 100644
index 0000000000..90bcdddbce
--- /dev/null
+++ b/main/qemu/qemu-170-sigset_t.patch
@@ -0,0 +1,11 @@
+--- qemu-1.7.0.org/linux-user/syscall.c
++++ qemu-1.7.0/linux-user/syscall.c
+@@ -400,7 +400,7 @@
+ #endif
+ #define __NR_sys_ppoll __NR_ppoll
+ _syscall5(int, sys_ppoll, struct pollfd *, fds, nfds_t, nfds,
+- struct timespec *, timeout, const __sigset_t *, sigmask,
++ struct timespec *, timeout, const sigset_t *, sigmask,
+ size_t, sigsetsize)
+ #endif
+