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

Reply via email to