Spotted during the macppc bulk, multimedia/synfigstudio does not build, because of synfig:
> synfig(59818) [05:20:15] info: Loading file: synfig_icon.sif > gmake[2]: Leaving directory > '/usr/obj/ports/synfigstudio-1.2.1/synfigstudio-1.2.1/images' > gmake[2]: *** [Makefile:1414: 128x128/synfig_icon.png] Segmentation fault > (core dumped) Also mips64 is impacted: > http://build-failures.rhaalovely.net/mips64/2020-04-02/multimedia/synfigstudio.log Upstream fixed the issue already [0] This does not fix synfigstudio's build on macppc, because synfig segfaults there in multi-threaded mode [1]. It was the case with gcc already, but clang exposes it even more. Due to the high build time implied, i would like to see synfig marked BROKEN-powerpc. Comments/feedback are welcome, Charlène. [0] https://github.com/synfig/synfig/commit/02a02d759ebeb6458c4f05ea90dde0caa52ce321 [1] https://bin.charlenew.xyz/macppc/paths/multimedia/synfigstudio.log Index: Makefile =================================================================== RCS file: /cvs/ports/multimedia/synfig/Makefile,v retrieving revision 1.30 diff -u -p -u -p -r1.30 Makefile --- Makefile 10 Nov 2019 15:32:56 -0000 1.30 +++ Makefile 22 Apr 2020 05:41:57 -0000 @@ -1,11 +1,13 @@ # $OpenBSD: Makefile,v 1.30 2019/11/10 15:32:56 ajacoutot Exp $ +BROKEN-powerpc = segfault in multi-threaded mode, synfigstudio can't be built + COMMENT = 2D animation software V= 1.2.1 DISTNAME = synfig-$V API_V = 1.0 -REVISION = 4 +REVISION = 5 SHARED_LIBS += synfig 2.0 # 0.0 Index: patches/patch-src_synfig_filesystem_cpp =================================================================== RCS file: patches/patch-src_synfig_filesystem_cpp diff -N patches/patch-src_synfig_filesystem_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_synfig_filesystem_cpp 22 Apr 2020 05:41:57 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Fix segfaults during the build of multimedia/synfigstudio, from +https://github.com/synfig/synfig/issues/822 + +Index: src/synfig/filesystem.cpp +--- src/synfig/filesystem.cpp.orig ++++ src/synfig/filesystem.cpp +@@ -181,7 +181,7 @@ String FileSystem::fix_slashes(const String &filename) + { + String fixed = etl::cleanup_path(filename); + if (fixed == ".") fixed = ""; +- for(size_t i = 0; i < filename.size(); ++i) ++ for(size_t i = 0; i < fixed.size(); ++i) + if (fixed[i] == '\\') fixed[i] = '/'; + return fixed; + }