[M3devel] more cm3cg on Raspberry Pi

Jay K jay.krell at cornell.edu
Sat Oct 19 22:14:18 CEST 2013


BUILD_DIR I think it is called. Profiling uses it, for example. Let's try that. Later.

> From: jay.krell at cornell.edu
> To: mika at async.caltech.edu
> Date: Sat, 19 Oct 2013 20:03:58 +0000
> CC: m3devel at elegosoft.com
> Subject: Re: [M3devel] more cm3cg on Raspberry Pi
> 
> Two separate CVS checkouts?
> Onerous.
> 
> 
> Put all the outputs outside the entire source tree?
> Yes, that is what I want.
> Where is the root of the source tree?
> i.e. if you are mixing CVS tree and other trees.
> 
> 
> In the other system I use..:
>    There is one large tree with a root, called $BASEDIR. 
>    All outputs go under $OBJECT_ROOT. 
>    The relative path under $BASEDIR is computed, and that is appended to $OBJECT_ROOT and outputs go there. 
>    If you are doing something unusual outside of $BASEDIR, then the full path, changing colons to slash, 
>    is appended to $OBJECT_ROOT.
> 
> 
> I believe also that really "target" and "output directory" are separate in cm3.
> Just that all the config files set them the same.
> You can copy ARMEL_LINUX, leave TARGET alone, and there is another variable that is usually assigned from TARGET, but you can assign it anything: "1", "arm.1", "foo". That is likely the way to go. Probably append something, and then clean can optionally append a star.
> 
> ?
> 
>  - Jay
> 
> ----------------------------------------
> > To: jay.krell at cornell.edu
> > CC: m3devel at elegosoft.com
> > Subject: Re: more cm3cg on Raspberry Pi
> > Date: Sat, 19 Oct 2013 12:52:55 -0700
> > From: mika at async.caltech.edu
> >
> >
> > The gain would be that I could compile my whole tree of non-CM3 software
> > (which is a fair fraction of the size of the CM3 tree), as well as the
> > CM3 tree itself, with both compilers without having to clean everything
> > and start over in between. On a slow machine it can make a difference.
> > But sure in the long run I'd probably stick with one or the other, and I
> > suspect most people would do too. On the other hand, for as long as there's
> > debug work going on on either or both of the compilers in question it seems
> > it would be helpful to be able to have both. And yes I get that they
> > would have to be installed in different places. But they wouldn't be able
> > to step on each other's toes if the derived directories were named differently...
> >
> > Well not a big deal, really. I now tar and rm and untar to switch.
> >
> > Jay K writes:
> >>Yes=2C maybe. But the C backend works for everything.=0A=
> >>We'd have to double the number of targets=2C for little gain.=0A=
> >>=0A=
> >>You can't install both to the same root either way.=0A=
> >>The pkg directories are separate=2C but bin and lib are not.=0A=
> >>=0A=
> >>Upgrade.py from on to the other should work asis.=0A=
> >>=0A=
> >>=A0- Jay=0A=
> >>=0A=
> >>----------------------------------------=0A=
> >>> To: jay.krell at cornell.edu=0A=
> >>> CC: m3devel at elegosoft.com=0A=
> >>> Subject: Re: more cm3cg on Raspberry Pi=0A=
> >>> Date: Sat=2C 19 Oct 2013 12:21:35 -0700=0A=
> >>> From: mika at async.caltech.edu=0A=
> >>>=0A=
> >>> Hi Jay=2C=0A=
> >>>=0A=
> >>> Yes the C backend is certainly convenient and cool. No argument there.=0A=
> >>>=0A=
> >>> But all this has me thinking about something... if the code generated by=
> >>=0A=
> >>> the C backend isn't compatible with that generated by cm3cg=2C shouldn't=
> >>=0A=
> >>> the target names be different=2C so that you could even have both systems=
> >>=0A=
> >>> installed at the same time. E.g.=2C ARMEL_LINUX_C and ARMEL_LINUX=0A=
> >>> (or whatever). Of course it makes it a bit more fiddly to bootstrap=0A=
> >>> since you're cross-compiling even though it's actually native..? I haven'=
> >>t=0A=
> >>> thought through all the ramifications. Is it difficult to change the name=
> >>?=0A=
> >>> Would it be desirable?=0A=
> >>>=0A=
> >>> Mika=0A=
> >>>=0A=
> >>> Jay K writes:=0A=
> >>>>Oh=3D2C sorry=3D2C here are things to try=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>edit m3-sys/m3cc/src/platforms.quake=3D0A=3D=0A=
> >>>>look for ARMEL_LINUX=3D2C change the right hand side to arm-linux-gnueabi=
> >>hf=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>and/or in src/m3makefile=3D2C you want to add -with-hard-float or -with-h=
> >>ardf=3D=0A=
> >>>>loat..no=3D2C wait=3D2C from your other mail:=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3DA0And=3D2C really=3D2C the guide here is what you showed for gcc:=3DA0=
> >>=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3DA0Configured with: ../src/configure =3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 -v \=3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 ... =3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 --with-arch=3D3Darmv6 =3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 --with-fpu=3D3Dvfp=3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 --with-float=3D3Dhard =3DA0=3D0A=3D=0A=
> >>>>=3DA0 =3DA0 --target=3D3Darm-linux-gnueabihf=3DA0=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3DA0One/some/all of those are relevant.=3DA0=3D0A=3D=0A=
> >>>>=3DA0You might as well go ahead and throw them all in for now.=3DA0=3D0A=
> >>=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3DA0Hey -- isn't that C backend convenient? :)=3DA0=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>=3DA0- Jay=3D0A=3D=0A=
> >>>>=3D0A=3D=0A=
> >>>>----------------------------------------=3D0A=3D=0A=
> >>>>> To: jay.krell at cornell.edu=3D0A=3D=0A=
> >>>>> CC: m3devel at elegosoft.com=3D0A=3D=0A=
> >>>>> Subject: more cm3cg on Raspberry Pi=3D0A=3D=0A=
> >>>>> Date: Fri=3D2C 18 Oct 2013 18:26:02 -0700=3D0A=3D=0A=
> >>>>> From: mika at async.caltech.edu=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> After setting up for soft float=3D2C I got a lot of these warnings/erro=
> >>rs..=3D=0A=
> >>>>.=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> new source -> compiling RTHeapInfo.m3=3D0A=3D=0A=
> >>>>> RTHeapInfo.ms: Assembler messages:=3D0A=3D=0A=
> >>>>> RTHeapInfo.ms:859: rdhi=3D2C rdlo and rm must all be different=3D0A=3D=
> >>=0A=
> >>>>> RTHeapInfo.ms:907: rdhi=3D2C rdlo and rm must all be different=3D0A=3D=
> >>=0A=
> >>>>> RTHeapInfo.ms:927: rdhi=3D2C rdlo and rm must all be different=3D0A=3D=
> >>=0A=
> >>>>> new source -> compiling RTHeapMap.i3=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> This is with the following configuration:=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> in /usr/local/cm3 I have the C-generating compiler installed. It seems =
> >>to=3D=0A=
> >>>> mostly work=3D2C as discussed.=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> Then I run boot2.sh=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> boot.sh finally ends with the following output=3D2C which doesn't look =
> >>quit=3D=0A=
> >>>>e right:=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> =3D3D=3D3D package /big/home2/mika/2/cm3-cvs/cm3/m3-sys/mklib =3D3D=3D3=
> >>D=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> +++ /usr/local/cm3/bin/cm3 -build -DROOT=3D3D/big/home2/mika/2/cm3-cvs/=
> >>cm3 =3D=0A=
> >>>>+++=3D0A=3D=0A=
> >>>>> --- building in ARMEL_LINUX ---=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> ignoring ../src/m3overrides=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> new source -> compiling Main.m3=3D0A=3D=0A=
> >>>>> -> linking mklib=3D0A=3D=0A=
> >>>>> =3D3D=3D3D> /big/home2/mika/2/cm3-cvs/cm3/m3-sys/mklib done=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> +++ /usr/local/cm3/bin/cm3 -ship -DROOT=3D3D/big/home2/mika/2/cm3-cvs/c=
> >>m3 +=3D=0A=
> >>>>++=3D0A=3D=0A=
> >>>>> --- shipping from ARMEL_LINUX ---=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> . =3D3D> /usr/local/cm3/pkg/mklib/ARMEL_LINUX=3D0A=3D=0A=
> >>>>> .M3EXPORTS .M3WEB=3D0A=3D=0A=
> >>>>> ../src =3D3D> /usr/local/cm3/pkg/mklib/src=3D0A=3D=0A=
> >>>>> Main.m3=3D0A=3D=0A=
> >>>>> . =3D3D> /usr/local/cm3/bin=3D0A=3D=0A=
> >>>>> mklib=3D0A=3D=0A=
> >>>>> =3D3D=3D3D> /big/home2/mika/2/cm3-cvs/cm3/m3-sys/mklib done=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cggen/ARMEL_LINUX/m3cggen> /big/=
> >>ho=3D=0A=
> >>>>me2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/m3cg.h=3D0A=3D=0A=
> >>>>> mkdir -p /usr/local/cm3/bin=3D0A=3D=0A=
> >>>>> cp -Pv /big/home2/mika/2/cm3-cvs/cm3/m3-sys/cm3/ARMEL_LINUX/cm3 /usr/lo=
> >>ca=3D=0A=
> >>>>l/cm3/bin/cm3=3D0A=3D=0A=
> >>>>> Traceback (most recent call last):=3D0A=3D=0A=
> >>>>> File "./upgrade.py"=3D2C line 72=3D2C in <module>=3D0A=3D=0A=
> >>>>> reload(pylib) # compiler host type may have changed and need to recompu=
> >>te=3D=0A=
> >>>> stuff=3D0A=3D=0A=
> >>>>> File "/big/home2/mika/2/cm3-cvs/cm3/scripts/python/pylib.py"=3D2C line =
> >>650=3D=0A=
> >>>>=3D2C in <module>=3D0A=3D=0A=
> >>>>> if Host.endswith("_NT") or Host =3D3D=3D3D "NT386":=3D0A=3D=0A=
> >>>>> AttributeError: 'NoneType' object has no attribute 'endswith'=3D0A=3D=
> >>=0A=
> >>>>> raspberrypi:/big/home2/mika/2/cm3-cvs/cm3/scripts/python#=3D0A=3D=0A=
> >>>>>=3D0A=3D=0A=
> >>>>> Mika =3D = 		 	   		  
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20131019/3b8158da/attachment-0002.html>


More information about the M3devel mailing list