commit: 7e28377df9c3d875bf9d11ce173ba05d0ada69c7 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Wed Feb 18 07:20:09 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Feb 18 07:20:09 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e28377d
dev-perl/SDL: fix build w/ c23 Closes: https://bugs.gentoo.org/945242 Signed-off-by: Sam James <sam <AT> gentoo.org> ...SDL-2.548.0-r3.ebuild => SDL-2.548.0-r4.ebuild} | 3 +- dev-perl/SDL/files/SDL-2.548-c23.patch | 67 ++++++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/dev-perl/SDL/SDL-2.548.0-r3.ebuild b/dev-perl/SDL/SDL-2.548.0-r4.ebuild similarity index 94% rename from dev-perl/SDL/SDL-2.548.0-r3.ebuild rename to dev-perl/SDL/SDL-2.548.0-r4.ebuild index 51fadb44ea35..3c156f3d0704 100644 --- a/dev-perl/SDL/SDL-2.548.0-r3.ebuild +++ b/dev-perl/SDL/SDL-2.548.0-r4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -55,4 +55,5 @@ PATCHES=( "${FILESDIR}"/${PN}-2.548-perl537_sv_nv.patch "${FILESDIR}"/${PN}-2.548-refcount.patch "${FILESDIR}"/${PN}-2.548-uaf-surface.patch + "${FILESDIR}"/${PN}-2.548-c23.patch ) diff --git a/dev-perl/SDL/files/SDL-2.548-c23.patch b/dev-perl/SDL/files/SDL-2.548-c23.patch new file mode 100644 index 000000000000..f99182cf9719 --- /dev/null +++ b/dev-perl/SDL/files/SDL-2.548-c23.patch @@ -0,0 +1,67 @@ +https://bugs.gentoo.org/945242 +https://github.com/PerlGameDev/SDL/issues/294 +https://github.com/PerlGameDev/SDL/commit/2a1eb99101a89e46c13b75b08a4c685e0f7425fe + +From 2a1eb99101a89e46c13b75b08a4c685e0f7425fe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <[email protected]> +Date: Tue, 11 Feb 2025 12:14:27 +0100 +Subject: [PATCH] Fix building in ISO C23 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building with GCC 15, which defaults to ISO C23, failed like this: + + In file included from lib/SDL_perl.xs:32: + lib/SDL_perl.c:654:13: error: conflicting types for ‘boot_SDL’; have ‘void(PerlInterpreter *, CV *)’ {aka ‘void(struct interpreter *, struct cv *)’} + 654 | XS_EXTERNAL(boot_SDL); /* prototype to pass -Wmissing-prototypes */ + | ^~~~~~~~ + /usr/lib64/perl5/CORE/XSUB.h:149:34: note: in definition of macro ‘XS_EXTERNAL’ + 149 | # define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) + | ^~~~ + lib/SDL_perl.xs:147:6: note: previous declaration of ‘boot_SDL’ with type ‘void(void)’ + 147 | void boot_SDL(); + | ^~~~~~~~ + lib/SDL_perl.c:655:13: error: conflicting types for ‘boot_SDL’; have ‘void(PerlInterpreter *, CV *)’ {aka ‘void(struct interpreter *, struct cv *)’} + 655 | XS_EXTERNAL(boot_SDL) + | ^~~~~~~~ + /usr/lib64/perl5/CORE/XSUB.h:149:34: note: in definition of macro ‘XS_EXTERNAL’ + 149 | # define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) + | ^~~~ + lib/SDL_perl.xs:147:6: note: previous declaration of ‘boot_SDL’ with type ‘void(void)’ + 147 | void boot_SDL(); + | ^~~~~~~~ + +The cause is a mismatch between how boot_SDL() was declared and used +in src/SDL.xs and how Perl generates a boot function for XS packages. +This patch fixes it by passing current Perl interpreter and, probably +ignored, cv argument. + +Resolves: https://github.com/PerlGameDev/SDL/issues/294 +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2341036 +--- + src/SDL.xs | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/SDL.xs b/src/SDL.xs +index a13882c8..5856e3af 100644 +--- a/src/SDL.xs ++++ b/src/SDL.xs +@@ -144,7 +144,7 @@ sdl_perl_atexit (void) + SDL_Quit(); + } + +-void boot_SDL(); ++XS(boot_SDL); + void boot_SDL__OpenGL(); + + XS(boot_SDL_perl) +@@ -155,7 +155,7 @@ XS(boot_SDL_perl) + #endif + PL_perl_destruct_level = 2; + GET_TLS_CONTEXT +- boot_SDL(); ++ boot_SDL(aTHX_ cv); + + #if defined WINDOWS || defined WIN32 + SDL_RegisterApp ("SDLPerl App", 0, GetModuleHandle (NULL));
