On 2017/05/09 12:25, Juan Francisco Cantero Hurtado wrote: > On Tue, May 09, 2017 at 11:24:27AM +1000, Jonathan Gray wrote: > > On Mon, May 08, 2017 at 10:47:56PM +0200, Donovan Watteau wrote: > > > Hi, > > > > > > ScummVM and ResidualVM share some code, and it looks like they > > > trigger an old bug with GCC 4.2.1 on ppc. > > > > > > All the games having voices crash at startup on macppc, with what > > > looks like some miscompiled code in audio/decoders/voc.cpp for > > > ScummVM, and common/stream.cpp for ResidualVM. > > > > > > After some trial and error, it looks like this is a bug with > > > -funit-at-a-time on GCC 4.2.1. I see this problem on macppc, > > > but it could also happen on arm, judging by the following > > > similar reports: > > > http://www.smartmontools.org/ticket/219 > > > https://gcc.gnu.org/ml/gcc-help/2010-11/msg00038.html > > > > I think you should only do this for powerpc for now, as > > otherwise aarch64 has no chance of building. > > > > With MODGCC4_ARCHS=${GCC3_ARCHS} ${GCC4_ARCHS}, the port will use clang > on aarch64.
But if you just change that, WANTLIB will be missing the c++ libs. > > > > > > So, using -fno-unit-at-a-time could be an option and works, but > > > it looks like a complex and random bug in GCC 4.2, so I think it's > > > probably safer to compile ScummVM and ResidualVM with a newer > > > compiler that doesn't miscompile this in the first place. > > > > > > The crashes disappear on macppc when compiling with GCC 4.9. > > > > > > Switch to .tar.xz distfiles while there, as this was debugged > > > on an extremely poor link where saving a bit of bandwidth helped. > > > > > > games/scummvm: > > > > > > Index: Makefile > > > =================================================================== > > > RCS file: /cvs/ports/games/scummvm/Makefile,v > > > retrieving revision 1.68 > > > diff -u -p -r1.68 Makefile > > > --- Makefile 10 Apr 2017 11:46:19 -0000 1.68 > > > +++ Makefile 8 May 2017 20:24:55 -0000 > > > @@ -5,6 +5,8 @@ V= 1.9.0 > > > DISTNAME= scummvm-${V} > > > CATEGORIES= games x11 emulators > > > MASTER_SITES= http://www.scummvm.org/frs/scummvm/${V}/ > > > +EXTRACT_SUFX= .tar.xz > > > +REVISION= 0 > > > > > > HOMEPAGE= http://www.scummvm.org/ > > > > > > @@ -13,12 +15,18 @@ MAINTAINER= Jonathan Gray <jsg@openbsd.o > > > # GPLv2+ > > > PERMIT_PACKAGE_CDROM= Yes > > > > > > -WANTLIB += FLAC SDL2 c faad freetype jpeg m mad png pthread sndio > > > ${LIBCXX} > > > +WANTLIB += FLAC SDL2 c faad freetype jpeg m mad png pthread sndio > > > WANTLIB += theoradec z > > > > > > .if ${MACHINE_ARCH} == "i386" > > > BUILD_DEPENDS= devel/nasm > > > .endif > > > + > > > +# GCC 4.2.1 miscompiles this on at least ppc, so play safe and > > > +# just use a newer compiler everywhere. > > > +MODULES= gcc4 > > > +MODGCC4_ARCHS= * > > > +MODGCC4_LANGS= c++ > > > > > > RUN_DEPENDS= devel/desktop-file-utils > > > LIB_DEPENDS= audio/libmad \ > > > Index: distinfo > > > =================================================================== > > > RCS file: /cvs/ports/games/scummvm/distinfo,v > > > retrieving revision 1.34 > > > diff -u -p -r1.34 distinfo > > > --- distinfo 1 Nov 2016 13:03:14 -0000 1.34 > > > +++ distinfo 8 May 2017 20:24:55 -0000 > > > @@ -1,2 +1,2 @@ > > > -SHA256 (scummvm-1.9.0.tar.gz) = > > > tfDO8sSds8UhjPhe9xhUi3Ctj6Wks20h3ywGcVBVgfU= > > > -SIZE (scummvm-1.9.0.tar.gz) = 33252122 > > > +SHA256 (scummvm-1.9.0.tar.xz) = > > > JBftyxrVHKBagXxYru5hC8bbVEKYTozyjopf2RTorgU= > > > +SIZE (scummvm-1.9.0.tar.xz) = 22020384 > > > > > > games/residualvm: > > > > > > Index: Makefile > > > =================================================================== > > > RCS file: /cvs/ports/games/residualvm/Makefile,v > > > retrieving revision 1.7 > > > diff -u -p -r1.7 Makefile > > > --- Makefile 10 Apr 2017 11:46:19 -0000 1.7 > > > +++ Makefile 8 May 2017 20:24:58 -0000 > > > @@ -5,7 +5,7 @@ COMMENT = interpreter for some LucasArt > > > V = 0.2.1 > > > DISTNAME = residualvm-${V}-sources > > > PKGNAME = residualvm-${V} > > > -REVISION = 1 > > > +REVISION = 2 > > > > > > CATEGORIES = games > > > > > > @@ -14,7 +14,7 @@ HOMEPAGE = http://residualvm.org/ > > > # GPLv2+ > > > PERMIT_PACKAGE_CDROM = Yes > > > > > > -WANTLIB += GL SDL c freetype iconv jpeg m mad mpeg2 ogg png pthread > > > ${LIBCXX} > > > +WANTLIB += GL SDL c freetype iconv jpeg m mad mpeg2 ogg png pthread > > > WANTLIB += theoradec vorbis vorbisfile z > > > > > > MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=residualvm/} > > > @@ -29,6 +29,12 @@ LIB_DEPENDS = audio/libmad \ > > > multimedia/libtheora > > > RUN_DEPENDS = devel/desktop-file-utils \ > > > x11/gtk+3,-guic > > > + > > > +# GCC 4.2.1 miscompiles this on at least ppc, so play safe and > > > +# just use a newer compiler everywhere. > > > +MODULES = gcc4 > > > +MODGCC4_ARCHS = * > > > +MODGCC4_LANGS = c++ > > > > > > SEPARATE_BUILD = Yes > > > USE_GMAKE = Yes > > > > > > > -- > Juan Francisco Cantero Hurtado http://juanfra.info >