git: 80e73db7c857 - main - {emulators,sysutils}/xen-{kernel,tools}: update to 4.8.2

From: Roger Pau Monné <royger_at_FreeBSD.org>
Date: Fri, 12 Apr 2024 10:46:25 UTC
The branch main has been updated by royger:

URL: https://cgit.FreeBSD.org/ports/commit/?id=80e73db7c8577c8333d529939b61d22ef4b818bc

commit 80e73db7c8577c8333d529939b61d22ef4b818bc
Author:     Roger Pau Monné <royger@FreeBSD.org>
AuthorDate: 2024-04-12 09:23:55 +0000
Commit:     Roger Pau Monné <royger@FreeBSD.org>
CommitDate: 2024-04-12 10:46:10 +0000

    {emulators,sysutils}/xen-{kernel,tools}: update to 4.8.2
    
    Changelog: https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.18.2
    Sponsored by: Cloud Software Group
    Approved by: bapt (implicit)
---
 emulators/xen-kernel/Makefile                      |  13 +-
 emulators/xen-kernel/distinfo                      |   6 +-
 ...all-use-an-union-as-register-type-for-fun.patch | 137 ---------------------
 sysutils/xen-tools/Makefile                        |   4 +-
 sysutils/xen-tools/distinfo                        |   6 +-
 5 files changed, 14 insertions(+), 152 deletions(-)

diff --git a/emulators/xen-kernel/Makefile b/emulators/xen-kernel/Makefile
index cb81823d89d6..0fdbe20e30a8 100644
--- a/emulators/xen-kernel/Makefile
+++ b/emulators/xen-kernel/Makefile
@@ -1,11 +1,11 @@
 PORTNAME=	xen
 PKGNAMESUFFIX=	-kernel
-DISTVERSION=	4.18.0.20240201
+DISTVERSION=	4.18.2.20240411
 CATEGORIES=	emulators
 
 USE_GITLAB=	yes
 GL_ACCOUNT=	xen-project
-GL_TAGNAME=	b1fdd7d0e47e0831ac7a99d0417385fc10d3068c
+GL_TAGNAME=	2d38302c33b117aa9a417056db241aefc840c2f0
 
 MAINTAINER=	royger@FreeBSD.org
 COMMENT=	Hypervisor using a microkernel design
@@ -28,9 +28,6 @@ PLIST_FILES=	/boot/xen \
 		lib/debug/boot/xen.debug \
 		lib/debug/boot/xen-debug.debug
 
-# Workaround clang code generation bug.
-EXTRA_PATCHES+=        ${PATCHDIR}/v2-0001-x86-altcall-use-an-union-as-register-type-for-fun.patch:-p1
-
 .include <bsd.port.options.mk>
 
 .if ${OPSYS} != FreeBSD
@@ -42,10 +39,12 @@ IGNORE=		only supported on FreeBSD
 #
 # Build both a production and a debug hypervisor.
 do-build:
-	${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} build-xen ${MAKE_ARGS} debug=y
+	${ECHO} "CONFIG_DEBUG=y" > ${WRKSRC}/xen/.config
+	${MAKE_CMD} -C ${WRKSRC}/xen olddefconfig ${MAKE_ARGS}
+	${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} build-xen ${MAKE_ARGS}
 	cp ${WRKSRC}/xen/xen ${WRKSRC}/xen/xen-debug
 	cp ${WRKSRC}/xen/xen-syms ${WRKSRC}/xen/xen-debug-syms
-	${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} clean-xen ${MAKE_ARGS}
+	${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} distclean-xen ${MAKE_ARGS}
 	${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} build-xen ${MAKE_ARGS}
 
 do-install:
diff --git a/emulators/xen-kernel/distinfo b/emulators/xen-kernel/distinfo
index 629e0923053c..d049ee74dd8a 100644
--- a/emulators/xen-kernel/distinfo
+++ b/emulators/xen-kernel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708622887
-SHA256 (xen-project-xen-b1fdd7d0e47e0831ac7a99d0417385fc10d3068c_GL0.tar.gz) = 4cb7ef37b51d9d1ff58272fafebfa91d48aadacdb5cc4ee6f046488234be8c1b
-SIZE (xen-project-xen-b1fdd7d0e47e0831ac7a99d0417385fc10d3068c_GL0.tar.gz) = 6826601
+TIMESTAMP = 1712913898
+SHA256 (xen-project-xen-2d38302c33b117aa9a417056db241aefc840c2f0_GL0.tar.gz) = c64a6ecc1b5f74f96ecaf73daf5dac58c9db00f8afcaa0e216b3b560d48a7008
+SIZE (xen-project-xen-2d38302c33b117aa9a417056db241aefc840c2f0_GL0.tar.gz) = 6840489
diff --git a/emulators/xen-kernel/files/v2-0001-x86-altcall-use-an-union-as-register-type-for-fun.patch b/emulators/xen-kernel/files/v2-0001-x86-altcall-use-an-union-as-register-type-for-fun.patch
deleted file mode 100644
index ec00a478cb23..000000000000
--- a/emulators/xen-kernel/files/v2-0001-x86-altcall-use-an-union-as-register-type-for-fun.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From e0d563ca60b16dfab45956f60a6c1b7b1e218ba4 Mon Sep 17 00:00:00 2001
-From: Roger Pau Monne <roger.pau@citrix.com>
-To: xen-devel@lists.xenproject.org
-Cc: Jan Beulich <jbeulich@suse.com>
-Cc: Andrew Cooper <andrew.cooper3@citrix.com>
-Cc: "Roger Pau Monné" <roger.pau@citrix.com>
-Cc: Wei Liu <wl@xen.org>
-Date: Wed, 21 Feb 2024 16:55:12 +0100
-Subject: [PATCH v2] x86/altcall: use an union as register type for function
- parameters
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The current code for alternative calls uses the caller parameter types as the
-types for the register variables that serve as function parameters:
-
-uint8_t foo;
-[...]
-alternative_call(myfunc, foo);
-
-Would expand roughly into:
-
-register unint8_t a1_ asm("rdi") = foo;
-register unsigned long a2_ asm("rsi");
-[...]
-asm volatile ("call *%c[addr](%%rip)"...);
-
-However under certain circumstances clang >= 16.0.0 with -O2 can generate
-incorrect code, given the following example:
-
-unsigned int func(uint8_t t)
-{
-    return t;
-}
-
-static void bar(uint8_t b)
-{
-    int ret_;
-    register uint8_t di asm("rdi") = b;
-    register unsigned long si asm("rsi");
-    register unsigned long dx asm("rdx");
-    register unsigned long cx asm("rcx");
-    register unsigned long r8 asm("r8");
-    register unsigned long r9 asm("r9");
-    register unsigned long r10 asm("r10");
-    register unsigned long r11 asm("r11");
-
-    asm volatile ( "call %c[addr]"
-                   : "+r" (di), "=r" (si), "=r" (dx),
-                     "=r" (cx), "=r" (r8), "=r" (r9),
-                     "=r" (r10), "=r" (r11), "=a" (ret_)
-                   : [addr] "i" (&(func)), "g" (func)
-                   : "memory" );
-}
-
-void foo(unsigned int a)
-{
-    bar(a);
-}
-
-Clang generates the following code:
-
-func:                                   # @func
-        movl    %edi, %eax
-        retq
-foo:                                    # @foo
-        callq   func
-        retq
-
-Note the truncation of the unsigned int parameter 'a' of foo() to uint8_t when
-passed into bar() is lost.
-
-The above can be worked around by using an union when defining the register
-variables, so that `di` becomes:
-
-register union {
-    uint8_t e;
-    unsigned long r;
-} di asm("rdi") = { .e = b };
-
-Which results in following code generated for `foo()`:
-
-foo:                                    # @foo
-        movzbl  %dil, %edi
-        callq   func
-        retq
-
-So the truncation is not longer lost.  Apply such workaround only when built
-with clang.
-
-Reported-by: Matthew Grooms <mgrooms@shrew.net>
-Link: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277200
-Link: https://github.com/llvm/llvm-project/issues/82598
-Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
----
-Changes since v1:
- - Only apply the union workaround with clang.
-
-Seems like all gitlab build tests are OK with this approach.
----
- xen/arch/x86/include/asm/alternative.h | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
-index a1cd6a9fe5b8..3fe27ea791bf 100644
---- a/xen/arch/x86/include/asm/alternative.h
-+++ b/xen/arch/x86/include/asm/alternative.h
-@@ -167,9 +167,25 @@ extern void alternative_branches(void);
- #define ALT_CALL_arg5 "r8"
- #define ALT_CALL_arg6 "r9"
- 
-+#ifdef CONFIG_CC_IS_CLANG
-+/*
-+ * Use an union with an unsigned long in order to prevent clang from skipping a
-+ * possible truncation of the value.  By using the union any truncation is
-+ * carried before the call instruction.
-+ * https://github.com/llvm/llvm-project/issues/82598
-+ */
-+#define ALT_CALL_ARG(arg, n)                                            \
-+    register union {                                                    \
-+        typeof(arg) e;                                                  \
-+        unsigned long r;                                                \
-+    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
-+        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
-+    }
-+#else
- #define ALT_CALL_ARG(arg, n) \
-     register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \
-         ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })
-+#endif
- #define ALT_CALL_NO_ARG(n) \
-     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n )
- 
--- 
-2.43.0
-
diff --git a/sysutils/xen-tools/Makefile b/sysutils/xen-tools/Makefile
index a38f0c4d4ffa..610f426d074b 100644
--- a/sysutils/xen-tools/Makefile
+++ b/sysutils/xen-tools/Makefile
@@ -1,12 +1,12 @@
 PORTNAME=	xen
 PKGNAMESUFFIX=	-tools
-DISTVERSION=	4.18.0.20240201
+DISTVERSION=	4.18.2.20240411
 PORTREVISION=	1
 CATEGORIES=	sysutils emulators
 
 USE_GITLAB=	yes
 GL_ACCOUNT=	xen-project
-GL_TAGNAME=	b1fdd7d0e47e0831ac7a99d0417385fc10d3068c
+GL_TAGNAME=	2d38302c33b117aa9a417056db241aefc840c2f0
 GL_TUPLE=	qemu-project:qemu:v8.0.4:qemu \
 		qemu-project:dtc:b6910bec:dtc \
 		qemu-project:meson:3a9b285a:meson \
diff --git a/sysutils/xen-tools/distinfo b/sysutils/xen-tools/distinfo
index 97bbb13a4006..578a854967e2 100644
--- a/sysutils/xen-tools/distinfo
+++ b/sysutils/xen-tools/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1708623243
-SHA256 (xen-project-xen-b1fdd7d0e47e0831ac7a99d0417385fc10d3068c_GL0.tar.gz) = 4cb7ef37b51d9d1ff58272fafebfa91d48aadacdb5cc4ee6f046488234be8c1b
-SIZE (xen-project-xen-b1fdd7d0e47e0831ac7a99d0417385fc10d3068c_GL0.tar.gz) = 6826601
+TIMESTAMP = 1712913938
+SHA256 (xen-project-xen-2d38302c33b117aa9a417056db241aefc840c2f0_GL0.tar.gz) = c64a6ecc1b5f74f96ecaf73daf5dac58c9db00f8afcaa0e216b3b560d48a7008
+SIZE (xen-project-xen-2d38302c33b117aa9a417056db241aefc840c2f0_GL0.tar.gz) = 6840489
 SHA256 (qemu-v8.0.4.tar.bz2) = 958eae6b32046bb512b5b968f66e896258fa8c4ec5c7fdf2d780fd206c677774
 SIZE (qemu-v8.0.4.tar.bz2) = 31468222
 SHA256 (dtc-b6910bec.tar.bz2) = f180420b105bdd35cfee9977d6ee2ee5d6601aa2a84693c048a985a604bd2c1c