Re: inferno hosted on Linux with arm
John Floren <
john@...>
2011-11-28 22:10:56 GMT
This is what I had to do for the Hellaphone. It's a little annoying
but doesn't take that long.
Speaking of Inferno on ARM, I compiled it for my Efika Smartbook (ARM
v7l processor), but it seems to just... die, after you start a few
processes. If I do "emu -r .", I can run "ls" and "ps" and such
seemingly without limit, but if I run "man wm" a few times, it's
almost certain to kill emu. I think it has something to do with the
process handling code, I swear I ran into something like this while
working with the Hellaphone.
John
On Mon, Nov 28, 2011 at 1:31 PM, Charles Forsyth
<charles.forsyth@...> wrote:
> it's a little devious, but it does look as though it should be all
> right in the end.
>
> similarly to iyacc, you need limbo as an x86 executable. possibly the
> best thing is to
> mk install Inferno with OBJTYPE=386, to get all the supporting commands,
> including limbo (the Limbo compiler), then set OBJTYPE=arm, and mk install
> to get the ARM-hosted version. I'd have written this up earlier except that:
> a. I didn't think of it
> b. to be fair, cross-compilation on non-Plan 9 systems to make other
> hosted systems is relatively new
> c. it was trivial under Plan 9, because cross-compilation is there by default,
> although in retrospect, there's a similar assumption (that the
> source system
> compilers have been made).
>
> On 28 November 2011 21:02, Shubhangi Tamsekar
> <shubhangi.tamsekar@...> wrote:
>> Thanks Charles.
>>
>> I changed the path to PATH=$HOME/inferno/Linux/386/bin
>> set appropriate cross compiler name in mkfile-linux-arm
>> and then do mk install
>>
>> Now it is able to pass beyond iyacc however, it is stuck mysteriously for
>> limbo. Here are the error messages that I get -
>>
>>
>> rm -f /home/inferno/Linux/arm/bin/limbo && cp o.out
>> /home/inferno/Linux/arm/bin/limbo
>> (cd libinterp; mk install)
>> /home/inferno/Linux/arm/lib/libinterp.a doesn't exist: assuming it will be
>> an archive
>> rm -f runt.h && limbo -a -I../module ../module/runt.m > runt.h
>> sh: limbo: not found
>> mk: rm -f runt.h ... : exit status=exit(127), deleting 'runt.h'
>> mk: for j in ... : exit status=exit(1)
>>
>>
>> Now what is wrong with my Limbo? I can see mk, iyacc and limbo files in my
>> /inferno/Linux/arm/bin/ folder.
>>
>> Any idea?
>>
>> On Mon, Nov 28, 2011 at 4:52 AM, Charles Forsyth <charles.forsyth <at> gmail.com>
>> wrote:
>>>
>>> iyacc needs to be of the same cpu type as your Ubuntu (as do the build
>>> functions).
>>> You've built the arm version of iyacc, but that is interpreted as a
>>> shell script on x86.
>>> (It's a bit stupid that something doesn't complain about an
>>> incompatible architecture, and
>>> I think it's something in the Linux environment that's at fault there,
>>> nothing directly to do with Inferno.)
>>>
>>> You don't need PATH=$HOME/inferno/Linux/arm/bin:...
>>> because you're not running on the arm. Instead you need the 386 directory
>>> (if
>>> the Ubuntu is on some variant of x86). With OBJTYPE=arm, SYSTARG=Linux,
>>> mkfiles/mkfile-Linux-arm will expect an arm-gcc somewhere in the PATH,
>>> as a gcc-based cross-compiler running on x86 generating code for the ARM.
>>> (You can change the mkfile if some other cross-compiler name is
>>> appropriate.)
>>
>>
>