qemu: bump to version 2.11.1
authorYousong Zhou <yszhou4tech@gmail.com>
Thu, 22 Feb 2018 13:32:23 +0000 (21:32 +0800)
committerYousong Zhou <yszhou4tech@gmail.com>
Sat, 24 Feb 2018 07:41:36 +0000 (15:41 +0800)
Here are the notable changes

 - pixman is now not part of the release tarball and is required as an
   external dependency
 - archipelago is removed by upstream
 - patches are regenerated with git-format-patch
 - ifunc requirement is now removed

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
utils/qemu/Makefile
utils/qemu/patches/0001-allow-disable-fortify-source.patch [deleted file]
utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch [new file with mode: 0644]
utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch [new file with mode: 0644]
utils/qemu/patches/0002-setting-language-type-for-_asm-files.patch [deleted file]
utils/qemu/patches/0003-disable-avx2_opt-with-musl.patch [deleted file]
utils/qemu/patches/0003-pc-bios-fix-compilation-when-AS-is-actually-gcc-driv.patch [new file with mode: 0644]
utils/qemu/patches/0004-pixman-fix-detection-of-mips-dspr2.patch [deleted file]
utils/qemu/patches/0005-pixman-arm-neon-assembler-fix.patch [deleted file]
utils/qemu/patches/0006-libvixl-cxx-macro-isnan.patch [deleted file]

index c833fa65bcc4de21c72717109c12ec6e19ce5c86..a56451c67de52359e930b93523e97bb9ebf97980 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Copyright (C) 2016 OpenWrt.org
-# Copyright (C) 2016 Yousong Zhou <yszhou4tech@gmail.com>
+# Copyright (C) 2016-2018 Yousong Zhou <yszhou4tech@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,15 +9,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qemu
-PKG_VERSION:=2.6.2
-PKG_RELEASE:=3
+PKG_VERSION:=2.11.1
+PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=9a7ec64f147b9e1e570c410e00ebe271869b5d4c85392ba047db7617c297faa3
+PKG_HASH:=d9df2213ceed32e91dab7bc9dd19c1af83f91ba72c7aeef7605dfaaf81732ccb
 PKG_SOURCE_URL:=http://wiki.qemu-project.org/download/
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE tcg/LICENSE
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 PKG_USE_MIPS16:=0
 
@@ -123,7 +124,7 @@ define qemu-target
     TITLE:=QEMU target $(1)
     URL:=http://www.qemu.org
     DEPENDS:= +glib2 +libpthread +zlib $(CXX_DEPENDS) $(QEMU_DEPS_IN_HOST) \
-       $(if $(filter %-softmmu,$(1)),+libncurses +libfdt +qemu-blobs)
+       $(if $(filter %-softmmu,$(1)),+libncurses +libfdt +pixman +qemu-blobs)
   endef
 
   define Package/qemu-$(1)/description
@@ -211,7 +212,6 @@ CONFIGURE_ARGS +=                   \
        --disable-tools                 \
        --disable-seccomp               \
        --disable-glusterfs             \
-       --disable-archipelago           \
        --disable-gtk                   \
        --disable-gnutls                \
        --disable-nettle                \
diff --git a/utils/qemu/patches/0001-allow-disable-fortify-source.patch b/utils/qemu/patches/0001-allow-disable-fortify-source.patch
deleted file mode 100644 (file)
index ef6813a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.orig   2016-11-22 11:53:25.739180380 +0800
-+++ b/configure        2016-11-22 11:53:55.183189596 +0800
-@@ -1147,6 +1147,8 @@ for opt do
-   ;;
-   --enable-jemalloc) jemalloc="yes"
-   ;;
-+  --disable-fortify-source) fortify_source="no"
-+  ;;
-   *)
-       echo "ERROR: unknown option $opt"
-       echo "Try '$0 --help' for more information"
diff --git a/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch b/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch
new file mode 100644 (file)
index 0000000..8c11f00
--- /dev/null
@@ -0,0 +1,27 @@
+From 0b4011cd0983ced6e065f397049f967656494793 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Sat, 24 Feb 2018 13:43:19 +0800
+Subject: [PATCH 1/3] configure: allow disable fortify_source
+
+Tell build system of qemu to not add _FORTIFY_SOURCE options and let the
+OpenWrt base build system decide flavor of fortify_source to use
+---
+ configure | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure b/configure
+index 0c6e757..8ea3fdd 100755
+--- a/configure
++++ b/configure
+@@ -1313,6 +1313,8 @@ for opt do
+   ;;
+   --disable-git-update) git_update=no
+   ;;
++  --disable-fortify-source) fortify_source="no"
++  ;;
+   *)
+       echo "ERROR: unknown option $opt"
+       echo "Try '$0 --help' for more information"
+-- 
+1.8.3.1
+
diff --git a/utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch b/utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch
new file mode 100644 (file)
index 0000000..bd1ac2d
--- /dev/null
@@ -0,0 +1,69 @@
+From 83e72b93889fbcbbfff281b0dbcc58c5a7455257 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Sat, 24 Feb 2018 13:45:25 +0800
+Subject: [PATCH 2/3] disas: fix compilation failure when isnan is a macro
+
+---
+ disas/libvixl/vixl/utils.h | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/disas/libvixl/vixl/utils.h b/disas/libvixl/vixl/utils.h
+index 5ab134e..df30663 100644
+--- a/disas/libvixl/vixl/utils.h
++++ b/disas/libvixl/vixl/utils.h
+@@ -118,11 +118,17 @@ double double_pack(uint64_t sign, uint64_t exp, uint64_t mantissa);
+ // An fpclassify() function for 16-bit half-precision floats.
+ int float16classify(float16 value);
++#ifdef isnan
++#define isnan_ isnan
++#else
++#define isnan_ std::isnan
++#endif
++
+ // NaN tests.
+ inline bool IsSignallingNaN(double num) {
+   const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
+   uint64_t raw = double_to_rawbits(num);
+-  if (std::isnan(num) && ((raw & kFP64QuietNaNMask) == 0)) {
++  if (isnan_(num) && ((raw & kFP64QuietNaNMask) == 0)) {
+     return true;
+   }
+   return false;
+@@ -132,7 +138,7 @@ inline bool IsSignallingNaN(double num) {
+ inline bool IsSignallingNaN(float num) {
+   const uint32_t kFP32QuietNaNMask = 0x00400000;
+   uint32_t raw = float_to_rawbits(num);
+-  if (std::isnan(num) && ((raw & kFP32QuietNaNMask) == 0)) {
++  if (isnan_(num) && ((raw & kFP32QuietNaNMask) == 0)) {
+     return true;
+   }
+   return false;
+@@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num) {
+ template <typename T>
+ inline bool IsQuietNaN(T num) {
+-  return std::isnan(num) && !IsSignallingNaN(num);
++  return isnan_(num) && !IsSignallingNaN(num);
+ }
+ // Convert the NaN in 'num' to a quiet NaN.
+ inline double ToQuietNaN(double num) {
+   const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
+-  VIXL_ASSERT(std::isnan(num));
++  VIXL_ASSERT(isnan_(num));
+   return rawbits_to_double(double_to_rawbits(num) | kFP64QuietNaNMask);
+ }
+ inline float ToQuietNaN(float num) {
+   const uint32_t kFP32QuietNaNMask = 0x00400000;
+-  VIXL_ASSERT(std::isnan(num));
++  VIXL_ASSERT(isnan_(num));
+   return rawbits_to_float(float_to_rawbits(num) | kFP32QuietNaNMask);
+ }
+-- 
+1.8.3.1
+
diff --git a/utils/qemu/patches/0002-setting-language-type-for-_asm-files.patch b/utils/qemu/patches/0002-setting-language-type-for-_asm-files.patch
deleted file mode 100644 (file)
index ea6d49d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/rules.mak.orig   2016-11-22 13:30:40.933006727 +0800
-+++ b/rules.mak        2016-11-22 13:30:47.229008698 +0800
-@@ -70,7 +70,7 @@ LINK = $(call quiet-command, $(LINKPROG)
-       $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -o $@ $<,"  CPP   $(TARGET_DIR)$@")
- %.o: %.asm
--      $(call quiet-command,$(AS) $(ASFLAGS) -o $@ $<,"  AS    $(TARGET_DIR)$@")
-+      $(call quiet-command,$(AS) $(ASFLAGS) -o $@ -x assembler $<,"  AS    $(TARGET_DIR)$@")
- %.o: %.cc
-       $(call quiet-command,$(CXX) $(QEMU_INCLUDES) $(QEMU_CXXFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($@-cflags) -c -o $@ $<,"  CXX   $(TARGET_DIR)$@")
diff --git a/utils/qemu/patches/0003-disable-avx2_opt-with-musl.patch b/utils/qemu/patches/0003-disable-avx2_opt-with-musl.patch
deleted file mode 100644 (file)
index c52cb4c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/configure.orig   2016-11-22 17:35:12.069598617 +0800
-+++ b/configure        2016-11-22 18:24:01.042515353 +0800
-@@ -1789,7 +1789,10 @@ static void foo(void) __attribute__((ifu
- int main(void) { foo(); return 0; }
- EOF
- if compile_prog "-mavx2" "" ; then
--    if readelf --syms $TMPE |grep "IFUNC.*foo" >/dev/null 2>&1; then
-+    if readelf --program-headers $TMPE | grep -iq 'Requesting program interpreter: .*ld-musl'; then
-+        # ifunc support is not available with dynamic linker of musl
-+        avx2_opt="no"
-+    elif readelf --syms $TMPE |grep "IFUNC.*foo" >/dev/null 2>&1; then
-         avx2_opt="yes"
-     fi
- fi
diff --git a/utils/qemu/patches/0003-pc-bios-fix-compilation-when-AS-is-actually-gcc-driv.patch b/utils/qemu/patches/0003-pc-bios-fix-compilation-when-AS-is-actually-gcc-driv.patch
new file mode 100644 (file)
index 0000000..374afc2
--- /dev/null
@@ -0,0 +1,35 @@
+From b6d4bff30f2bdc3a6f26c9f6c7f32e352270d119 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Sat, 24 Feb 2018 13:46:31 +0800
+Subject: [PATCH 3/3] pc-bios: fix compilation when $(AS) is actually gcc
+ driver
+
+---
+ pc-bios/optionrom/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
+index a9a9e5e..f88b3ee 100644
+--- a/pc-bios/optionrom/Makefile
++++ b/pc-bios/optionrom/Makefile
+@@ -34,7 +34,7 @@ endif
+ QEMU_INCLUDES += -I$(SRC_PATH)
+ Wa = -Wa,
+-ASFLAGS += -32
++ASFLAGS += $(Wa)-32
+ QEMU_CFLAGS += $(call cc-c-option, $(QEMU_CFLAGS), $(Wa)-32)
+ build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin
+@@ -44,7 +44,7 @@ build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin
+ %.o: %.S
+-      $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_DGFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@,"AS","$(TARGET_DIR)$@")
++      $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_DGFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@ -x assembler -,"AS","$(TARGET_DIR)$@")
+ %.img: %.o
+       $(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -m $(LD_I386_EMULATION) -T $(SRC_PATH)/pc-bios/optionrom/flat.lds -s -o $@ $<,"BUILD","$(TARGET_DIR)$@")
+-- 
+1.8.3.1
+
diff --git a/utils/qemu/patches/0004-pixman-fix-detection-of-mips-dspr2.patch b/utils/qemu/patches/0004-pixman-fix-detection-of-mips-dspr2.patch
deleted file mode 100644 (file)
index 05e34e0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/pixman/configure.ac.orig 2016-11-22 20:44:21.205150763 +0800
-+++ b/pixman/configure.ac      2016-11-22 20:44:55.505161500 +0800
-@@ -720,7 +720,6 @@ dnl Check if assembler is gas compatible
- have_mips_dspr2=no
- AC_MSG_CHECKING(whether to use MIPS DSPr2 assembler)
- xserver_save_CFLAGS=$CFLAGS
--CFLAGS="-mdspr2 $CFLAGS"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
- #if !(defined(__mips__) &&  __mips_isa_rev >= 2)
diff --git a/utils/qemu/patches/0005-pixman-arm-neon-assembler-fix.patch b/utils/qemu/patches/0005-pixman-arm-neon-assembler-fix.patch
deleted file mode 100644 (file)
index 93c967a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/pixman/pixman/pixman-private.h.orig      2016-11-22 22:10:33.574769654 +0800
-+++ b/pixman/pixman/pixman-private.h   2016-11-22 22:10:47.638774056 +0800
-@@ -1,5 +1,3 @@
--#include <float.h>
--
- #ifndef PIXMAN_PRIVATE_H
- #define PIXMAN_PRIVATE_H
-@@ -17,6 +15,8 @@
- #ifndef __ASSEMBLER__
-+#include <float.h>
-+
- #ifndef PACKAGE
- #  error config.h must be included before pixman-private.h
- #endif
diff --git a/utils/qemu/patches/0006-libvixl-cxx-macro-isnan.patch b/utils/qemu/patches/0006-libvixl-cxx-macro-isnan.patch
deleted file mode 100644 (file)
index 0dae8ce..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
---- a/disas/libvixl/vixl/utils.h.orig  2016-11-22 22:36:20.691253883 +0800
-+++ b/disas/libvixl/vixl/utils.h       2016-11-22 22:55:44.639618185 +0800
-@@ -118,11 +118,17 @@ double double_pack(uint64_t sign, uint64
- // An fpclassify() function for 16-bit half-precision floats.
- int float16classify(float16 value);
-+#ifdef isnan
-+#define isnan_ isnan
-+#else
-+#define isnan_ std::isnan
-+#endif
-+
- // NaN tests.
- inline bool IsSignallingNaN(double num) {
-   const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
-   uint64_t raw = double_to_rawbits(num);
--  if (std::isnan(num) && ((raw & kFP64QuietNaNMask) == 0)) {
-+  if (isnan_(num) && ((raw & kFP64QuietNaNMask) == 0)) {
-     return true;
-   }
-   return false;
-@@ -132,7 +138,7 @@ inline bool IsSignallingNaN(double num)
- inline bool IsSignallingNaN(float num) {
-   const uint32_t kFP32QuietNaNMask = 0x00400000;
-   uint32_t raw = float_to_rawbits(num);
--  if (std::isnan(num) && ((raw & kFP32QuietNaNMask) == 0)) {
-+  if (isnan_(num) && ((raw & kFP32QuietNaNMask) == 0)) {
-     return true;
-   }
-   return false;
-@@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num)
- template <typename T>
- inline bool IsQuietNaN(T num) {
--  return std::isnan(num) && !IsSignallingNaN(num);
-+  return isnan_(num) && !IsSignallingNaN(num);
- }
- // Convert the NaN in 'num' to a quiet NaN.
- inline double ToQuietNaN(double num) {
-   const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
--  VIXL_ASSERT(std::isnan(num));
-+  VIXL_ASSERT(isnan_(num));
-   return rawbits_to_double(double_to_rawbits(num) | kFP64QuietNaNMask);
- }
- inline float ToQuietNaN(float num) {
-   const uint32_t kFP32QuietNaNMask = 0x00400000;
--  VIXL_ASSERT(std::isnan(num));
-+  VIXL_ASSERT(isnan_(num));
-   return rawbits_to_float(float_to_rawbits(num) | kFP32QuietNaNMask);
- }