On Fri, 11 Jun 2021 22:38:09 -0400
George Koehler <kernigh@gmail.com> wrote:
> On Fri, 11 Jun 2021 19:13:46 +0000
> Charlene Wendling <julianaito@posteo.jp> wrote:
>
> > Hi,
> >
> > As reported in the fediverse, sdl2 generates SIGILL on Mac G3s [0].
> >
> > sdl2 is built with AltiVec support, runtime detection is present and
> > valid (see $WRKSRC/src/cpuinfo/SDL_cpuinfo.c), yet failing. So the
> > simple solution is to remove AltiVec from the build for now.
> >
> > I've tested this on my PowerBook G4 against ffplay, mpv,
> > openttd and scummvm, without issues.
> >
> > I've also tested successfully these ports on my Mac Mini G4, but
> > this time, using a kernel without the ALTIVEC option.
> >
> > OK?
>
> ok gkoehler@
>
> SDL-1.x (devel/sdl) might need the same --enable-altivec=no fix, but
> I didn't try it.
>
> SDL was using ${CC} -maltivec, so it's altivec blitter can use
> <altivec.h> operations. The problem is that ${CC} -maltivec can also
> optimize any *.c code with altivec. (graphics/ffmpeg had the same
> problem when we tried to enable altivec.)
>
> Later, one might try to enable altivec again by moving the altivec
> blitter to a separate file, and compiling only that file with
> -maltivec (as xenocara/lib/pixman does now).
>
> --George
>
> > Charlène.
> >
> >
> > [0] https://empty.cafe/@will/106329827929064693
You were right, SDL 1.x is impacted as well. I've updated the diff
below to include SDL 1.x. It has been tested successfully against
frozen-bubble and tutris. xmoto fails with:
Program received signal SIGILL, Illegal instruction.
0x9830c5f0 in jsimd_idct_ifast_altivec ()
from /usr/local/lib/libjpeg.so.70.0
So i know what's up next, but given a lot of stuff depend on libjpeg, it
should be way longer, since i may need to rebuild almost all my
current packages ;)
Charlène.
Index: devel/sdl2/Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl2/Makefile,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile
--- devel/sdl2/Makefile 23 Jan 2021 17:47:43 -0000 1.34
+++ devel/sdl2/Makefile 12 Jun 2021 12:01:33 -0000
@@ -5,7 +5,7 @@ COMMENT= cross-platform multimedia libra
V= 2.0.14
DISTNAME= SDL2-${V}
PKGNAME= sdl2-${V}
-REVISION= 1
+REVISION= 2
CATEGORIES= devel
MASTER_SITES= https://www.libsdl.org/release/
@@ -50,6 +50,13 @@ CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}
.if ${MACHINE_ARCH} == "hppa"
CONFIGURE_ARGS+= --disable-atomic
+.endif
+
+# The assembly code contains AltiVec instructions, whose support is not
+# properly detected at runtime. Fix SIGILLs on macppc G3s, while keeping
+# it for powerpc64.
+.if ${MACHINE_ARCH} == "powerpc"
+CONFIGURE_ARGS+= --enable-altivec=no
.endif
# tests in test subdir, but interactive and not hooked up to build
Index: devel/sdl/Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl/Makefile,v
retrieving revision 1.105
diff -u -p -r1.105 Makefile
--- devel/sdl/Makefile 23 Jan 2021 17:52:00 -0000 1.105
+++ devel/sdl/Makefile 12 Jun 2021 12:01:33 -0000
@@ -5,7 +5,7 @@ COMMENT= cross-platform multimedia libra
VERSION= 1.2.15
DISTNAME= SDL-${VERSION}
PKGNAME= ${DISTNAME:L}
-REVISION= 11
+REVISION= 12
CATEGORIES= devel
MAINTAINER= Thomas Frohwein <thfr@openbsd.org>
MASTER_SITES= ${HOMEPAGE}release/
@@ -64,6 +64,13 @@ WANTLIB+= X11 Xau Xdmcp Xext Xrandr Xren
.endif
NO_TEST= Yes
+
+# The assembly code contains AltiVec instructions, whose support is not
+# properly detected at runtime. Fix SIGILLs on macppc G3s, while keeping
+# it for powerpc64.
+.if ${MACHINE_ARCH} == "powerpc"
+CONFIGURE_ARGS+= --enable-altivec=no
+.endif
pre-configure:
@mkdir -p ${WRKSRC}/src/audio/sndio
No comments:
Post a Comment