aarch64 squeak-vm

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

aarch64 squeak-vm

KenDickey
Greetings,

I have not done much in C for a couple of decades, so those bits have evaporated, but am taking a shot at getting squeak-vm(s) up on aarch64/arm64 Linux.

The current Debian package runs in 64 bit mode on ARM and I have been able to build a working images from source on a Armbian/aarch64/Linux machine (LePotato/AML-S905X-CC).

  https://salsa.debian.org/pkg-sugar-team/squeak-vm
with patches:
  https://salsa.debian.org/pkg-sugar-team/squeak-vm/tree/master/debian/patches

This is a superannuated (2012?) squeak-vm-4.10.2.2614, but does run in 64 bit mode on ARM.  So I have a proof of concept.  Runs Cuis/Squeak fine (but slow).


I "git cloned" oscogvm and added case aarch64:Linux:*:* to
  oscogvm/platforms/unix/config/config.guess

But the C compiler (gcc) is getting confused by some x86 compile flags.

I am running oscogvm/build.linux64x64/squeak.stack.spur/build/mvm

[config.log attached].

The proximate cause is handing configure the flag "TARGET_ARCH=-m64", but it has been long enough that I have little idea where or how this script is processed.

Can some kind soul help me get a bit further here?

Thanks a bunch!

--
-KenD

_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners

aarch64.config.log (9K) Download Attachment
-KenD
Reply | Threaded
Open this post in threaded view
|

Re: aarch64 squeak-vm

David T. Lewis
Hi Ken,

Nice to see you popping back up on the lists :-)

I can't help much with this, but one note in line below.

On Mon, Dec 03, 2018 at 06:24:13PM +0000, Ken.Dickey wrote:

> Greetings,
>
> I have not done much in C for a couple of decades, so those bits have evaporated, but am taking a shot at getting squeak-vm(s) up on aarch64/arm64 Linux.
>
> The current Debian package runs in 64 bit mode on ARM and I have been able to build a working images from source on a Armbian/aarch64/Linux machine (LePotato/AML-S905X-CC).
>
>   https://salsa.debian.org/pkg-sugar-team/squeak-vm
> with patches:
>   https://salsa.debian.org/pkg-sugar-team/squeak-vm/tree/master/debian/patches
>
> This is a superannuated (2012?) squeak-vm-4.10.2.2614, but does run in 64 bit mode on ARM.  So I have a proof of concept.  Runs Cuis/Squeak fine (but slow).
>

Since you are able to compile this successfully, I would suggest one
additional step. The Debian squeaka-vm package got to a pretty bad
state (unfortunately), so you will have a much more up to date VM
if you compile from the real squeakvm.org sources. Follow instructions
at http://wiki.squeak.org/squeak/6354.

This will give you a good VM for use up through Squeak 4.6, at which
point the image format changes to Spur, and the oscog VMs are needed.

>
> I "git cloned" oscogvm and added case aarch64:Linux:*:* to
>   oscogvm/platforms/unix/config/config.guess
>
> But the C compiler (gcc) is getting confused by some x86 compile flags.
>
> I am running oscogvm/build.linux64x64/squeak.stack.spur/build/mvm
>
> [config.log attached].
>
> The proximate cause is handing configure the flag "TARGET_ARCH=-m64", but it has been long enough that I have little idea where or how this script is processed.
>
> Can some kind soul help me get a bit further here?


I don't know the answer to this, but hopefully someone else can offer
a pointer. If you don't get a response, please re-post your question
on the vm-dev list. This beginners list does not seem to be used
very much, and I fear your question is being overlooked.

Dave


>
> Thanks a bunch!
>
> --
> -KenD

> This file contains any messages produced by compilers while
> running configure, to aid debugging if configure makes a mistake.
>
> It was created by OpenSmalltalk VM configure devel, which was
> generated by GNU Autoconf 2.69.  Invocation command line was
>
>   $ ../../../platforms/unix/config/configure --with-vmversion=5.0 --with-src=spurstack64src --disable-cogit --without-vm-display-fbdev --without-npsqueak TARGET_ARCH=-m64 CFLAGS=-g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0 -msse2
>
> ## --------- ##
> ## Platform. ##
> ## --------- ##
>
> hostname = spud
> uname -m = aarch64
> uname -r = 4.14.70-meson64
> uname -s = Linux
> uname -v = #269 SMP PREEMPT Wed Sep 19 11:21:29 CEST 2018
>
> /usr/bin/uname -p = unknown
> /bin/uname -X     = unknown
>
> /bin/arch              = unknown
> /usr/bin/arch -k       = unknown
> /usr/convex/getsysinfo = unknown
> /usr/bin/hostinfo      = unknown
> /bin/machine           = unknown
> /usr/bin/oslevel       = unknown
> /bin/universe          = unknown
>
> PATH: /usr/local/bin
> PATH: /usr/bin
> PATH: /bin
> PATH: /usr/local/games
> PATH: /usr/games
>
>
> ## ----------- ##
> ## Core tests. ##
> ## ----------- ##
>
> configure:2735: result: /home/kend/OpenSmalltalk/oscogvm/spurstack64src
> configure:2737: result: /home/kend/OpenSmalltalk/oscogvm/src/plugins
> configure:2765: checking sanity of generated src directory
> configure:2794: result: okay
> configure:2874: checking build system type
> configure:2888: result: aarch64-unknown-linux-gnu
> configure:2908: checking host system type
> configure:2921: result: aarch64-unknown-linux-gnu
> configure:2971: checking target system type
> configure:2984: result: aarch64-unknown-linux-gnu
> configure:3077: checking whether make sets $(MAKE)
> configure:3099: result: yes
> configure:3156: checking for gcc
> configure:3172: found /usr/bin/gcc
> configure:3183: result: gcc
> configure:3412: checking for C compiler version
> configure:3421: gcc --version >&5
> gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
> Copyright (C) 2016 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> configure:3432: $? = 0
> configure:3421: gcc -v >&5
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/6/lto-wrapper
> Target: aarch64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18+deb9u1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-arm64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-arm64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-arm64 --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --en
>  able-fix-cortex-a53-843419 --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
> Thread model: posix
> gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
> configure:3432: $? = 0
> configure:3421: gcc -V >&5
> gcc: error: unrecognized command line option '-V'
> gcc: fatal error: no input files
> compilation terminated.
> configure:3432: $? = 1
> configure:3421: gcc -qversion >&5
> gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
> gcc: fatal error: no input files
> compilation terminated.
> configure:3432: $? = 1
> configure:3452: checking whether the C compiler works
> configure:3474: gcc  -g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0 -msse2  -m64 -m64  conftest.c  >&5
> gcc: error: unrecognized command line option '-msse2'
> gcc: error: unrecognized command line option '-m64'
> gcc: error: unrecognized command line option '-m64'
> configure:3478: $? = 1
> configure:3516: result: no
> configure: failed program was:
> | /* confdefs.h */
> | #define PACKAGE_NAME "OpenSmalltalk VM"
> | #define PACKAGE_TARNAME "opensmalltalk-vm"
> | #define PACKAGE_VERSION "devel"
> | #define PACKAGE_STRING "OpenSmalltalk VM devel"
> | #define PACKAGE_BUGREPORT "[hidden email]"
> | #define PACKAGE_URL "http://opensmalltalk.org/"
> | #define SQ_VERSION ".-"
> | #define OS_TYPE "unix"
> | #define VM_HOST "aarch64-linux-gnu"
> | #define VM_HOST_OS "linux-gnu"
> | #define VM_HOST_VERNDOR "unknown"
> | #define VM_HOST_CPU "aarch64"
> | #define VM_TARGET "aarch64-linux-gnu"
> | #define VM_TARGET_OS "linux-gnu"
> | #define VM_TARGET_VENDOR "target_vendor"
> | #define VM_TARGET_CPU "aarch64"
> | /* end confdefs.h.  */
> |
> | int
> | main ()
> | {
> |
> |   ;
> |   return 0;
> | }
> configure:3521: error: in `/home/kend/OpenSmalltalk/oscogvm/build.linux64x64/squeak.stack.spur/build':
> configure:3523: error: C compiler cannot create executables
> See `config.log' for more details
>
> ## ---------------- ##
> ## Cache variables. ##
> ## ---------------- ##
>
> ac_cv_build=aarch64-unknown-linux-gnu
> ac_cv_env_CC_set=
> ac_cv_env_CC_value=
> ac_cv_env_CFLAGS_set=set
> ac_cv_env_CFLAGS_value='-g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0 -msse2'
> ac_cv_env_CPPFLAGS_set=
> ac_cv_env_CPPFLAGS_value=
> ac_cv_env_CPP_set=
> ac_cv_env_CPP_value=
> ac_cv_env_LDFLAGS_set=
> ac_cv_env_LDFLAGS_value=
> ac_cv_env_LIBS_set=
> ac_cv_env_LIBS_value=
> ac_cv_env_LT_SYS_LIBRARY_PATH_set=
> ac_cv_env_LT_SYS_LIBRARY_PATH_value=
> ac_cv_env_XMKMF_set=
> ac_cv_env_XMKMF_value=
> ac_cv_env_build_alias_set=
> ac_cv_env_build_alias_value=
> ac_cv_env_host_alias_set=
> ac_cv_env_host_alias_value=
> ac_cv_env_target_alias_set=
> ac_cv_env_target_alias_value=
> ac_cv_host=aarch64-unknown-linux-gnu
> ac_cv_prog_ac_ct_CC=gcc
> ac_cv_prog_make_make_set=yes
> ac_cv_target=aarch64-unknown-linux-gnu
>
> ## ----------------- ##
> ## Output variables. ##
> ## ----------------- ##
>
> ALLOCA=''
> AR=''
> ARM_ARCH=''
> AS=''
> AWK=''
> BITBLT_FLAGS=''
> BITBLT_OBJS=''
> CC='gcc'
> CFLAGS=' -g -O1 -fwrapv -DNDEBUG -DDEBUGVM=0 -msse2'
> CPP=''
> CPPFLAGS=' -m64'
> DEFS=''
> DLLTOOL=''
> DSYMUTIL=''
> DUMPBIN=''
> ECHO_C=''
> ECHO_N='-n'
> ECHO_T=''
> EGREP=''
> EXEEXT=''
> FGREP=''
> GREP=''
> HAVE_INTERP_H=''
> HAVE_LANGINFO_CODESET=''
> IA32ABI_OBJS=''
> INCLUDES=''
> INSTALL_DATA=''
> INSTALL_PROGRAM=''
> INSTALL_SCRIPT=''
> INTERP=''
> LD=''
> LDFLAGS='-m64 '
> LIBM_CFLAGS=''
> LIBOBJS=''
> LIBS=''
> LIBTOOL=''
> LIPO=''
> LN=''
> LN_S=''
> LTLIBOBJS=''
> LT_SYS_LIBRARY_PATH=''
> MANIFEST_TOOL=''
> NM=''
> NMEDIT=''
> OBJDUMP=''
> OBJEXT=''
> OTOOL64=''
> OTOOL=''
> PACKAGE_BUGREPORT='[hidden email]'
> PACKAGE_NAME='OpenSmalltalk VM'
> PACKAGE_STRING='OpenSmalltalk VM devel'
> PACKAGE_TARNAME='opensmalltalk-vm'
> PACKAGE_URL='http://opensmalltalk.org/'
> PACKAGE_VERSION='devel'
> PATH_SEPARATOR=':'
> PTHREAD_CC=''
> PTHREAD_CFLAGS=''
> PTHREAD_LIBS=''
> RANLIB=''
> SED=''
> SET_MAKE=''
> SHELL='/bin/bash'
> SQ_LIBDIR=''
> SQ_MAJOR=''
> SQ_MINOR=''
> SQ_UPDATE=''
> SQ_VERSION='.-'
> STRIP=''
> VM_APP_ICONS=''
> VM_DISPX11_BITBLT_FLAGS=''
> VM_DISPX11_OBJS=''
> WFLAGS=''
> XMKMF=''
> X_CFLAGS=''
> X_CPPFLAGS=''
> X_EXTRA_LIBS=''
> X_INCLUDES=''
> X_LIBS=''
> X_PRE_LIBS=''
> ac_ct_AR=''
> ac_ct_CC='gcc'
> ac_ct_DUMPBIN=''
> ax_pthread_config=''
> bindir='${exec_prefix}/bin'
> blddir='/home/kend/OpenSmalltalk/oscogvm/build.linux64x64/squeak.stack.spur/build'
> build='aarch64-unknown-linux-gnu'
> build_alias=''
> build_cpu='aarch64'
> build_os='linux-gnu'
> build_vendor='unknown'
> cfgdir='/home/kend/OpenSmalltalk/oscogvm/platforms/unix/config'
> cogit='no'
> datadir='${datarootdir}'
> datarootdir='${prefix}/share'
> docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
> dvidir='${docdir}'
> exec_prefix='${prefix}'
> expanded_relative_imgdir='lib/squeak/'
> ext_modules=''
> ext_plugins=''
> host='aarch64-linux-gnu'
> host_alias=''
> host_cpu='aarch64'
> host_os='linux-gnu'
> host_vendor='unknown'
> htmldir='${docdir}'
> imgdir='${prefix}/lib/squeak'
> includedir='${prefix}/include'
> infodir='${datarootdir}/info'
> install_nps=''
> int_modules=''
> int_plugins=''
> libdir='${exec_prefix}/lib'
> libexecdir='${exec_prefix}/libexec'
> localedir='${datarootdir}/locale'
> localstatedir='${prefix}/var'
> mandir='${datarootdir}/man'
> npsqueak=''
> oldincludedir='/usr/include'
> pdfdir='${docdir}'
> plgdir='${imgdir}/`${blddir}/getversion VERSION_TAG`'
> prefix='/usr/local'
> program_transform_name='s,x,x,'
> psdir='${docdir}'
> runstatedir='${localstatedir}/run'
> sbindir='${exec_prefix}/sbin'
> sharedstatedir='${prefix}/com'
> sysconfdir='${prefix}/etc'
> target='aarch64-linux-gnu'
> target_alias=''
> target_cpu='aarch64'
> target_os='linux-gnu'
> target_vendor='unknown'
> topdir='/home/kend/OpenSmalltalk/oscogvm'
> uninstall_nps=''
> vmmcfg='/home/kend/OpenSmalltalk/oscogvm/build.linux64x64/squeak.stack.spur/build'
> vmmdir='/home/kend/OpenSmalltalk/oscogvm/spurstack64src'
> vmpdir='/home/kend/OpenSmalltalk/oscogvm/src/plugins'
>
> ## ------------------- ##
> ## File substitutions. ##
> ## ------------------- ##
>
> Makefile_deb=''
> Makefile_dist=''
> Makefile_install=''
> Makefile_rpm=''
> make_cfg=''
> make_ext=''
> make_int=''
> make_prg=''
>
> ## ----------- ##
> ## confdefs.h. ##
> ## ----------- ##
>
> /* confdefs.h */
> #define PACKAGE_NAME "OpenSmalltalk VM"
> #define PACKAGE_TARNAME "opensmalltalk-vm"
> #define PACKAGE_VERSION "devel"
> #define PACKAGE_STRING "OpenSmalltalk VM devel"
> #define PACKAGE_BUGREPORT "[hidden email]"
> #define PACKAGE_URL "http://opensmalltalk.org/"
> #define SQ_VERSION ".-"
> #define OS_TYPE "unix"
> #define VM_HOST "aarch64-linux-gnu"
> #define VM_HOST_OS "linux-gnu"
> #define VM_HOST_VERNDOR "unknown"
> #define VM_HOST_CPU "aarch64"
> #define VM_TARGET "aarch64-linux-gnu"
> #define VM_TARGET_OS "linux-gnu"
> #define VM_TARGET_VENDOR "target_vendor"
> #define VM_TARGET_CPU "aarch64"
>
> configure: exit 77

> _______________________________________________
> VM-beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners

_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners