[M3devel] more cm3cg on Raspberry Pi

Jay K jay.krell at cornell.edu
Sat Oct 19 22:03:58 CEST 2013


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 = 		 	   		  


More information about the M3devel mailing list