Index | Thread | Search

From:
Jeremie Courreges-Anglas <jca@wxcvbn.org>
Subject:
webkitgtk4 fix for powerpc
To:
ajacoutot@openbsd.org
Cc:
ports@openbsd.org, tobhe@openbsd.org, gkoehler@openbsd.org
Date:
Mon, 15 Apr 2024 17:53:14 +0200

Download raw body.

Thread
tobhe called, he wants his webkitgtk4 back (on powerpc).  The diff
below should fix the webkitgtk4 build on powerpc, powerpc64 and
mips64.  It's directly inspired from gkoehler's diff for lang/gambit.

The error seen in the latest bulk:
  fatal error: error in backend: failed to perform tail call elimination on a call site marked musttail

Completely untested but also innocuous for other archs.  tobhe could
test on bluhm's machine, or maybe gkoehler could put it in his next
build?

ok?


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/www/webkitgtk4/Makefile,v
diff -u -p -r1.212 Makefile
--- Makefile	15 Apr 2024 11:48:20 -0000	1.212
+++ Makefile	15 Apr 2024 15:48:09 -0000
@@ -16,7 +16,7 @@ V =			2.44.1
 DISTNAME =		webkitgtk-${V}
 PKGNAME =		webkitgtk${API:S/.//}-${V}
 FULLPKGNAME =		${PKGNAME}
-REVISION =		0
+REVISION =		1
 
 EXTRACT_SUFX =		.tar.xz
 SUBST_VARS =		API
Index: patches/patch-Source_WTF_wtf_Compiler_h
===================================================================
RCS file: patches/patch-Source_WTF_wtf_Compiler_h
diff -N patches/patch-Source_WTF_wtf_Compiler_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-Source_WTF_wtf_Compiler_h	15 Apr 2024 15:47:59 -0000
@@ -0,0 +1,15 @@
+Disable musttail attribute, not supported by clang on powerpc, powerpc64
+and mips64.
+
+Index: Source/WTF/wtf/Compiler.h
+--- Source/WTF/wtf/Compiler.h.orig
++++ Source/WTF/wtf/Compiler.h
+@@ -321,7 +321,7 @@
+ /* MUST_TAIL_CALL */
+ 
+ #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute)
+-#if __has_cpp_attribute(clang::musttail)
++#if __has_cpp_attribute(clang::musttail) && !defined(__mips__) && !defined(__powerpc__)
+ #define MUST_TAIL_CALL [[clang::musttail]]
+ #endif
+ #endif


-- 
jca