That's good to know, if there was an aarch64 binary that's what I would be using right now on my laptop.
As a stopgap, it is possible to run the unmodified j80x_raspi binary on aarch64, at least on Ubuntu: sudo dpkg --add-architecture armhf sudo apt-get update sudo apt-get install libedit-dev:armhf That last step might be unnecessary. On Wed, Aug 2, 2017 at 11:14 PM, bill lam <bbill....@gmail.com> wrote: > J805 provides no optimization for armv64. If you build from > J806 and define C_CRC32C=1 then it will make similar improvement > with that of avx. see Android.mk. > > Ср, 02 авг 2017, Edward Clinton Harold Deveaux написал(а): > > The pinebook is a $100.00 laptop from China, 2GB Ram and a quad core > Arm64 > > cortex-a53 processor. > > > > I upgraded my pinebook with a 64GB eMMC chip, $31, to make room for > software > > development files. > > > > The environment is Ubuntu Mate 16.04 Linux, running in ArmV8-a, aarch64. > > > > See: http:www.pine64.org/pinebook/ for more about this laptop. > > > > 1. Downloaded, jsource-j805-release-final from the gpl repositories. > > > > 2. Compiled 47k lines of code on the pinebook in 6 minutes. > > > > 3. Ran all the jconsole engine test scripts successfully. > > > > 4. Successfully ran my own j programs from my x86-64, iMac and Linux > > machines. > > > > 5. To update run, install all in jconsole, then copy jconsole, libj.so > and > > libtsdll.so to bin. > > > > 6. Also copy jqtide binary files. > > > > NB. install 'all' downloads x86-64 binaries. > > > > NB. -j5 added to make options. > > > > NB. -march=armv8-a+crc -mtune=cortex-a53 and -DC_NA=1 added to COMPILE > > > > A patch for the j805-source-final is attached. > > > > > > Note: Information on porting the jqtide appears in another e-mail. > > > > Ed Deveaux > > > > e...@rawbw.com > > > > 470-330-0655 > > > > > diff -crBN jsource-j805-release-final/jsrc/jversion.h > jsource-j805-release-finalPinebook/jsrc/jversion.h > > *** jsource-j805-release-final/jsrc/jversion.h 1969-12-31 > 19:00:00.000000000 -0500 > > --- jsource-j805-release-finalPinebook/jsrc/jversion.h > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 0 **** > > --- 1,5 ---- > > + #define jversion "805" > > + #define jplatform "linuxA64" // AArch64-Arm64 windows/linux/darwin/ > raspberry/android/... > > + #define jtype "release-final" // release,beta,... may > include bug level such as beta-3 > > + #define jlicense "GPL3" > > + #define jbuilder "e...@rawbw.com" // website or email > > diff -crBN jsource-j805-release-final/make/build_all.sh > jsource-j805-release-finalPinebook/make/build_all.sh > > *** jsource-j805-release-final/make/build_all.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/build_all.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 1,13 **** > > #!/bin/bash > > ! # build all binaries > > cd ~ > > ! . jvars.sh > > > > $jmake/install.sh > > > > ! $jmake/build_jconsole.sh j32 > > ! $jmake/build_libj.sh j32 > > ! $jmake/build_tsdll.sh j32 > > > > if [ $jplatform = "raspberry" ]; then > > exit 0 > > --- 1,13 ---- > > #!/bin/bash > > ! # build all binaries bypass j32 binaries > > cd ~ > > ! . ./jvars.sh > > > > $jmake/install.sh > > > > ! #$jmake/build_jconsole.sh j32 > > ! #$jmake/build_libj.sh j32 > > ! #$jmake/build_tsdll.sh j32 > > > > if [ $jplatform = "raspberry" ]; then > > exit 0 > > diff -crBN jsource-j805-release-final/make/build_jconsole.sh > jsource-j805-release-finalPinebook/make/build_jconsole.sh > > *** jsource-j805-release-final/make/build_jconsole.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/build_jconsole.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 1,12 **** > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . jvars.sh > > > > common=" -fPIC -O1 -Wextra " > > > > case $jplatform\_$1 in > > > > linux_j32) > > COMPILE="$common -m32 -DREADLINE" > > LINK=" $jgit/unix/libedit.a -m32 -ldl -l:libncursesw.so.5.9 > -l:libtinfo.so.5.9 -o jconsole " > > --- 1,17 ---- > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . ./jvars.sh > > > > common=" -fPIC -O1 -Wextra " > > > > case $jplatform\_$1 in > > > > + linuxA64_j64) > > + COMPILE="-fpic -march=armv8-a+crc -mtune=cortex-a53 -O2 -pipe > -DC_NA=1 -DREADLINE" > > + LINK=" -ledit -ldl -lncursesw -o jconsole " > > + ;; > > + > > linux_j32) > > COMPILE="$common -m32 -DREADLINE" > > LINK=" $jgit/unix/libedit.a -m32 -ldl -l:libncursesw.so.5.9 > -l:libtinfo.so.5.9 -o jconsole " > > diff -crBN jsource-j805-release-final/make/build_libj.sh > jsource-j805-release-finalPinebook/make/build_libj.sh > > *** jsource-j805-release-final/make/build_libj.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/build_libj.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 1,7 **** > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . jvars.sh > > > > # gcc 5 vs 4 - killing off linux asm routines (overflow detection) > > # new fast code uses builtins not available in gcc 4 > > --- 1,7 ---- > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . ./jvars.sh > > > > # gcc 5 vs 4 - killing off linux asm routines (overflow detection) > > # new fast code uses builtins not available in gcc 4 > > *************** > > *** 18,23 **** > > --- 18,28 ---- > > > > case $jplatform\_$1 in > > > > + linuxA64_j64) # linux Arm64 aarch64 Little Endian > > + TARGET=libj.so > > + COMPILE="-fpic -march=armv8-a+crc -mtune=cortex-a53 -O2 -pipe > -DC_NA=1 -DREADLINE" > > + LINK=" -shared -Wl,-soname,libj.so -lm -ldl -o libj.so " > > + ;; > > > > linux_j32) # linux x86 > > TARGET=libj.so > > diff -crBN jsource-j805-release-final/make/build_tsdll.sh > jsource-j805-release-finalPinebook/make/build_tsdll.sh > > *** jsource-j805-release-final/make/build_tsdll.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/build_tsdll.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 1,12 **** > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . jvars.sh > > > > common=" -fPIC -O1 -Werror -Wextra -Wno-unused-parameter" > > > > case $jplatform\_$1 in > > > > linux_j32) > > TARGET=libtsdll.so > > COMPILE="$common -m32 " > > --- 1,18 ---- > > #!/bin/bash > > # $1 is j32 or j64 > > cd ~ > > ! . ./jvars.sh > > > > common=" -fPIC -O1 -Werror -Wextra -Wno-unused-parameter" > > > > case $jplatform\_$1 in > > > > + linuxA64_j64) > > + TARGET=libtsdll.so > > + COMPILE="-fpic -march=armv8-a+crc -mtune=cortex-a53 -O2 -pipe > -DC_NA=1" > > + LINK=" -shared -Wl,-soname,libtsdll.so -o libtsdll.so " > > + ;; > > + > > linux_j32) > > TARGET=libtsdll.so > > COMPILE="$common -m32 " > > diff -crBN jsource-j805-release-final/make/domake.sh > jsource-j805-release-finalPinebook/make/domake.sh > > *** jsource-j805-release-final/make/domake.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/domake.sh 2017-08-02 > 19:17:34.000000000 -0400 > > *************** > > *** 4,10 **** > > # $1 is j32 or j64 > > > > cd ~ > > ! . jvars.sh > > > > echo $TARGET > > echo $COMPILE > > --- 4,10 ---- > > # $1 is j32 or j64 > > > > cd ~ > > ! . ./jvars.sh > > > > echo $TARGET > > echo $COMPILE > > *************** > > *** 12,16 **** > > mkdir -p $jbld/jout/$TARGET/$1 > > cd $jbld/jout/$TARGET/$1 > > > > ! make -f $jmake/makefile > > cp $TARGET $jbld/$1/bin > > --- 12,16 ---- > > mkdir -p $jbld/jout/$TARGET/$1 > > cd $jbld/jout/$TARGET/$1 > > > > ! make -j5 -f $jmake/makefile > > cp $TARGET $jbld/$1/bin > > diff -crBN jsource-j805-release-final/make/install.sh > jsource-j805-release-finalPinebook/make/install.sh > > *** jsource-j805-release-final/make/install.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/install.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 8,21 **** > > fi > > > > cd ~ > > ! . jvars.sh > > > > rm -f -r $jbld > > mkdir $jbld > > ! mkdir $jbld/j32 > > mkdir $jbld/j64 > > mkdir $jbld/jout > > ! cp -r $jgit/jlibrary/* $jbld/j32 > > cp -r $jgit/jlibrary/* $jbld/j64 > > > > echo "install complete" > > --- 8,21 ---- > > fi > > > > cd ~ > > ! . ./jvars.sh > > > > rm -f -r $jbld > > mkdir $jbld > > ! #mkdir $jbld/j32 > > mkdir $jbld/j64 > > mkdir $jbld/jout > > ! #cp -r $jgit/jlibrary/* $jbld/j32 > > cp -r $jgit/jlibrary/* $jbld/j64 > > > > echo "install complete" > > diff -crBN jsource-j805-release-final/make/jvars.sh > jsource-j805-release-finalPinebook/make/jvars.sh > > *** jsource-j805-release-final/make/jvars.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/jvars.sh 2017-08-02 > 19:17:34.000000000 -0400 > > *************** > > *** 1,16 **** > > ! # source shell script (read with . jvars.sh) so stuff is easy to find > > > > # edit following if your install is not standard > > jgit=~/gitdev/jsource # git jsource folder > > jbld=~/jbld # test libraries and binaries will be put here > > > > # edit platform to build - linux darwin raspberry > > ! jplatform=linux > > > > # should not be necessary to edit after here > > ! j32=$jbld/j32/bin/jconsole > > j64=$jbld/j64/bin/jconsole > > jmake=$jgit/make > > > > ! export jgit jbld j32 j64 jmake > > > > --- 1,19 ---- > > ! # source shell script (read with . ./jvars.sh) so stuff is easy to find > > > > # edit following if your install is not standard > > jgit=~/gitdev/jsource # git jsource folder > > jbld=~/jbld # test libraries and binaries will be put here > > > > # edit platform to build - linux darwin raspberry > > ! #jplatform=linux > > ! # aarch64 Arm V8 a 64 bit > > ! jplatform=linuxA64 > > > > # should not be necessary to edit after here > > ! #j32=$jbld/j32/bin/jconsole > > j64=$jbld/j64/bin/jconsole > > jmake=$jgit/make > > > > ! export jgit jbld j64 jmake > > ! #export jgit jbld j32 j64 jmake > > > > diff -crBN jsource-j805-release-final/make/jversion.h > jsource-j805-release-finalPinebook/make/jversion.h > > *** jsource-j805-release-final/make/jversion.h 1969-12-31 > 19:00:00.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/jversion.h > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 0 **** > > --- 1,5 ---- > > + #define jversion "805" > > + #define jplatform "linuxA64" // AArch64-Arm64 windows/linux/darwin/ > raspberry/android/... > > + #define jtype "release-final" // release,beta,... may > include bug level such as beta-3 > > + #define jlicense "GPL3" > > + #define jbuilder "e...@rawbw.com" // website or email > > diff -crBN jsource-j805-release-final/make/make.txt > jsource-j805-release-finalPinebook/make/make.txt > > *** jsource-j805-release-final/make/make.txt 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/make.txt 2017-08-02 > 19:17:34.000000000 -0400 > > *************** > > *** 4,9 **** > > --- 4,11 ---- > > > > $jplatform is a simple name that implies OS and hardware > > > > + linuxA64 implies Arm64 aarch64 Cortex A53 little-endian > > + > > linux implies intel > > darwin implies intel > > raspberry implies linux/arm/little-endian > > *************** > > *** 26,32 **** > > # valid platforms are: linux darwin raspberry > > > > # create clean build folders > > ! . jvars.sh > > $jmake/install.sh > > > > # ensure proper jsrc/jversion.h (jversion-x.h template) > > --- 28,34 ---- > > # valid platforms are: linux darwin raspberry > > > > # create clean build folders > > ! . ./jvars.sh > > $jmake/install.sh > > > > # ensure proper jsrc/jversion.h (jversion-x.h template) > > *************** > > *** 52,57 **** > > $jmake/build_all.sh > > > > # release clean builds to the repo release folder > > ! . jvars.sh > > $jmake/release.sh > > > > --- 54,59 ---- > > $jmake/build_all.sh > > > > # release clean builds to the repo release folder > > ! . ./jvars.sh > > $jmake/release.sh > > > > diff -crBN jsource-j805-release-final/make/release.sh > jsource-j805-release-finalPinebook/make/release.sh > > *** jsource-j805-release-final/make/release.sh 2016-12-10 > 22:06:13.000000000 -0500 > > --- jsource-j805-release-finalPinebook/make/release.sh > 2017-08-02 19:17:34.000000000 -0400 > > *************** > > *** 1,15 **** > > #!/bin/bash > > # copy binaries to release folder > > cd ~ > > ! . jvars.sh > > > > ! mkdir -p $jgit/release/$jplatform/j32 > > ! rm -f $jgit/release/$jplatform/j32/* > > ! cp $jbld/j32/bin/jconsole $jgit/release/$jplatform/j32/jconsole > > ! cp $jbld/j32/bin/libj.so $jgit/release/$jplatform/j32/libj.so > > ! cp $jbld/j32/bin/libj.dylib $jgit/release/$jplatform/j32/ > libj.dylib > > ! cp $jbld/j32/bin/libtsdll.so $jgit/release/$jplatform/j32/ > libtsdll.so > > ! cp $jbld/j32/bin/libtsdll.dylib $jgit/release/$jplatform/j32/ > libtsdll.dylib > > > > > > if [ $jplatform = "raspberry" ]; then > > --- 1,15 ---- > > #!/bin/bash > > # copy binaries to release folder > > cd ~ > > ! . ./jvars.sh > > > > ! #mkdir -p $jgit/release/$jplatform/j32 > > ! #rm -f $jgit/release/$jplatform/j32/* > > ! #cp $jbld/j32/bin/jconsole $jgit/release/$jplatform/j32/jconsole > > ! #cp $jbld/j32/bin/libj.so $jgit/release/$jplatform/j32/libj.so > > ! #cp $jbld/j32/bin/libj.dylib $jgit/release/$jplatform/j32/ > libj.dylib > > ! #cp $jbld/j32/bin/libtsdll.so $jgit/release/$jplatform/j32/ > libtsdll.so > > ! #cp $jbld/j32/bin/libtsdll.dylib $jgit/release/$jplatform/j32/ > libtsdll.dylib > > > > > > if [ $jplatform = "raspberry" ]; then > > *************** > > *** 20,26 **** > > rm -f $jgit/release/$jplatform/j64/* > > cp $jbld/j64/bin/jconsole $jgit/release/$jplatform/j64/jconsole > > cp $jbld/j64/bin/libj.so $jgit/release/$jplatform/j64/libj.so > > ! cp $jbld/j64/bin/libj.dylib $jgit/release/$jplatform/j64/ > libj.dylib > > cp $jbld/j64/bin/libtsdll.so $jgit/release/$jplatform/j64/ > libtsdll.so > > ! cp $jbld/j64/bin/libtsdll.dylib $jgit/release/$jplatform/j64/ > libtsdll.dylib > > > > --- 20,26 ---- > > rm -f $jgit/release/$jplatform/j64/* > > cp $jbld/j64/bin/jconsole $jgit/release/$jplatform/j64/jconsole > > cp $jbld/j64/bin/libj.so $jgit/release/$jplatform/j64/libj.so > > ! #cp $jbld/j64/bin/libj.dylib $jgit/release/$jplatform/j64/ > libj.dylib > > cp $jbld/j64/bin/libtsdll.so $jgit/release/$jplatform/j64/ > libtsdll.so > > ! #cp $jbld/j64/bin/libtsdll.dylib $jgit/release/$jplatform/j64/ > libtsdll.dylib > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm