Mon Nov 5 07:27:59 2018 UTC ()
Support the uboot kernel_noload image type as used by NetBSD/evbarm
GENERIC kernel.

Bump PKGREVISION


(skrll)
diff -r1.191 -r1.192 pkgsrc/emulators/qemu/Makefile
diff -r1.137 -r1.138 pkgsrc/emulators/qemu/distinfo
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_arm_boot.c
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_core_loader.c
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_core_uboot__image.h

cvs diff -r1.191 -r1.192 pkgsrc/emulators/qemu/Makefile (switch to unified diff)

--- pkgsrc/emulators/qemu/Makefile 2018/08/22 09:45:05 1.191
+++ pkgsrc/emulators/qemu/Makefile 2018/11/05 07:27:59 1.192
@@ -1,138 +1,138 @@ @@ -1,138 +1,138 @@
1# $NetBSD: Makefile,v 1.191 2018/08/22 09:45:05 wiz Exp $ 1# $NetBSD: Makefile,v 1.192 2018/11/05 07:27:59 skrll Exp $
2 2
3DISTNAME= qemu-3.0.0 3DISTNAME= qemu-3.0.0
4PKGREVISION= 2 4PKGREVISION= 3
5CATEGORIES= emulators 5CATEGORIES= emulators
6MASTER_SITES= https://download.qemu.org/ 6MASTER_SITES= https://download.qemu.org/
7EXTRACT_SUFX= .tar.xz 7EXTRACT_SUFX= .tar.xz
8 8
9MAINTAINER= pkgsrc-users@NetBSD.org 9MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= http://www.qemu-project.org/ 10HOMEPAGE= http://www.qemu-project.org/
11COMMENT= CPU emulator using dynamic translation 11COMMENT= CPU emulator using dynamic translation
12LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd 12LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd
13 13
14USE_CURSES= resize_term wide 14USE_CURSES= resize_term wide
15USE_LANGUAGES+= c c++ 15USE_LANGUAGES+= c c++
16USE_TOOLS+= bison flex gmake makeinfo perl:build pkg-config 16USE_TOOLS+= bison flex gmake makeinfo perl:build pkg-config
17FAKE_NCURSES= yes 17FAKE_NCURSES= yes
18UNLIMIT_RESOURCES= datasize 18UNLIMIT_RESOURCES= datasize
19HAS_CONFIGURE= yes 19HAS_CONFIGURE= yes
20 20
21BUILD_DEPENDS+= texi2html-[0-9]*:../../textproc/texi2html 21BUILD_DEPENDS+= texi2html-[0-9]*:../../textproc/texi2html
22 22
23SUBST_CLASSES+= prefix 23SUBST_CLASSES+= prefix
24SUBST_STAGE.prefix= pre-configure 24SUBST_STAGE.prefix= pre-configure
25SUBST_MESSAGE.prefix= Setting PREFIX 25SUBST_MESSAGE.prefix= Setting PREFIX
26SUBST_FILES.prefix+= configure 26SUBST_FILES.prefix+= configure
27SUBST_VARS.prefix+= PREFIX 27SUBST_VARS.prefix+= PREFIX
28 28
29.include "options.mk" 29.include "options.mk"
30 30
31.include "../../mk/bsd.prefs.mk" 31.include "../../mk/bsd.prefs.mk"
32 32
33CONFIGURE_ARGS+= --prefix=${PREFIX} 33CONFIGURE_ARGS+= --prefix=${PREFIX}
34CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu 34CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu
35CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} 35CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
36CONFIGURE_ARGS+= --python=${PYTHONBIN} 36CONFIGURE_ARGS+= --python=${PYTHONBIN}
37CONFIGURE_ARGS+= --smbd=${PREFIX}/sbin/smbd 37CONFIGURE_ARGS+= --smbd=${PREFIX}/sbin/smbd
38CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} 38CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
39CONFIGURE_ARGS+= --enable-curses 39CONFIGURE_ARGS+= --enable-curses
40CONFIGURE_ARGS+= --enable-jemalloc 40CONFIGURE_ARGS+= --enable-jemalloc
41CONFIGURE_ARGS+= --disable-opengl 41CONFIGURE_ARGS+= --disable-opengl
42CONFIGURE_ENV+= mansuffix=/${PKGMANDIR} 42CONFIGURE_ENV+= mansuffix=/${PKGMANDIR}
43 43
44.if defined(PKGSRC_USE_SSP) 44.if defined(PKGSRC_USE_SSP)
45# do not add flags to everything 45# do not add flags to everything
46PKGSRC_USE_SSP= no 46PKGSRC_USE_SSP= no
47CONFIGURE_ARGS+= --enable-stack-protector 47CONFIGURE_ARGS+= --enable-stack-protector
48.endif 48.endif
49 49
50NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-aarch64 50NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-aarch64
51NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-alpha 51NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-alpha
52NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-arm 52NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-arm
53NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-cris 53NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-cris
54NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-i386 54NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-i386
55NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-lm32 55NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-lm32
56NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-m68k 56NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-m68k
57NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblaze 57NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblaze
58NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblazeel 58NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-microblazeel
59NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips 59NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips
60NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64 60NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64
61NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64el 61NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mips64el
62NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mipsel 62NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-mipsel
63NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-moxie 63NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-moxie
64NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-or1k 64NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-or1k
65NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc 65NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc
66NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc64 66NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppc64
67NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppcemb 67NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-ppcemb
68NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-s390x 68NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-s390x
69NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4 69NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4
70NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4eb 70NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sh4eb
71NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc 71NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc
72NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc64 72NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-sparc64
73NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-tricore 73NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-tricore
74NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-unicore32 74NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-unicore32
75NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-x86_64 75NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-x86_64
76NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensa 76NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensa
77NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensaeb 77NOT_PAX_MPROTECT_SAFE+= bin/qemu-system-xtensaeb
78 78
79PKG_SYSCONFSUBDIR= qemu 79PKG_SYSCONFSUBDIR= qemu
80 80
81REPLACE_PERL+= scripts/texi2pod.pl 81REPLACE_PERL+= scripts/texi2pod.pl
82 82
83PYTHON_VERSIONS_INCOMPATIBLE= 34 35 36 37 # not yet ported yet as of 2.10.0 83PYTHON_VERSIONS_INCOMPATIBLE= 34 35 36 37 # not yet ported yet as of 2.10.0
84 84
85INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu 85INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu
86 86
87UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel 87UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel
88UE_ARCHS+= or1k ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus 88UE_ARCHS+= or1k ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus
89UE_ARCHS+= sparc64 x86_64 microblazeel s390x unicore32 89UE_ARCHS+= sparc64 x86_64 microblazeel s390x unicore32
90 90
91.if ${OPSYS} == "NetBSD" 91.if ${OPSYS} == "NetBSD"
92USER_EMUL= i386 x86_64 sparc sparc64 92USER_EMUL= i386 x86_64 sparc sparc64
93PLIST.nbd= YES 93PLIST.nbd= YES
94.elif !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly" 94.elif !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
95USER_EMUL= i386 x86_64 sparc sparc64 95USER_EMUL= i386 x86_64 sparc sparc64
96PLIST.nbd= YES 96PLIST.nbd= YES
97.elif ${OPSYS} == "Darwin" 97.elif ${OPSYS} == "Darwin"
98USER_EMUL= 98USER_EMUL=
99CONFIGURE_ARGS+= --disable-bsd-user 99CONFIGURE_ARGS+= --disable-bsd-user
100PLIST.nbd= YES 100PLIST.nbd= YES
101.elif ${OPSYS} == "Linux" 101.elif ${OPSYS} == "Linux"
102USER_EMUL= ${UE_ARCHS} 102USER_EMUL= ${UE_ARCHS}
103PLIST.nbd= YES 103PLIST.nbd= YES
104PLIST.ivshmem= YES 104PLIST.ivshmem= YES
105.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-*) 105.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-*)
106PLIST.nbd= YES 106PLIST.nbd= YES
107CONFIGURE_ARGS+= --disable-coroutine-pool 107CONFIGURE_ARGS+= --disable-coroutine-pool
108.endif 108.endif
109 109
110PLIST_VARS+= ${UE_ARCHS} nbd ivshmem 110PLIST_VARS+= ${UE_ARCHS} nbd ivshmem
111.for pvar in ${USER_EMUL} 111.for pvar in ${USER_EMUL}
112PLIST.${pvar}= YES 112PLIST.${pvar}= YES
113.endfor 113.endfor
114 114
115TEST_TARGET= check 115TEST_TARGET= check
116 116
117post-install: 117post-install:
118 ${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \ 118 ${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \
119 ${DESTDIR}${PREFIX}/share/doc/qemu/ 119 ${DESTDIR}${PREFIX}/share/doc/qemu/
120 120
121# On Darwin, qemu uses Cocoa and CoreAudio 121# On Darwin, qemu uses Cocoa and CoreAudio
122.if ${OPSYS} != "Darwin" 122.if ${OPSYS} != "Darwin"
123.include "../../mk/oss.buildlink3.mk" 123.include "../../mk/oss.buildlink3.mk"
124.endif 124.endif
125.include "../../archivers/lzo/buildlink3.mk" 125.include "../../archivers/lzo/buildlink3.mk"
126.include "../../devel/glib2/buildlink3.mk" 126.include "../../devel/glib2/buildlink3.mk"
127.include "../../devel/jemalloc/buildlink3.mk" 127.include "../../devel/jemalloc/buildlink3.mk"
128.include "../../devel/snappy/buildlink3.mk" 128.include "../../devel/snappy/buildlink3.mk"
129.include "../../devel/zlib/buildlink3.mk" 129.include "../../devel/zlib/buildlink3.mk"
130.include "../../graphics/png/buildlink3.mk" 130.include "../../graphics/png/buildlink3.mk"
131.include "../../lang/python/extension.mk" 131.include "../../lang/python/extension.mk"
132.include "../../security/libgcrypt/buildlink3.mk" 132.include "../../security/libgcrypt/buildlink3.mk"
133.include "../../www/curl/buildlink3.mk" 133.include "../../www/curl/buildlink3.mk"
134.include "../../x11/pixman/buildlink3.mk" 134.include "../../x11/pixman/buildlink3.mk"
135.include "../../mk/curses.buildlink3.mk" 135.include "../../mk/curses.buildlink3.mk"
136.include "../../mk/jpeg.buildlink3.mk" 136.include "../../mk/jpeg.buildlink3.mk"
137.include "../../mk/pthread.buildlink3.mk" 137.include "../../mk/pthread.buildlink3.mk"
138.include "../../mk/bsd.pkg.mk" 138.include "../../mk/bsd.pkg.mk"

cvs diff -r1.137 -r1.138 pkgsrc/emulators/qemu/distinfo (switch to unified diff)

--- pkgsrc/emulators/qemu/distinfo 2018/08/16 10:15:09 1.137
+++ pkgsrc/emulators/qemu/distinfo 2018/11/05 07:27:59 1.138
@@ -1,16 +1,19 @@ @@ -1,16 +1,19 @@
1$NetBSD: distinfo,v 1.137 2018/08/16 10:15:09 adam Exp $ 1$NetBSD: distinfo,v 1.138 2018/11/05 07:27:59 skrll Exp $
2 2
3SHA1 (qemu-3.0.0.tar.xz) = fffb4aa0139c7290295a129e040cec0df4468ea6 3SHA1 (qemu-3.0.0.tar.xz) = fffb4aa0139c7290295a129e040cec0df4468ea6
4RMD160 (qemu-3.0.0.tar.xz) = ea61cb8b6b144c7017c3a53161f883c3aeb15611 4RMD160 (qemu-3.0.0.tar.xz) = ea61cb8b6b144c7017c3a53161f883c3aeb15611
5SHA512 (qemu-3.0.0.tar.xz) = a764302f50b9aca4134bbbc1f361b98e71240cdc7b25600dfe733bf4cf17bd86000bd28357697b08f3b656899dceb9e459350b8d55557817444ed5d7fa380a5a 5SHA512 (qemu-3.0.0.tar.xz) = a764302f50b9aca4134bbbc1f361b98e71240cdc7b25600dfe733bf4cf17bd86000bd28357697b08f3b656899dceb9e459350b8d55557817444ed5d7fa380a5a
6Size (qemu-3.0.0.tar.xz) = 35624516 bytes 6Size (qemu-3.0.0.tar.xz) = 35624516 bytes
7SHA1 (patch-Makefile) = b3899fb8d0dd2f29bf3edd843836612e6e6c019c 7SHA1 (patch-Makefile) = b3899fb8d0dd2f29bf3edd843836612e6e6c019c
8SHA1 (patch-audio_audio.c) = 98a1de2fd48638886b5d16f6a61dc72910e98b41 8SHA1 (patch-audio_audio.c) = 98a1de2fd48638886b5d16f6a61dc72910e98b41
9SHA1 (patch-block.c) = 5eb15a87d6646719bf1e9277fbe73a99e4905481 9SHA1 (patch-block.c) = 5eb15a87d6646719bf1e9277fbe73a99e4905481
10SHA1 (patch-contrib_ivshmem-client_ivshmem-client.c) = 40c8751607cbf66a37e4c4e08f2664b864e2e984 10SHA1 (patch-contrib_ivshmem-client_ivshmem-client.c) = 40c8751607cbf66a37e4c4e08f2664b864e2e984
11SHA1 (patch-contrib_ivshmem-server_ivshmem-server.c) = d8f53432b5752f4263dc4ef96108a976a05147a3 11SHA1 (patch-contrib_ivshmem-server_ivshmem-server.c) = d8f53432b5752f4263dc4ef96108a976a05147a3
 12SHA1 (patch-hw_arm_boot.c) = bd28e4b8e8732a2b01ba1d0e8a727e8e7bc5227a
 13SHA1 (patch-hw_core_loader.c) = 06ff8bfa5be720e428668987598d55b6799202e7
 14SHA1 (patch-hw_core_uboot__image.h) = 26a656310d991747b7080b9f28042afd536e4c28
12SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 15SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420
13SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc 16SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc
14SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 17SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7
15SHA1 (patch-hw_usb_dev-mtp.c) = 66543b5559d92f8e2fa9a6eb85e5dfe7c1ad3339 18SHA1 (patch-hw_usb_dev-mtp.c) = 66543b5559d92f8e2fa9a6eb85e5dfe7c1ad3339
16SHA1 (patch-tests_Makefile.include) = 42345d697cb2e324dccf1d68bd8d61e8001c6162 19SHA1 (patch-tests_Makefile.include) = 42345d697cb2e324dccf1d68bd8d61e8001c6162

File Added: pkgsrc/emulators/qemu/patches/Attic/patch-hw_arm_boot.c
$NetBSD: patch-hw_arm_boot.c,v 1.1 2018/11/05 07:27:59 skrll Exp $

--- hw/arm/boot.c.orig	2018-11-04 17:27:47.000000000 +0000
+++ hw/arm/boot.c
@@ -29,8 +29,9 @@
  * Documentation/arm/Booting and Documentation/arm64/booting.txt
  * They have different preferred image load offsets from system RAM base.
  */
-#define KERNEL_ARGS_ADDR 0x100
-#define KERNEL_LOAD_ADDR 0x00010000
+#define KERNEL_ARGS_ADDR   0x100
+#define KERNEL_NOLOAD_ADDR 0x00000000
+#define KERNEL_LOAD_ADDR   0x00010000
 #define KERNEL64_LOAD_ADDR 0x00080000
 
 #define ARM64_TEXT_OFFSET_OFFSET    8
@@ -1049,7 +1050,8 @@ void arm_load_kernel(ARMCPU *cpu, struct
     }
     entry = elf_entry;
     if (kernel_size < 0) {
-        kernel_size = load_uimage_as(info->kernel_filename, &entry, NULL,
+        uint64_t loadaddr = info->loader_start + KERNEL_NOLOAD_ADDR;
+        kernel_size = load_uimage_as(info->kernel_filename, &entry, &loadaddr,
                                      &is_linux, NULL, NULL, as);
     }
     if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64) && kernel_size < 0) {

File Added: pkgsrc/emulators/qemu/patches/Attic/patch-hw_core_loader.c
$NetBSD: patch-hw_core_loader.c,v 1.1 2018/11/05 07:27:59 skrll Exp $

--- hw/core/loader.c.orig	2018-08-14 19:10:34.000000000 +0000
+++ hw/core/loader.c
@@ -637,13 +637,19 @@ static int load_uboot_image(const char *
         goto out;
 
     if (hdr->ih_type != image_type) {
-        fprintf(stderr, "Wrong image type %d, expected %d\n", hdr->ih_type,
-                image_type);
-        goto out;
+        if (image_type != IH_TYPE_KERNEL && hdr->ih_type != IH_TYPE_KERNEL_NOLOAD) {
+            fprintf(stderr, "Wrong image type %d, expected %d\n", hdr->ih_type,
+                    image_type);
+            goto out;
+        }
     }
 
     /* TODO: Implement other image types.  */
     switch (hdr->ih_type) {
+    case IH_TYPE_KERNEL_NOLOAD:
+        hdr->ih_load = *loadaddr + sizeof(*hdr);
+        hdr->ih_ep += hdr->ih_load;
+
     case IH_TYPE_KERNEL:
         address = hdr->ih_load;
         if (translate_fn) {

File Added: pkgsrc/emulators/qemu/patches/Attic/patch-hw_core_uboot__image.h
$NetBSD: patch-hw_core_uboot__image.h,v 1.1 2018/11/05 07:27:59 skrll Exp $

--- hw/core/uboot_image.h.orig	2018-08-14 19:10:34.000000000 +0000
+++ hw/core/uboot_image.h
@@ -75,6 +75,7 @@
 #define IH_CPU_NIOS2		15	/* Nios-II	*/
 #define IH_CPU_BLACKFIN		16	/* Blackfin	*/
 #define IH_CPU_AVR32		17	/* AVR32	*/
+#define IH_CPU_ARM64		22	/* ARM64        */
 
 /*
  * Image Types
@@ -124,6 +125,7 @@
 #define IH_TYPE_SCRIPT		6	/* Script file			*/
 #define IH_TYPE_FILESYSTEM	7	/* Filesystem Image (any type)	*/
 #define IH_TYPE_FLATDT		8	/* Binary Flat Device Tree Blob	*/
+#define IH_TYPE_KERNEL_NOLOAD  14	/* OS Kernel Image (noload)	*/
 
 /*
  * Compression Types