On 2017/12/06 15:32, Kirill Bychkov wrote: > On Wed, December 6, 2017 14:37, Stuart Henderson wrote: > > On 2017/12/06 11:49, Kirill Bychkov wrote: > >> On Wed, December 6, 2017 11:34, Jeremie Courreges-Anglas wrote: > >> > On Wed, Dec 06 2017, "Kirill Bychkov" <ki...@linklevel.net> wrote: > >> >> On Wed, December 6, 2017 03:23, Jeremie Courreges-Anglas wrote: > >> >>> On Sun, Dec 03 2017, "Kirill Bychkov" <ki...@linklevel.net> wrote: > >> >>>> Hi! > >> >>>> This patch enables build of libraw on other gcc4 arches, not only arm. > >> >>>> Tested on macppc. > >> >>>> OK? > >> >>> > >> >>> This looks heavy-handed to me, why extend this to all non-clang archs, > >> >>> afaik base-gcc has support for 4-bytes atomics on powerpc. How does > >> >>> the > >> >>> build fail exactly? > >> >> > >> >> Without patch I see > >> >> ===> libraw-0.18.5 is only for aarch64 amd64 i386 arm, not powerpc > >> >> (macppc) . > >> >> MODGCC4_ARCHS = arm somehow overrides ONLY_FOR_ARCHES: > >> >> > >> >> make show=ONLY_FOR_ARCHS > >> >> aarch64 amd64 i386 arm > >> >> > >> >> With patch: > >> >> make show=ONLY_FOR_ARCHS > >> >> aarch64 amd64 i386 amd64 arm hppa i386 mips64 mips64el powerpc sparc64 > >> >> > >> >> Switching MODULES=gcc4 to COMPILER=gcc made libraw unavailable on most > >> >> arches. > >> >> See > >> >> http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/graphics/libraw/Makefile.diff?r1=1.24&r2=1.25 > >> > > >> > ok, thanks for confirming. > >> > > >> >> Better patch: > >> >> > >> >> Index: Makefile > >> >> =================================================================== > >> >> RCS file: /cvs/ports/graphics/libraw/Makefile,v > >> >> retrieving revision 1.29 > >> >> diff -u -p -u -r1.29 Makefile > >> >> --- Makefile 16 Nov 2017 23:20:39 -0000 1.29 > >> >> +++ Makefile 6 Dec 2017 08:13:27 -0000 > >> >> @@ -22,9 +22,10 @@ WANTLIB += c jasper jpeg lcms2 m pthread > >> >> > >> >> MASTER_SITES = https://www.libraw.org/data/ > >> >> > >> >> -COMPILER = base-clang ports-gcc > >> >> # for atomic builtins (__sync_fetch_and_add_4) > >> >> -MODGCC4_ARCHS = arm > >> >> +.if ${MACHINE_ARCH} == "arm" > >> >> +COMPILER = base-clang ports-gcc > >> >> +.endif > >> > > >> > I guess it's fine, but isn't the shortest fix to add "base-gcc" at the > >> > end of COMPILER? > >> > >> macppc is quite happy with base-gcc, so it should be before ports-gcc. And > >> for arm ports-gcc is the only solution I suppose (have no hw to test). > >> So I see no other way to deal with arm other than this. > >> > >> > >> > > > > I think COMPILER should be removed here, seems it should probably > > use this instead (untested): > > > > # XXX remove when armv7 switches to clang in base? > > MODULES= gcc4 > > MODGCC4_ARCHS= arm > > MODGCC4_LANGS= c++ > > > > > Missed that point that we could simply return back to MODULES=gcc instead > of COMPILER. Works for me on macppc and amd64. >
Is it worth trying that on hppa as well? OK? Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/libraw/Makefile,v retrieving revision 1.29 diff -u -p -r1.29 Makefile --- Makefile 16 Nov 2017 23:20:39 -0000 1.29 +++ Makefile 6 Dec 2017 13:15:56 -0000 @@ -1,7 +1,5 @@ # $OpenBSD: Makefile,v 1.29 2017/11/16 23:20:39 naddy Exp $ -BROKEN-hppa = undefined reference to __sync_fetch_and_add_4 - COMMENT = library for reading RAW files DISTNAME = LibRaw-0.18.5 @@ -22,9 +20,11 @@ WANTLIB += c jasper jpeg lcms2 m pthread MASTER_SITES = https://www.libraw.org/data/ -COMPILER = base-clang ports-gcc +MODULES = gcc4 # for atomic builtins (__sync_fetch_and_add_4) -MODGCC4_ARCHS = arm +# XXX remove when armv7 switches to clang in base? +MODGCC4_ARCHS = arm hppa +MODGCC4_LANGS = c++ LIB_DEPENDS = graphics/jasper \ graphics/lcms2