diff --git a/utils/qemu/Makefile b/utils/qemu/Makefile index c833fa65b..a56451c67 100644 --- a/utils/qemu/Makefile +++ b/utils/qemu/Makefile @@ -1,6 +1,6 @@ # # Copyright (C) 2016 OpenWrt.org -# Copyright (C) 2016 Yousong Zhou +# Copyright (C) 2016-2018 Yousong Zhou # # 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 +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 index ef6813aa3..000000000 --- a/utils/qemu/patches/0001-allow-disable-fortify-source.patch +++ /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 index 000000000..8c11f00ad --- /dev/null +++ b/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch @@ -0,0 +1,27 @@ +From 0b4011cd0983ced6e065f397049f967656494793 Mon Sep 17 00:00:00 2001 +From: Yousong Zhou +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/0006-libvixl-cxx-macro-isnan.patch b/utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch similarity index 67% rename from utils/qemu/patches/0006-libvixl-cxx-macro-isnan.patch rename to utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch index 0dae8ce5c..bd1ac2de4 100644 --- a/utils/qemu/patches/0006-libvixl-cxx-macro-isnan.patch +++ b/utils/qemu/patches/0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch @@ -1,6 +1,17 @@ ---- 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 +From 83e72b93889fbcbbfff281b0dbcc58c5a7455257 Mon Sep 17 00:00:00 2001 +From: Yousong Zhou +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); @@ -19,7 +30,7 @@ return true; } return false; -@@ -132,7 +138,7 @@ inline bool IsSignallingNaN(double num) +@@ -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); @@ -28,7 +39,7 @@ return true; } return false; -@@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num) +@@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num) { template inline bool IsQuietNaN(T num) { @@ -53,3 +64,6 @@ 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 index ea6d49de2..000000000 --- a/utils/qemu/patches/0002-setting-language-type-for-_asm-files.patch +++ /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 index c52cb4c7a..000000000 --- a/utils/qemu/patches/0003-disable-avx2_opt-with-musl.patch +++ /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 index 000000000..374afc238 --- /dev/null +++ b/utils/qemu/patches/0003-pc-bios-fix-compilation-when-AS-is-actually-gcc-driv.patch @@ -0,0 +1,35 @@ +From b6d4bff30f2bdc3a6f26c9f6c7f32e352270d119 Mon Sep 17 00:00:00 2001 +From: Yousong Zhou +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 index 05e34e098..000000000 --- a/utils/qemu/patches/0004-pixman-fix-detection-of-mips-dspr2.patch +++ /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 index 93c967a0c..000000000 --- a/utils/qemu/patches/0005-pixman-arm-neon-assembler-fix.patch +++ /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 -- - #ifndef PIXMAN_PRIVATE_H - #define PIXMAN_PRIVATE_H - -@@ -17,6 +15,8 @@ - - #ifndef __ASSEMBLER__ - -+#include -+ - #ifndef PACKAGE - # error config.h must be included before pixman-private.h - #endif