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

Reply via email to