Has anyone tried to port Mono to RTEMS

Russell Haley russ.haley at gmail.com
Mon Jul 24 03:05:28 UTC 2017


On Sun, Jul 23, 2017 at 6:28 PM, Joel Sherrill <joel at rtems.org> wrote:
>
>
> On Jul 23, 2017 7:11 PM, "Chris Johns" <chrisj at rtems.org> wrote:
>
> On 24/07/2017 09:29, Russell Haley wrote:
>>
>> I've retreated from FreeBSD all together. I'm on Debian Jessie right now.
>> rsb is
>> running and Mono is compiling now (still compiling C, not yet into mcs
>> where it
>> compiles the framework). I saw the original posters timezone item go
>> whizing
>> past so it's not a problem with my system so far. Will know more when I
>> get rsb
>> completed.
>
> Interesting. This would imply something is not full crossed to the RTEMS
> environment in Mono or the RTEMS environment is not consistent. The RTEMS
> environment should be consistent across a range of host machines and so it
> should give the same results to configure probes.
>
> One issue I find when on FreeBSD is configure or build logic based around
> sed
> breaks. If the sed logic uses GNU sed extensions, for example '\n' for a new
> line, it breaks the BSD sed as it does not support it.
>
>
> Does Mono build natively on FreeBSD? It is quite possible that any number of
> host tools are not installed, not the GNU version, or Mono simply has Linux
> specific assumptions.

Nothing seems to be working on FreeBSD 12 right now. There just seems
to be lots of broken stuff. TrueOS moved over to a rolling release a
little while ago and I've never tried to do any development on it
before. Building from 12-CURRENT seems like an enticing idea but...
I've run into a lot of issues (or I feel like I have anyway). I
abandoned Arch for Debian because I didn't want to deal with rolling
releases in embedded development (the little I do). I may have to
consider rolling my own FBSD Desktop instead of using TrueOS.

Anyway, this is about mono. I got mono to build natively on Debian. I
got the RTEMS sparc simulator from the quick start to build (OMG, what
do I do with that now??? A manual reference for the next steps would
be great cause I can't find it).

I tried modifying OPs (Original Poster) command line to work with my env:

#LD_LIBRARY_PATH is from
http://www.mono-project.com/docs/compiling-mono/compiling-from-git/

env LD_LIBRARY_PATH=/home/russellh/rtems/4.12/bin/ \
./autogen.sh \
--prefix=/opt/Mono/mono-4.8.1.0/mono-arm \
--target=arm-rtems4.12 \
--host=x86_64-unknown-linux \
CC=/home/russellh/rtems/4.12/bin/sparc-rtems4.12-gcc \
CFLAGS="-qrtems"

This doesn't work. It fails to find the linker and won't configure.
Output is here: https://pastebin.com/Twt36Qph


It's frustrating because everything in mono configuration is
autogenerated. That means I can't find the conftest.c file. Anyway,
The issue is the linker location is out to lunch:

/home/russellh/rtems/4.12/lib/gcc/sparc-rtems4.12/7.1.0/../../../../sparc-rtems4.12/bin/ld:
cannot open linker script file linkcmds:

As noted above, the compiling-from-git section said to add
LD_LIBRARY_PATH. I tried exporting it first, then tried the env trick.
No luck either way.

If I cared to pursue this (which I don't) I would await an RTEMS reply
and then likely contact the mono team. However, a note from an
ex-collegue: The are moving a very large number of servers from
Microsoft to Linux (save $$$) and their evaluation of Mono was so
dismal they decided to re-factor to work with DotNet Core instead.
They have a HUGE amount of code to refactor! And those are big beefy
*servers* with lots and lots of memory.

This exercise has been very instructive for me. Once I figure out how
to get the simulator working I'll look at linking in Lua and then
perhaps DotNetCore. That however requires build clang and llvm 3.9 and
a bunch of stuff I just don't want to deal with when Lua is there for
me.

Good luck Xuelin Tian, I won't be responding further.

Cheers,
Russ


More information about the users mailing list