adjustments for arm clang switch
With armv7 switching to clang as the base compiler atomic builtins and -mfpu=neon are now available on arm. Other BROKEN markers are suspect as well devel/codeblocks/Makefile:BROKEN-arm= wxwidgets va_list c++ mangling requires gcc < 4.4 devel/arm-none-eabi/gcc-linaro/Makefile:BROKEN-armv7= error during libgcc autoconf "checking for suffix of object files", probably similar to i386 devel/reposurgeon/Makefile:BROKEN-arm= out of memory compiling cyreposurgeon.c games/crimson/Makefile:BROKEN-arm= mktileset buggy, loops at high CPU use games/stone-soup/Makefile:BROKEN-arm= tilegen.elf loops burning cpu games/fifengine/Makefile:BROKEN-arm = out of memory when compiling fifePYTHON_wrap.cxx lang/seed7/Makefile:BROKEN-arm =gmake: *** [makefile:279: ../bin/make7] Bus error (core dumped) security/john-jumbo/Makefile:BROKEN-arm = uaf_encode_plug.c:61: error: stray '$' in program Index: audio/audiality2/Makefile === RCS file: /cvs/ports/audio/audiality2/Makefile,v retrieving revision 1.2 diff -u -p -r1.2 Makefile --- audio/audiality2/Makefile 20 Dec 2017 20:26:33 - 1.2 +++ audio/audiality2/Makefile 20 Jan 2018 00:48:15 - @@ -25,8 +25,6 @@ WANTLIB += c SDL2 m COMPILER = base-clang ports-gcc base-gcc COMPILER_LANGS = c -# __sync_bool_compare_and_swap_4 -MODGCC4_ARCHS =arm MODULES = devel/cmake LIB_DEPENDS = devel/sdl2 Index: audio/jack/Makefile === RCS file: /cvs/ports/audio/jack/Makefile,v retrieving revision 1.37 diff -u -p -r1.37 Makefile --- audio/jack/Makefile 29 Dec 2016 14:29:37 - 1.37 +++ audio/jack/Makefile 20 Jan 2018 00:48:29 - @@ -20,10 +20,6 @@ WANTLIB += sndio termcap FLAC ogg vorbis MASTER_SITES = ${HOMEPAGE}downloads/ -MODULES = gcc4 -# needs __sync_fetch_and_add_4, __sync_add_and_fetch_4 -MODGCC4_ARCHS =arm - LIB_DEPENDS = audio/libsndfile \ audio/libsamplerate \ audio/celt>=0.11.0 \ Index: databases/kyotocabinet/Makefile === RCS file: /cvs/ports/databases/kyotocabinet/Makefile,v retrieving revision 1.19 diff -u -p -r1.19 Makefile --- databases/kyotocabinet/Makefile 26 Jul 2017 22:45:16 - 1.19 +++ databases/kyotocabinet/Makefile 20 Jan 2018 00:42:51 - @@ -24,11 +24,6 @@ WANTLIB += c m pthread ${COMPILER_LIBCXX MASTER_SITES= ${HOMEPAGE}pkg/ -# for atomic builtins -MODULES= gcc4 -MODGCC4_ARCHS= arm -MODGCC4_LANGS= c++ - USE_GMAKE= Yes CONFIGURE_STYLE=gnu Index: databases/postgresql/Makefile === RCS file: /cvs/ports/databases/postgresql/Makefile,v retrieving revision 1.233 diff -u -p -r1.233 Makefile --- databases/postgresql/Makefile 13 Jan 2018 12:28:49 - 1.233 +++ databases/postgresql/Makefile 20 Jan 2018 00:49:19 - @@ -46,11 +46,8 @@ USE_GMAKE= Yes CONFIGURE_STYLE=gnu -MODULES= lang/python gcc4 +MODULES= lang/python MODPY_RUNDEP= No - -# for __sync_lock_test_and_set -MODGCC4_ARCHS= arm CONFIGURE_ENV= ac_cv_path_PYTHON=${MODPY_BIN} \ CPPFLAGS="-I${LOCALBASE}/include" \ Index: databases/postgresql-previous/Makefile === RCS file: /cvs/ports/databases/postgresql-previous/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- databases/postgresql-previous/Makefile 30 Nov 2017 16:21:25 - 1.4 +++ databases/postgresql-previous/Makefile 20 Jan 2018 00:49:34 - @@ -30,12 +30,9 @@ USE_GMAKE= Yes CONFIGURE_STYLE=gnu -MODULES= lang/python gcc4 +MODULES= lang/python MODPY_RUNDEP= No POSTGRESQL_DIR=postgresql-${VERSION:C/.[0-9]+$//} - -# for __sync_lock_test_and_set -MODGCC4_ARCHS= arm CONFIGURE_ENV= ac_cv_path_PYTHON=${MODPY_BIN} \ CPPFLAGS="-I${LOCALBASE}/include" \ Index: devel/libgit2/libgit2/Makefile === RCS file: /cvs/ports/devel/libgit2/libgit2/Makefile,v retrieving revision 1.32 diff -u -p -r1.32 Makefile --- devel/libgit2/libgit2/Makefile 8 Dec 2017 18:58:53 - 1.32 +++ devel/libgit2/libgit2/Makefile 20 Jan 2018 01:01:40 - @@ -16,7 +16,7 @@ MODPY_RUNDEP= No COMPILER= base-clang ports-gcc base-gcc COMPILER_LANGS=c # for atomic builtins -MODGCC4_ARCHS= arm hppa +MODGCC4_ARCHS= hppa # bundles https://github.com/nodejs/http-parser LIB_DEPENDS= net/curl \ Index: devel/liburcu/Makefile === RCS file: /cvs/ports/devel/liburcu/Makefile,v retrieving revision
Re: adjustments for arm clang switch
On Sat, Jan 20 2018, Jonathan Gray wrote: > With armv7 switching to clang as the base compiler atomic builtins and > -mfpu=neon are now available on arm. > > Other BROKEN markers are suspect as well > > devel/codeblocks/Makefile:BROKEN-arm= wxwidgets va_list c++ mangling requires > gcc < 4.4 > devel/arm-none-eabi/gcc-linaro/Makefile:BROKEN-armv7= error during libgcc > autoconf "checking for suffix of object files", probably similar to i386 > devel/reposurgeon/Makefile:BROKEN-arm=out of memory compiling > cyreposurgeon.c > games/crimson/Makefile:BROKEN-arm=mktileset buggy, loops at high CPU use > games/stone-soup/Makefile:BROKEN-arm= tilegen.elf loops burning cpu > games/fifengine/Makefile:BROKEN-arm = out of memory when compiling > fifePYTHON_wrap.cxx > lang/seed7/Makefile:BROKEN-arm = gmake: *** [makefile:279: ../bin/make7] > Bus error (core dumped) > security/john-jumbo/Makefile:BROKEN-arm = uaf_encode_plug.c:61: error: > stray '$' in program > > Index: audio/audiality2/Makefile > === > RCS file: /cvs/ports/audio/audiality2/Makefile,v > retrieving revision 1.2 > diff -u -p -r1.2 Makefile > --- audio/audiality2/Makefile 20 Dec 2017 20:26:33 - 1.2 > +++ audio/audiality2/Makefile 20 Jan 2018 00:48:15 - > @@ -25,8 +25,6 @@ WANTLIB += c SDL2 m > > COMPILER = base-clang ports-gcc base-gcc > COMPILER_LANGS = c > -# __sync_bool_compare_and_swap_4 > -MODGCC4_ARCHS = arm The intent here was to require ports-gcc on arm only. Please delete all of COMPILER/COMPILER_LANGS/MODGCC4_ARCHS. Except for racket-minimal which looks suspicious (see below), the rest look good, ok jca@ > Index: lang/racket-minimal/Makefile > === > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > retrieving revision 1.43 > diff -u -p -r1.43 Makefile > --- lang/racket-minimal/Makefile 2 Dec 2017 21:39:49 - 1.43 > +++ lang/racket-minimal/Makefile 20 Jan 2018 00:52:42 - > @@ -38,7 +38,6 @@ EXTRACT_SUFX = .tgz > # "places" and "futures" require TLS. > COMPILER = base-clang ports-gcc > COMPILER_LANGS = c > -MODGCC4_ARCHS = arm If you remove this line only, then mips64el, powerpc and sparc64 will start using ports-gcc. I'm not sure what was intended. cc'ing maintainer. (The port uses ONLY_FOR_ARCHS: ONLY_FOR_ARCHS = arm amd64 i386 mips64el powerpc sparc64) > > LIB_DEPENDS =converters/libiconv \ > databases/sqlite3 \ -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
Re: adjustments for arm clang switch
On 2018/01/20 16:28, Jonathan Gray wrote: > With armv7 switching to clang as the base compiler atomic builtins and > -mfpu=neon are now available on arm. Comments on a couple below, others are OK with me: > Index: lang/racket-minimal/Makefile > === > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > retrieving revision 1.43 > diff -u -p -r1.43 Makefile > --- lang/racket-minimal/Makefile 2 Dec 2017 21:39:49 - 1.43 > +++ lang/racket-minimal/Makefile 20 Jan 2018 00:52:42 - > @@ -38,7 +38,6 @@ EXTRACT_SUFX = .tgz > # "places" and "futures" require TLS. > COMPILER = base-clang ports-gcc > COMPILER_LANGS = c > -MODGCC4_ARCHS = arm > > LIB_DEPENDS =converters/libiconv \ > databases/sqlite3 \ Here ports-gcc is only used for arm (restricting from the defaults). By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, so the effect you are looking for would come from removing the COMPILER* lines as well. This doesn't really square up with the above comment about TLS though because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know what's going on here? > Index: multimedia/mpv/Makefile > === > RCS file: /cvs/ports/multimedia/mpv/Makefile,v > retrieving revision 1.38 > diff -u -p -r1.38 Makefile > --- multimedia/mpv/Makefile 23 Oct 2017 17:10:52 - 1.38 > +++ multimedia/mpv/Makefile 20 Jan 2018 00:42:26 - > @@ -1,7 +1,7 @@ > # $OpenBSD: Makefile,v 1.38 2017/10/23 17:10:52 sthen Exp $ > > # archs with atomic ops > -ONLY_FOR_ARCHS = aarch64 alpha amd64 i386 mips64 mips64el powerpc sparc64 > +ONLY_FOR_ARCHS = aarch64 alpha amd64 arm i386 mips64 mips64el powerpc > sparc64 > BROKEN-powerpc = atomics detection fails > > COMMENT =movie player based on MPlayer/mplayer2 This is probably better written as NOT_FOR_ARCHS = hppa landisk luna88k m88k (The current line is missing aarch64). > Index: x11/qt4/Makefile > === > RCS file: /cvs/ports/x11/qt4/Makefile,v > retrieving revision 1.150 > diff -u -p -r1.150 Makefile > --- x11/qt4/Makefile 4 Jan 2018 09:34:24 - 1.150 > +++ x11/qt4/Makefile 20 Jan 2018 00:56:07 - > @@ -150,12 +150,6 @@ CONFIGURE_ARGS +=-release > > .include > > -MODULES =gcc4 > - > -# for __sync_add_and_fetch_4, __sync_sub_and_fetch_4 > -MODGCC4_ARCHS = arm > -MODGCC4_LANGS = c++ > - > LIB_DEPENDS = > WANTLIB = > RUN_DEPENDS = I wondered about the ".include " here. Turns out it's to support "no_examples" builds which were removed with Makefile r1.122 so that could be removed as well, but that's unrelated to the MODULES=gcc4 things. > Other BROKEN markers are suspect as well > > devel/codeblocks/Makefile:BROKEN-arm= wxwidgets va_list c++ mangling requires > gcc < 4.4 > devel/arm-none-eabi/gcc-linaro/Makefile:BROKEN-armv7= error during libgcc > autoconf "checking for suffix of object files", probably similar to i386 > devel/reposurgeon/Makefile:BROKEN-arm=out of memory compiling > cyreposurgeon.c > games/crimson/Makefile:BROKEN-arm=mktileset buggy, loops at high CPU use > games/stone-soup/Makefile:BROKEN-arm= tilegen.elf loops burning cpu > games/fifengine/Makefile:BROKEN-arm = out of memory when compiling > fifePYTHON_wrap.cxx > lang/seed7/Makefile:BROKEN-arm = gmake: *** [makefile:279: ../bin/make7] > Bus error (core dumped) > security/john-jumbo/Makefile:BROKEN-arm = uaf_encode_plug.c:61: error: > stray '$' in program Unless phessler objects I think it would probably make sense to try removing these as well.
Re: adjustments for arm clang switch
On 2018 Jan 20 (Sat) at 09:05:28 + (+), Stuart Henderson wrote: :On 2018/01/20 16:28, Jonathan Gray wrote: :> Index: multimedia/mpv/Makefile :> === :> RCS file: /cvs/ports/multimedia/mpv/Makefile,v :> retrieving revision 1.38 :> diff -u -p -r1.38 Makefile :> --- multimedia/mpv/Makefile 23 Oct 2017 17:10:52 - 1.38 :> +++ multimedia/mpv/Makefile 20 Jan 2018 00:42:26 - :> @@ -1,7 +1,7 @@ :> # $OpenBSD: Makefile,v 1.38 2017/10/23 17:10:52 sthen Exp $ :> :> # archs with atomic ops :> -ONLY_FOR_ARCHS =aarch64 alpha amd64 i386 mips64 mips64el powerpc sparc64 :> +ONLY_FOR_ARCHS =aarch64 alpha amd64 arm i386 mips64 mips64el powerpc sparc64 :> BROKEN-powerpc =atomics detection fails :> :> COMMENT = movie player based on MPlayer/mplayer2 : :This is probably better written as : :NOT_FOR_ARCHS =hppa landisk luna88k m88k : :(The current line is missing aarch64). : I'm happy with changing it to NOT_FOR_ARCHS, but aarch64 is the first entry :). :> Other BROKEN markers are suspect as well :> :> devel/codeblocks/Makefile:BROKEN-arm=wxwidgets va_list c++ mangling requires gcc < 4.4 :> devel/arm-none-eabi/gcc-linaro/Makefile:BROKEN-armv7=error during libgcc autoconf "checking for suffix of object files", probably similar to i386 :> devel/reposurgeon/Makefile:BROKEN-arm= out of memory compiling cyreposurgeon.c :> games/crimson/Makefile:BROKEN-arm= mktileset buggy, loops at high CPU use :> games/stone-soup/Makefile:BROKEN-arm=tilegen.elf loops burning cpu :> games/fifengine/Makefile:BROKEN-arm =out of memory when compiling fifePYTHON_wrap.cxx :> lang/seed7/Makefile:BROKEN-arm = gmake: *** [makefile:279: ../bin/make7] Bus error (core dumped) :> security/john-jumbo/Makefile:BROKEN-arm =uaf_encode_plug.c:61: error: stray '$' in program : :Unless phessler objects I think it would probably make sense to try :removing these as well. Yes, please remove those BROKEN-arm markers. We can add them back if necessary. -- Concept, n.: Any "idea" for which an outside consultant billed you more than $25,000.
Re: adjustments for arm clang switch
On Sat, Jan 20, 2018 at 09:05:28AM +, Stuart Henderson wrote: > On 2018/01/20 16:28, Jonathan Gray wrote: > > With armv7 switching to clang as the base compiler atomic builtins and > > -mfpu=neon are now available on arm. > > Comments on a couple below, others are OK with me: > > > Index: lang/racket-minimal/Makefile > > === > > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > > retrieving revision 1.43 > > diff -u -p -r1.43 Makefile > > --- lang/racket-minimal/Makefile2 Dec 2017 21:39:49 - 1.43 > > +++ lang/racket-minimal/Makefile20 Jan 2018 00:52:42 - > > @@ -38,7 +38,6 @@ EXTRACT_SUFX =.tgz > > # "places" and "futures" require TLS. > > COMPILER = base-clang ports-gcc > > COMPILER_LANGS = c > > -MODGCC4_ARCHS =arm > > > > LIB_DEPENDS = converters/libiconv \ > > databases/sqlite3 \ > > Here ports-gcc is only used for arm (restricting from the defaults). > By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, > so the effect you are looking for would come from removing the > COMPILER* lines as well. > > This doesn't really square up with the above comment about TLS though > because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know > what's going on here? I remember vaguely someone changing a bunch of ports to lang/gcc because the base gcc didn't have support for something on arm. Sorry, I don't remember the details. I will update the makefile later today. -- Juan Francisco Cantero Hurtado http://juanfra.info
Re: adjustments for arm clang switch
On 2018/01/20 12:53, Juan Francisco Cantero Hurtado wrote: > On Sat, Jan 20, 2018 at 09:05:28AM +, Stuart Henderson wrote: > > On 2018/01/20 16:28, Jonathan Gray wrote: > > > With armv7 switching to clang as the base compiler atomic builtins and > > > -mfpu=neon are now available on arm. > > > > Comments on a couple below, others are OK with me: > > > > > Index: lang/racket-minimal/Makefile > > > === > > > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > > > retrieving revision 1.43 > > > diff -u -p -r1.43 Makefile > > > --- lang/racket-minimal/Makefile 2 Dec 2017 21:39:49 - 1.43 > > > +++ lang/racket-minimal/Makefile 20 Jan 2018 00:52:42 - > > > @@ -38,7 +38,6 @@ EXTRACT_SUFX = .tgz > > > # "places" and "futures" require TLS. > > > COMPILER = base-clang ports-gcc > > > COMPILER_LANGS = c > > > -MODGCC4_ARCHS = arm > > > > > > LIB_DEPENDS =converters/libiconv \ > > > databases/sqlite3 \ > > > > Here ports-gcc is only used for arm (restricting from the defaults). > > By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, > > so the effect you are looking for would come from removing the > > COMPILER* lines as well. > > > > This doesn't really square up with the above comment about TLS though > > because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know > > what's going on here? > > I remember vaguely someone changing a bunch of ports to lang/gcc because > the base gcc didn't have support for something on arm. Sorry, I don't > remember the details. The comment talks about TLS, but base gcc didn't have that anyway. But also it talks about needing TLS for "places" and "futures" but those are disabled with CONFIGURE_ARGS on all !x86 anyway. Bit confusing..
Re: adjustments for arm clang switch
With the move to clang, arm has a more modern assembler, so it probably makes sense to try places+futures there. And the comment about TLS doesn't make much sense because it will only be tried on arch that have some kind of TLS support anyway. On 20 January 2018 23:58:08 Juan Francisco Cantero Hurtado wrote: On Sat, Jan 20, 2018 at 11:07:46PM +, Stuart Henderson wrote: On 2018/01/20 12:53, Juan Francisco Cantero Hurtado wrote: > On Sat, Jan 20, 2018 at 09:05:28AM +, Stuart Henderson wrote: > > On 2018/01/20 16:28, Jonathan Gray wrote: > > > With armv7 switching to clang as the base compiler atomic builtins and > > > -mfpu=neon are now available on arm. > > > > Comments on a couple below, others are OK with me: > > > > > Index: lang/racket-minimal/Makefile > > > === > > > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > > > retrieving revision 1.43 > > > diff -u -p -r1.43 Makefile > > > --- lang/racket-minimal/Makefile 2 Dec 2017 21:39:49 - 1.43 > > > +++ lang/racket-minimal/Makefile 20 Jan 2018 00:52:42 - > > > @@ -38,7 +38,6 @@ EXTRACT_SUFX = .tgz > > > # "places" and "futures" require TLS. > > > COMPILER = base-clang ports-gcc > > > COMPILER_LANGS =c > > > -MODGCC4_ARCHS = arm > > > > > > LIB_DEPENDS = converters/libiconv \ > > > databases/sqlite3 \ > > > > Here ports-gcc is only used for arm (restricting from the defaults). > > By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, > > so the effect you are looking for would come from removing the > > COMPILER* lines as well. > > > > This doesn't really square up with the above comment about TLS though > > because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know > > what's going on here? > > I remember vaguely someone changing a bunch of ports to lang/gcc because > the base gcc didn't have support for something on arm. Sorry, I don't > remember the details. The comment talks about TLS, but base gcc didn't have that anyway. But also it talks about needing TLS for "places" and "futures" but those are disabled with CONFIGURE_ARGS on all !x86 anyway. Bit confusing.. In fact, it's quite simple :) Racket has a JIT and a C interpreter. The JIT is only available on amd64, i386, arm and powerpc. powerpc has an old version and doesn't support places and futures. The assembly is broken on arm when places and futures are enabled. The C interpreter doesn't support places and futures. places and futures requires TLS. So, you have amd64/i386 with JIT+places+futures. arm and powerpc with JIT-places+futures. Everything else has only the C interpreter. Upstream is working on a new different interpreter which probably will provide a better support for less popular platforms. -- Juan Francisco Cantero Hurtado http://juanfra.info
Re: adjustments for arm clang switch
On Sun, Jan 21, 2018 at 12:13:57AM +, Stuart Henderson wrote: > With the move to clang, arm has a more modern assembler, so it probably > makes sense to try places+futures there. And the comment about TLS doesn't > make much sense because it will only be tried on arch that have some kind of > TLS support anyway. It's not that kind of problem. Racket doesn't build with JIT+places on arm. The JIT doesn't have the assembly code to support places there. I tested the build this afternoon also with places and futures enabled (just in case). My comments here are mostly small notes to avoid fuck up the package. If something is enabled in the makefile, I tested it on that platform. In the past, the configure magic built an apparently good interpreter which failed with some tests. The makefile will be more clean when upstream releases the new interpreter. > > > > On 20 January 2018 23:58:08 Juan Francisco Cantero Hurtado > wrote: > > > On Sat, Jan 20, 2018 at 11:07:46PM +, Stuart Henderson wrote: > > > On 2018/01/20 12:53, Juan Francisco Cantero Hurtado wrote: > > > > On Sat, Jan 20, 2018 at 09:05:28AM +, Stuart Henderson wrote: > > > > > On 2018/01/20 16:28, Jonathan Gray wrote: > > > > > > With armv7 switching to clang as the base compiler atomic builtins > > > > > > and > > > > > > -mfpu=neon are now available on arm. > > > > > > > > > > Comments on a couple below, others are OK with me: > > > > > > > > > > > Index: lang/racket-minimal/Makefile > > > > > > === > > > > > > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > > > > > > retrieving revision 1.43 > > > > > > diff -u -p -r1.43 Makefile > > > > > > --- lang/racket-minimal/Makefile2 Dec 2017 21:39:49 - > > > > > > 1.43 > > > > > > +++ lang/racket-minimal/Makefile20 Jan 2018 00:52:42 - > > > > > > @@ -38,7 +38,6 @@ EXTRACT_SUFX =.tgz > > > > > > # "places" and "futures" require TLS. > > > > > > COMPILER = base-clang ports-gcc > > > > > > COMPILER_LANGS = c > > > > > > -MODGCC4_ARCHS =arm > > > > > > > > > > > > LIB_DEPENDS = converters/libiconv \ > > > > > > databases/sqlite3 \ > > > > > > > > > > Here ports-gcc is only used for arm (restricting from the defaults). > > > > > By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, > > > > > so the effect you are looking for would come from removing the > > > > > COMPILER* lines as well. > > > > > > > > > > This doesn't really square up with the above comment about TLS though > > > > > because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know > > > > > what's going on here? > > > > > > > > I remember vaguely someone changing a bunch of ports to lang/gcc because > > > > the base gcc didn't have support for something on arm. Sorry, I don't > > > > remember the details. > > > > > > The comment talks about TLS, but base gcc didn't have that anyway. > > > But also it talks about needing TLS for "places" and "futures" but > > > those are disabled with CONFIGURE_ARGS on all !x86 anyway. > > > > > > Bit confusing.. > > > > In fact, it's quite simple :) > > > > Racket has a JIT and a C interpreter. The JIT is only available on > > amd64, i386, arm and powerpc. powerpc has an old version and doesn't > > support places and futures. The assembly is broken on arm when places > > and futures are enabled. The C interpreter doesn't support places and > > futures. places and futures requires TLS. > > > > So, you have amd64/i386 with JIT+places+futures. arm and powerpc with > > JIT-places+futures. Everything else has only the C interpreter. > > > > Upstream is working on a new different interpreter which probably will > > provide a better support for less popular platforms. > > > > > > -- > > Juan Francisco Cantero Hurtado http://juanfra.info > > -- Juan Francisco Cantero Hurtado http://juanfra.info
Re: adjustments for arm clang switch
On Sat, Jan 20, 2018 at 11:07:46PM +, Stuart Henderson wrote: > On 2018/01/20 12:53, Juan Francisco Cantero Hurtado wrote: > > On Sat, Jan 20, 2018 at 09:05:28AM +, Stuart Henderson wrote: > > > On 2018/01/20 16:28, Jonathan Gray wrote: > > > > With armv7 switching to clang as the base compiler atomic builtins and > > > > -mfpu=neon are now available on arm. > > > > > > Comments on a couple below, others are OK with me: > > > > > > > Index: lang/racket-minimal/Makefile > > > > === > > > > RCS file: /cvs/ports/lang/racket-minimal/Makefile,v > > > > retrieving revision 1.43 > > > > diff -u -p -r1.43 Makefile > > > > --- lang/racket-minimal/Makefile2 Dec 2017 21:39:49 - > > > > 1.43 > > > > +++ lang/racket-minimal/Makefile20 Jan 2018 00:52:42 - > > > > @@ -38,7 +38,6 @@ EXTRACT_SUFX =.tgz > > > > # "places" and "futures" require TLS. > > > > COMPILER = base-clang ports-gcc > > > > COMPILER_LANGS = c > > > > -MODGCC4_ARCHS =arm > > > > > > > > LIB_DEPENDS = converters/libiconv \ > > > > databases/sqlite3 \ > > > > > > Here ports-gcc is only used for arm (restricting from the defaults). > > > By removing MODGCC4_ARCHS all !base-clang arches switch to ports-gcc, > > > so the effect you are looking for would come from removing the > > > COMPILER* lines as well. > > > > > > This doesn't really square up with the above comment about TLS though > > > because ONLY_FOR_ARCHS lists !base-clang arches. juanfra, do you know > > > what's going on here? > > > > I remember vaguely someone changing a bunch of ports to lang/gcc because > > the base gcc didn't have support for something on arm. Sorry, I don't > > remember the details. > > The comment talks about TLS, but base gcc didn't have that anyway. > But also it talks about needing TLS for "places" and "futures" but > those are disabled with CONFIGURE_ARGS on all !x86 anyway. > > Bit confusing.. In fact, it's quite simple :) Racket has a JIT and a C interpreter. The JIT is only available on amd64, i386, arm and powerpc. powerpc has an old version and doesn't support places and futures. The assembly is broken on arm when places and futures are enabled. The C interpreter doesn't support places and futures. places and futures requires TLS. So, you have amd64/i386 with JIT+places+futures. arm and powerpc with JIT-places+futures. Everything else has only the C interpreter. Upstream is working on a new different interpreter which probably will provide a better support for less popular platforms. -- Juan Francisco Cantero Hurtado http://juanfra.info