[M3devel] building CM3 on a Raspberry Pi?
Jay K
jay.krell at cornell.edu
Mon Oct 14 19:26:59 CEST 2013
Target.i3/m3 look up to date.
Is your host toolset very old?
https://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3middle/src/Target.i3
Revision 1.59: download - view: text, markup, annotated - select for diffs
Sat Jun 19 06:56:32 2010 (3 years, 3 months ago) by jkrell
Branches: MAIN
Diff to: previous 1.58: preferred, unified
Changes since revision 1.58: +2 -0 lines
add ARMEL_LINUX with correct jmbuf size/align
guessing about alignment
"ARM" is an older ABI
"ARME" is the usual modern ABI
L for little endian
scripts/update.py ?
- Jay
From: jay.krell at cornell.edu
To: mika at async.caltech.edu
Date: Mon, 14 Oct 2013 17:08:22 +0000
CC: m3devel at elegosoft.com
Subject: Re: [M3devel] building CM3 on a Raspberry Pi?
> Fatal Error: unrecognized target machine: TARGET = ARMEL_LINUX
Darn. That suggests I didn't get as far as..
update m3-sys/m3middle/src/Target.i3 and Target.m3.
The three facts needed are:
endian -- it is somewhat automatic, e.g. I386_anything is little endian
word size -- will default to 32 unless "64" is in the name
jmpbuf size -- an overestimate is ok, or use https://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/scripts/config/jmpbuf.c
This is particularly high on the list of things to fix/remove.
You might get a few similar errors around the tree.
Historically there were target lists in a few places,
but I have reduced them significantly, i.e. switching on kernel
and processor instead of kernel/processor cross product.
The main other piece of code that changes for almost every
target is getting the instruction counter out of a context_t
for faults (except NetBSD which abstracts it).
See https://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-libs/m3core/src/runtime/POSIX/RTSignalC.c
But it looks like I already handled Linux/arm.
- Jay
From: jay.krell at cornell.edu
To: mika at async.caltech.edu
CC: m3devel at elegosoft.com
Subject: RE: [M3devel] building CM3 on a Raspberry Pi?
Date: Mon, 14 Oct 2013 16:59:21 +0000
> Fatal Error: unrecognized backend mode: C
Make sure you ./update.py your main toolset first.
Also, while the C backend was working a year ago, for quite
a while I did not change the builder to know about it directly.
I was going via m3cgcat.
So you need to be fairly current, or else modify the
config files a different way, and have it be slower.
- Jay
> To: jay.krell at cornell.edu
> CC: m3devel at elegosoft.com
> Subject: Re: [M3devel] building CM3 on a Raspberry Pi?
> Date: Mon, 14 Oct 2013 09:40:08 -0700
> From: mika at async.caltech.edu
>
> Jay writes:
> >./../gcc-4.7/libiberty/stack-limit.c:52: error: `u_quad_t' undeclared (first=
> > use in this function)if [ x"" !=3D x ]; then \
> >
> >
> >Maybe I removed too much. I.e. libquadmath. That should be easy to fix and/o=
> >r switch to C backend.
> >
> >
> >I forgot: besides switching the config file: add the parameter "c" to boot1.=
> >py.
> >
> >
>
> If I put in config-no-install/ARMEL_LINUX
>
> M3_BACKEND_MODE="C"
>
> and run
>
> ./boot1.py c ARMEL_LINUX
>
> the following happens:
>
> ...
> rm -f /nfs/site/home/mnystroe/work/cm3/bin/cm3.cfg
> rm -f /nfs/site/home/mnystroe/work/cm3/bin/cm3cfg.common
> rm -f /nfs/site/home/mnystroe/work/cm3/bin/gnuld.common
> cp -Pv /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-sys/cminstall/src/config-no-install/cm3.cfg /nfs/site/home/mnystroe/work/cm3/bin/cm3.cfg
> == package /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-win/import-libs ==
>
> +++ /nfs/site/home/mnystroe/work/cm3/bin/cm3 -build -override -DROOT=/nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3 -boot -keep -DM3CC_TARGET=ARMEL_LINUX +++
> --- building in ARMEL_LINUX ---
>
> ==> /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-win/import-libs done
>
> == package /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-libs/m3core ==
>
> +++ /nfs/site/home/mnystroe/work/cm3/bin/cm3 -build -override -DROOT=/nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3 -boot -keep -DM3CC_TARGET=ARMEL_LINUX +++
> --- building in ARMEL_LINUX ---
>
>
> Fatal Error: unrecognized backend mode: C
>
> *** execution of [<function _BuildLocalFunction at 0x2aaaab5728c0>] failed ***
>
>
> But if I remove M3_BACKEND_MODE from ARMEL_LINUX and run the same command, the following:
>
> ...
> rm -f /nfs/site/home/mnystroe/work/cm3/bin/cm3cfg.common
> rm -f /nfs/site/home/mnystroe/work/cm3/bin/gnuld.common
> cp -Pv /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-sys/cminstall/src/config-no-install/cm3.cfg /nfs/site/home/mnystroe/work/cm3/bin/cm3.cfg
> == package /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-win/import-libs ==
>
> +++ /nfs/site/home/mnystroe/work/cm3/bin/cm3 -build -override -DROOT=/nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3 -boot -keep -DM3CC_TARGET=ARMEL_LINUX +++
> --- building in ARMEL_LINUX ---
>
> ==> /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-win/import-libs done
>
> == package /nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3/m3-libs/m3core ==
>
> +++ /nfs/site/home/mnystroe/work/cm3/bin/cm3 -build -override -DROOT=/nfs/site/disks/wdisk.133/mnystroe/cm3-anon-cvs/cm3 -boot -keep -DM3CC_TARGET=ARMEL_LINUX +++
> --- building in ARMEL_LINUX ---
>
>
> Fatal Error: unrecognized target machine: TARGET = ARMEL_LINUX
>
> *** execution of [<function _BuildLocalFunction at 0x2aaaab5728c0>] failed ***
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20131014/cdaf8d6c/attachment-0002.html>
More information about the M3devel
mailing list