<div dir="auto">I would add that if you got far enough for the timezone probe to fail, you can try io compile that test code by hand. Then figure out which side is at fault. Maybe timezone as a variable is not required by POSIX so we don't have it. Then Mono needs adjustment. Maybe you need to add a -Dxxx to turn on optional features in the C Library.<div dir="auto"><br></div><div dir="auto">A port like this has to get the build working but then it is a series of small steps about issues like this.</div><div dir="auto"><br></div><div dir="auto"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Jul 23, 2017 10:35 AM, "Russell Haley" <<a href="mailto:russ.haley@gmail.com">russ.haley@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Did you run make? Did you get it to build? Lets slow down a sec:<br><br></div><div>(Once again, I'm just another schmuck on the board, this is not rtems position, but I'm interested in your work): <br><br></div><div>The reason nobody can help you is because from what I can
tell, nobodies tried this yet. You need to get all the other parts in
order before you attempt something new. I know you don't want to here
this (I hate hearing it too!). That's what I had to do to get new
drivers working in the FreeBSD kernel, I had to stop, slow down and
start with the basics and work back up, and now I have an SSD working on
my IMX6 board! (I was trying to build the whole image. I had to back
up and started with the snapshot image from the website, and then
modified the kernel, then when back and compared my image to the stock
image to find what was wrong). <br><br></div>So here's a thought. If you could record what you are doing and send the instructions and the complete output then I would be able to a) see what your running and b) try to follow along and reproduce what your attempting. If you don't feel like sharing, that's fine, but currently nobody here has much clarity into what you're doing or what you've done. None of us are able to follow along. If you write down each step you take in a document, then you (or us if you share it) can see what you have done and attempt to reproduce it. When your running your commands, record your outputs at the same time. I use "script /tmp/output.txt ... end" or just cut and paste into a document and then upload that to <a href="http://pastebin.com" target="_blank">pastebin.com</a> to share. <br><br>A good indication of where you should direct your work output and questions would be who's source code you are compiling (sometimes, I just got a terse email from the lua maintainer about where a FreeBSD patch should be applied. double entendre intended!). However: <br><br></div><div>How did you build your compiler (it is assumed you used the rsb)?<br></div>Can you build rtems currently and link in a test application? Does it run on your target?<br></div>Can you build mono separately with the default host compilers? <br>Can you build mono separately and make it run on your target?<br></div>Can you build something simple like a little C program with the rtems compilers you're using? Does it work with rtems?<br></div><br>(IMHO) it would be good for you to organise your notes because you are obviously smart and determined enough on this to perhaps get it done.<br><br></div>SO, start from the beginning. Can you compile Mono for your host?<br><div><div><br><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 23, 2017 at 7:27 AM, xuelin.tian <span dir="ltr"><<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>In my thought, it is not just like the build environment like RSB, it is like everything... including mcs, CLR, and so on. And these should all be installed in RTEMS, so I tried to cross-compile it. I do not know if I am on the right path. How do I run (or install) these in RTEMS?</div><div><u></u><div> </div><div> </div><div style="font:Verdana normal 14px;color:#000"><div style="FONT-SIZE:12px;FONT-FAMILY:Arial Narrow;padding:2px 0 2px 0">------------------ Original --<wbr>----------------</div><div style="FONT-SIZE:12px;background:#efefef;padding:8px"><div id="m_964289990857634210m_5579780197899996209menu_sender"><b>From: </b> "Russell Haley"<<a href="mailto:russ.haley@gmail.com" target="_blank">russ.haley@gmail.com</a>>;</div><div><b>Date: </b> Fri, Jul 21, 2017 01:09 PM</div><div><b>To: </b> "xuelin.tian"<<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkm<wbr>tech.com</a>>; </div><div><b>Cc: </b> "Joel Sherrill"<<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.or<wbr>g</a>>; "users"<<a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a>>; </div><div><div class="m_964289990857634210h5"><div><b>Subject: </b> Re: Has anyone tried to port Mono to RTEMS</div></div></div></div><div><div class="m_964289990857634210h5"><div> </div> <div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)">This is just the configuration step. It's setting up your build environment akin to what the rtems-source-builder sb-check does. </div><div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)"><br></div><div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)">It looks like your on the right path. It checked your compilers and verified it can use them. </div><div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)"><br></div><div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)">Russ</div> <div style="width:100%;font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)"><br style="display:initial"></div> <div style="font-size:initial;font-family:Calibri,'Slate Pro',sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;background-color:rgb(255,255,255)">Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.</div> <table style="background-color:white;border-spacing:0px" width="100%"> <tbody><tr><td colspan="2" style="font-size:initial;text-align:initial;background-color:rgb(255,255,255)"> <div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in;font-family:Tahoma,'BB Alpha Sans','Slate Pro';font-size:10pt"> <div><b>From: </b><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div><div><b>Sent: </b>Thursday, July 20, 2017 8:11 PM</div><div><b>To: </b>Russell Haley</div><div><b>Cc: </b>Joel Sherrill; <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject: </b>Re: Re: Has anyone tried to port Mono to RTEMS</div></div></td></tr></tbody></table><div style="border-style:solid none none;border-top-color:rgb(186,188,209);border-top-width:1pt;font-size:initial;text-align:initial;background-color:rgb(255,255,255)"></div><br><div id="m_964289990857634210m_5579780197899996209_originalContent">
<div><span></span><div>Sorry about some missing information.</div><div>My host is ubuntu 14.4 (--host=x86_64-unknown-linux), and target is Zynq, ARM family (--target=arm-rtems4.11). </div><div>I want to cross-compile Mono from source, downloaded from Github, the version is 4.8.1.0, not the HEAD. </div></div><div><br></div><div>I think what you mean by build output is shown below:</div><div>==============================<wbr>===================</div>
<div><span style="color:rgb(0,0,0);background-color:rgba(0,0,0,0)">Running libtoolize...<br>libtoolize: putting auxiliary files in `.'.<br>libtoolize: copying file `./ltmain.sh'<br>libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.<br>libtoolize: copying file `m4/libtool.m4'<br>libtoolize: copying file `m4/ltoptions.m4'<br>libtoolize: copying file `m4/ltsugar.m4'<br>libtoolize: copying file `m4/ltversion.m4'<br>libtoolize: copying file `m4/lt~obsolete.m4'<br>Running aclocal -I m4 -I . ...<br>Running autoheader...<br>Running automake --gnu ...<br>Running autoconf ...<br>Running libgc/autogen.sh ...<br>Running libtoolize...<br>libtoolize: putting auxiliary files in `.'.<br>libtoolize: copying file `./ltmain.sh'<br>libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.<br>libtoolize: copying file `m4/libtool.m4'<br>libtoolize: copying file `m4/ltoptions.m4'<br>libtoolize: copying file `m4/ltsugar.m4'<br>libtoolize: copying file `m4/ltversion.m4'<br>libtoolize: copying file `m4/lt~obsolete.m4'<br>Running aclocal -Wnone ...<br>Running automake --gnu ...<br>Makefile.am:32: error: Libtool library used but 'LIBTOOL' is undefined<br>Makefile.am:32: The usual way to define 'LIBTOOL' is to add 'LT_INIT'<br>Makefile.am:32: to '<a href="http://configure.ac" target="_blank">configure.ac</a>' and run 'aclocal' and 'autoconf' again.<br>Makefile.am:32: If 'LT_INIT' is in '<a href="http://configure.ac" target="_blank">configure.ac</a>', make sure<br>Makefile.am:32: its definition is in aclocal's search path.<br>**Error**: automake failed.<br>Done running libgc/autogen.sh ...<br>Running eglib/autogen.sh ...<br>Running libtoolize...<br>libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.<br>libtoolize: copying file `m4/libtool.m4'<br>libtoolize: copying file `m4/ltoptions.m4'<br>libtoolize: copying file `m4/ltsugar.m4'<br>libtoolize: copying file `m4/ltversion.m4'<br>libtoolize: copying file `m4/lt~obsolete.m4'<br>Running aclocal -I m4 ...<br>Running autoheader...<br>Running automake --gnu ...<br>Running autoconf ...<br>Skipping configure process.<br>Done running eglib/autogen.sh ...<br>Running ./configure --enable-maintainer-mode --enable-compile-warnings --prefix=/opt/Mono/mono-4.8.1.<wbr>0/mono-arm --target=arm-rtems4.11 --host=x86_64-unknown-linux CC=/opt/rtems-4.11.1-release/4<wbr>.11-tools/bin/arm-rtems4.11-gc<wbr>c CFLAGS=-qrtems -B/opt/rtems-4.11.1-release/4.<wbr>11-bsp/arm-rtems4.11/lib -B/opt/rtems-4.11.1-release/4.<wbr>11-bsp/arm-rtems4.11/xilinx_zy<wbr>nq_zedboard/lib/ -I//opt/rtems-4.11.1-release/4<wbr>.11-bsp/arm-rtems4.11/xilinx_z<wbr>ynq_zedboard/lib/include --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 ...<br>checking build system type... x86_64-unknown-linux-gnu<br>checking host system type... x86_64-unknown-linux-gnu<br>checking target system type... arm-unknown-rtems4.11<br>checking for a BSD-compatible install... /usr/bin/install -c<br>checking whether build environment is sane... yes<br>checking for x86_64-unknown-linux-strip... no<br>checking for strip... strip<br>checking for a thread-safe mkdir -p... /bin/mkdir -p<br>checking for gawk... no<br>checking for mawk... mawk<br>checking whether make sets $(MAKE)... yes<br>checking how to create a ustar tar archive... gnutar<br>checking whether to enable maintainer-specific portions of Makefiles... yes<br>checking whether ln -s works... yes<br>checking whether make supports nested variables... yes<br>checking host platform characteristics... ok<br>checking for x86_64-unknown-linux-gcc... /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc<br>checking for x86_64-unknown-linux-gcc... (cached) /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc<br>checking whether the C compiler works... yes<br>checking for C compiler default output file name... a.out<br>checking for suffix of executables... <br>checking whether we are cross compiling... yes<br>checking for suffix of object files... o<br>checking whether we are using the GNU C compiler... yes<br>checking whether /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc accepts -g... yes<br>checking for /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc option to accept ISO C89... none needed<br>checking for style of include used by make... GNU<br>checking dependency style of /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc..<wbr>. gcc3<br>checking for x86_64-unknown-linux-g++... no<br>checking for g++... g++<br>configure: WARNING: using cross tools not prefixed with host triplet<br>checking whether we are using the GNU C++ compiler... yes<br>checking whether g++ accepts -g... yes<br>checking dependency style of g++... gcc3<br>checking dependency style of /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc..<wbr>. gcc3<br>checking for gawk... (cached) mawk<br>checking whether /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc and cc understand -c and -o together... yes<br>checking how to run the C preprocessor... /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc -E<br>checking for grep that handles long lines and -e... /bin/grep<br>checking for egrep... /bin/grep -E<br>checking for ANSI C header files... yes<br>checking how to print strings... printf<br>checking for a sed that does not truncate output... /bin/sed<br>checking for fgrep... /bin/grep -F<br>checking for ld used by /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc..<wbr>. /opt/rtems-4.11.1-release/4.11<wbr>-tools/arm-rtems4.11/bin/ld<br>checking if the linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld) is GNU ld... yes<br>checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B<br>checking the name lister (/usr/bin/nm -B) interface... BSD nm<br>checking the maximum length of command line arguments... 1572864<br>checking whether the shell understands some XSI constructs... yes<br>checking whether the shell understands "+="... yes<br>checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop<br>checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop<br>checking for /opt/rtems-4.11.1-release/4.11<wbr>-tools/arm-rtems4.11/bin/ld option to reload object files... -r<br>checking for x86_64-unknown-linux-objdump..<wbr>. objdump<br>checking how to recognize dependent libraries... pass_all<br>checking for x86_64-unknown-linux-dlltool..<wbr>. dlltool<br>checking how to associate runtime and link libraries... printf %s\n<br>checking for x86_64-unknown-linux-ar... no<br>checking for ar... ar<br>checking for archiver @FILE support... @<br>checking for x86_64-unknown-linux-strip... strip<br>checking for x86_64-unknown-linux-ranlib... no<br>checking for ranlib... ranlib<br>checking command to parse /usr/bin/nm -B output from /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc object... ok<br>checking for sysroot... no<br>checking for x86_64-unknown-linux-mt... no<br>checking for mt... mt<br>checking if mt is a manifest tool... no<br>checking for sys/types.h... yes<br>checking for sys/stat.h... yes<br>checking for stdlib.h... yes<br>checking for string.h... yes<br>checking for memory.h... yes<br>checking for strings.h... yes<br>checking for inttypes.h... yes<br>checking for stdint.h... yes<br>checking for unistd.h... yes<br>checking for dlfcn.h... yes<br>checking for objdir... .libs<br>checking if /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc supports -fno-rtti -fno-exceptions... no<br>checking for /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc option to produce PIC... -fPIC -DPIC<br>checking if /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc PIC flag -fPIC -DPIC works... yes<br>checking if /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc static flag -static works... yes<br>checking if /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc supports -c -o file.o... yes<br>checking if /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc supports -c -o file.o... (cached) yes<br>checking whether the /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld -m elf_i386) supports shared libraries... no<br>checking dynamic linker characteristics... GNU/Linux ld.so<br>checking how to hardcode library paths into programs... unsupported<br>checking whether stripping libraries is possible... yes<br>checking if libtool supports shared libraries... no<br>checking whether to build shared libraries... no<br>checking whether to build static libraries... yes<br>checking how to run the C++ preprocessor... g++ -E<br>checking for ld used by g++... /opt/rtems-4.11.1-release/4.11<wbr>-tools/arm-rtems4.11/bin/ld -m elf_i386<br>checking if the linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld -m elf_i386) is GNU ld... no<br>checking whether the g++ linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld -m elf_i386) supports shared libraries... yes<br>checking for g++ option to produce PIC... -fPIC -DPIC<br>checking if g++ PIC flag -fPIC -DPIC works... yes<br>checking if g++ static flag -static works... yes<br>checking if g++ supports -c -o file.o... yes<br>checking if g++ supports -c -o file.o... (cached) yes<br>checking whether the g++ linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld -m elf_i386) supports shared libraries... yes<br>checking dynamic linker characteristics... (cached) GNU/Linux ld.so<br>checking how to hardcode library paths into programs... unsupported<br>checking for bash... /bin/bash<br>checking if dolt supports this host... yes, replacing libtool<br>checking for ld used by /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc..<wbr>. (cached) /opt/rtems-4.11.1-release/4.11<wbr>-tools/arm-rtems4.11/bin/ld<br>checking if the linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld) is GNU ld... (cached) yes<br>checking for ld used by GCC... /opt/rtems-4.11.1-release/4.11<wbr>-tools/arm-rtems4.11/bin/ld<br>checking if the linker (/opt/rtems-4.11.1-release/4.1<wbr>1-tools/arm-rtems4.11/bin/ld) is GNU ld... yes<br>checking for shared library run path origin... done<br>checking for iconv... yes<br>checking for working iconv... guessing yes<br>checking for iconv declaration... <br> extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);<br>checking sys/filio.h usability... yes<br>checking sys/filio.h presence... no<br>configure: WARNING: sys/filio.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: sys/filio.h: proceeding with the compiler's result<br>checking for sys/filio.h... yes<br>checking sys/sockio.h usability... yes<br>checking sys/sockio.h presence... no<br>configure: WARNING: sys/sockio.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: sys/sockio.h: proceeding with the compiler's result<br>checking for sys/sockio.h... yes<br>checking netdb.h usability... no<br>checking netdb.h presence... no<br>checking for netdb.h... no<br>checking utime.h usability... yes<br>checking utime.h presence... yes<br>checking for utime.h... yes<br>checking sys/utime.h usability... yes<br>checking sys/utime.h presence... yes<br>checking for sys/utime.h... yes<br>checking semaphore.h usability... yes<br>checking semaphore.h presence... yes<br>checking for semaphore.h... yes<br>checking sys/un.h usability... no<br>checking sys/un.h presence... no<br>checking for sys/un.h... no<br>checking linux/rtc.h usability... no<br>checking linux/rtc.h presence... no<br>checking for linux/rtc.h... no<br>checking sys/syscall.h usability... no<br>checking sys/syscall.h presence... no<br>checking for sys/syscall.h... no<br>checking sys/mkdev.h usability... no<br>checking sys/mkdev.h presence... no<br>checking for sys/mkdev.h... no<br>checking sys/uio.h usability... yes<br>checking sys/uio.h presence... no<br>configure: WARNING: sys/uio.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: sys/uio.h: proceeding with the compiler's result<br>checking for sys/uio.h... yes<br>checking sys/param.h usability... yes<br>checking sys/param.h presence... yes<br>checking for sys/param.h... yes<br>checking sys/sysctl.h usability... no<br>checking sys/sysctl.h presence... no<br>checking for sys/sysctl.h... no<br>checking libproc.h usability... no<br>checking libproc.h presence... no<br>checking for libproc.h... no<br>checking sys/prctl.h usability... no<br>checking sys/prctl.h presence... no<br>checking for sys/prctl.h... no<br>checking for sys/param.h... (cached) yes<br>checking sys/socket.h usability... no<br>checking sys/socket.h presence... no<br>checking for sys/socket.h... no<br>checking sys/ipc.h usability... no<br>checking sys/ipc.h presence... no<br>checking for sys/ipc.h... no<br>checking sys/utsname.h usability... yes<br>checking sys/utsname.h presence... no<br>configure: WARNING: sys/utsname.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: sys/utsname.h: proceeding with the compiler's result<br>checking for sys/utsname.h... yes<br>checking alloca.h usability... yes<br>checking alloca.h presence... yes<br>checking for alloca.h... yes<br>checking ucontext.h usability... no<br>checking ucontext.h presence... no<br>checking for ucontext.h... no<br>checking pwd.h usability... yes<br>checking pwd.h presence... yes<br>checking for pwd.h... yes<br>checking sys/select.h usability... no<br>checking sys/select.h presence... no<br>checking for sys/select.h... no<br>checking netinet/tcp.h usability... no<br>checking netinet/tcp.h presence... no<br>checking for netinet/tcp.h... no<br>checking netinet/in.h usability... no<br>checking netinet/in.h presence... no<br>checking for netinet/in.h... no<br>checking for unistd.h... (cached) yes<br>checking for sys/types.h... (cached) yes<br>checking link.h usability... yes<br>checking link.h presence... no<br>configure: WARNING: link.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: link.h: proceeding with the compiler's result<br>checking for link.h... yes<br>checking asm/sigcontext.h usability... no<br>checking asm/sigcontext.h presence... no<br>checking for asm/sigcontext.h... no<br>checking sys/inotify.h usability... no<br>checking sys/inotify.h presence... no<br>checking for sys/inotify.h... no<br>checking arpa/inet.h usability... no<br>checking arpa/inet.h presence... no<br>checking for arpa/inet.h... no<br>checking complex.h usability... yes<br>checking complex.h presence... yes<br>checking for complex.h... yes<br>checking unwind.h usability... yes<br>checking unwind.h presence... yes<br>checking for unwind.h... yes<br>checking for linux/netlink.h... no<br>checking for linux/rtnetlink.h... no<br>checking for sys/user.h... no<br>checking linux/serial.h usability... no<br>checking linux/serial.h presence... no<br>checking for linux/serial.h... no<br>checking zlib.h usability... yes<br>checking zlib.h presence... no<br>configure: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: zlib.h: proceeding with the compiler's result<br>checking for zlib.h... yes<br>Using system zlib<br>checking elf.h usability... no<br>checking elf.h presence... no<br>checking for elf.h... no<br>checking poll.h usability... no<br>checking poll.h presence... no<br>checking for poll.h... no<br>checking sys/poll.h usability... yes<br>checking sys/poll.h presence... no<br>configure: WARNING: sys/poll.h: accepted by the compiler, rejected by the preprocessor!<br>configure: WARNING: sys/poll.h: proceeding with the compiler's result<br>checking for sys/poll.h... yes<br>checking sys/wait.h usability... yes<br>checking sys/wait.h presence... yes<br>checking for sys/wait.h... yes<br>checking grp.h usability... yes<br>checking grp.h presence... yes<br>checking for grp.h... yes<br>checking syslog.h usability... no<br>checking syslog.h presence... no<br>checking for syslog.h... no<br>checking wchar.h usability... yes<br>checking wchar.h presence... yes<br>checking for wchar.h... yes<br>checking ieeefp.h usability... yes<br>checking ieeefp.h presence... yes<br>checking for ieeefp.h... yes<br>checking for isinf... yes<br>checking for _finite... no<br>checking for _finite in math.h... no<br>checking linux/magic.h usability... no<br>checking linux/magic.h presence... no<br>checking for linux/magic.h... no<br>checking size of void *... 4<br>checking for clang... no<br>checking for -Wno-unused-but-set-variable option to gcc... yes<br>checking whether NLS is requested... profile_default<br>checking for msgfmt... /usr/bin/msgfmt<br>checking for gmsgfmt... /usr/bin/msgfmt<br>checking for xgettext... /usr/bin/xgettext<br>checking for msgmerge... /usr/bin/msgmerge<br>checking for pkg-config... /usr/bin/pkg-config<br>checking for -mno-tls-direct-seg-refs option to gcc... no<br>yes<br>checking for visibility __attribute__... yes<br>checking whether /opt/rtems-4.11.1-release/4.11<wbr>-tools/bin/arm-rtems4.11-gcc supports zero length arrays... yes<br>checking nacl/nacl_dyncode.h usability... no<br>checking nacl/nacl_dyncode.h presence... no<br>checking for nacl/nacl_dyncode.h... no<br>checking signal.h usability... yes<br>checking signal.h presence... yes<br>checking for signal.h... yes<br>checking for sigaction... yes<br>checking for kill... yes<br>checking for signal... yes<br>checking for library containing clock_gettime... none required<br>checking for clock_nanosleep... no<br>checking for dlopen... yes<br>checking for preceeding underscore in symbols... (cached) no<br>checking for dlerror... yes<br>checking execinfo.h usability... no<br>checking execinfo.h presence... no<br>checking for execinfo.h... no<br>checking sys/auxv.h usability... no<br>checking sys/auxv.h presence... no<br>checking for sys/auxv.h... no<br>checking sys/resource.h usability... yes<br>checking sys/resource.h presence... yes<br>checking for sys/resource.h... yes<br>checking for getgrgid_r... yes<br>checking for getgrnam_r... yes<br>checking for getpwnam_r... yes<br>checking for getpwuid_r... yes<br>checking for getresuid... no<br>checking for setresuid... no<br>checking for kqueue... no<br>checking for backtrace_symbols... no<br>checking for mkstemp... yes<br>checking for mmap... yes<br>checking for madvise... no<br>checking for getrusage... yes<br>checking for getpriority... no<br>checking for setpriority... no<br>checking for dl_iterate_phdr... no<br>checking for dladdr... no<br>checking for sysconf... yes<br>checking for getrlimit... no<br>checking for prctl... no<br>checking for sched_getaffinity... no<br>checking for sched_setaffinity... no<br>checking for sched_getcpu... no<br>checking for sched_setaffinity from glibc < 2.3.4... yes<br>checking if off_t is 64 bits wide... ok<br>checking for socket in -lsocket... no<br>checking for MSG_NOSIGNAL... no<br>checking for IPPROTO_IP... no<br>checking for IPPROTO_IPV6... no<br>checking for IPPROTO_TCP... no<br>checking for SOL_IP... no<br>checking for SOL_IPV6... no<br>checking for SOL_TCP... no<br>checking for IP_PKTINFO... no<br>checking for IPV6_PKTINFO... no<br>checking for IP_DONTFRAG... no<br>checking for IP_DONTFRAGMENT... no<br>checking for IP_MTU_DISCOVER... no<br>checking for IP_PMTUDISC_DO... no<br>checking for struct ip_mreqn... no<br>checking for struct ip_mreq... no<br>checking for getaddrinfo... no<br>checking for gethostbyname2_r... no<br>checking for gethostbyname2... no<br>checking for gethostbyname... no<br>checking for getprotobyname... no<br>checking for getnameinfo... no<br>checking for inet_ntop... no<br>checking for gethostbyaddr... no<br>checking for gethostbyaddr in -lnsl... no<br>checking for inet_pton... no<br>checking for inet_aton... no<br>checking for main in -lpthread... no<br>checking pthread.h usability... yes<br>checking pthread.h presence... yes<br>checking for pthread.h... yes<br>checking pthread_np.h usability... no<br>checking pthread_np.h presence... no<br>checking for pthread_np.h... no<br>checking for pthread_mutex_timedlock... yes<br>checking for pthread_getattr_np... yes<br>checking for pthread_attr_get_np... no<br>checking for pthread_setname_np... no<br>checking for pthread_kill... yes<br>checking for PTHREAD_MUTEX_RECURSIVE... ok<br>checking for pthread_attr_setstacksize... yes<br>checking for pthread_attr_getstack... yes<br>checking for pthread_attr_getstacksize... yes<br>checking for pthread_get_stacksize_np... no<br>checking for pthread_get_stackaddr_np... no<br>checking for mincore... no<br>checking for working __thread... cross compiling<br>checking for working sigaltstack... cross compiling<br>checking for library containing sem_init... none required<br>checking for library containing shm_open... no<br>checking for shm_open... no<br>checking for tm_gmtoff in struct tm... no<br>checking for timezone variable... no<br>configure: error: unable to find a way to determine timezone<br></span></div><div><span style="color:rgb(0,0,0);background-color:rgba(0,0,0,0)">==============================<wbr>=================</span></div><div><div>I googled the time zone variable, and still working on it.</div><div><br></div><div>But actually, I want to know whether I am doing it the right way? I mean, is this a right way to port Mono to RTEMS, just modifying some configuration options? I am still confusing about it. </div></div><div><br></div><hr style="width:210px;height:1px" size="1" align="left" color="#b5c4df">
<div><span><div style="MARGIN:10px;FONT-FAMILY:verdana;FONT-SIZE:10pt"><div>Best wishes,</div><div><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div></div></span></div>
<blockquote style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"><div> </div><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT:8px;PADDING-LEFT:8px;FONT-SIZE:12px;FONT-FAMILY:tahoma;COLOR:#000000;BACKGROUND:#efefef;PADDING-BOTTOM:8px;PADDING-TOP:8px"><div><b>From:</b> <a href="mailto:russ.haley@gmail.com" target="_blank">Russell Haley</a></div><div><b>Date:</b> 2017-07-21 10:42</div><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div><div><b>CC:</b> <a href="mailto:joel@rtems.org" target="_blank">Joel Sherrill</a>; <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject:</b> Re: Re: Has anyone tried to port Mono to RTEMS</div></div></div><div><div class="m_964289990857634210m_5579780197899996209FoxDiv20170721110401434791"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 20, 2017 at 7:07 PM, <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a> <span dir="ltr"><<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>
<div><span></span>I just followed the instructions from Mono, and did some changes obviously.</div><div>I did not use ScratchBox to cross-compile my Mono on ARM, just use arm-rtems4.11-gcc to cross-compile it. Is that right?</div><div>Do I need to modify the source code from Mono to port to RTEMS?</div>
</div></blockquote><div>Some context you really should provide:<br>- What platform are you building on?<br></div><div>- Where did you get the source files? (if git, are you building head? I have had many problems building mono from head)<br></div><div>- Without posting your complete build output there is no way to tell what is happening. <br><br></div><div>This is just a shot in the dark, but did you google Time Zone variable? Google says you need to set a TZ environment variable. <br></div><div><br></div><div>Russ<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div></div><hr style="width:210px;height:1px" size="1" align="left" color="#b5c4df">
<div><span><div style="margin:10px;font-family:verdana;font-size:10pt"><div>Best wishes,</div><div><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div></div></span></div>
<blockquote style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"><div> </div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm"><div style="padding:8px;font-size:12px;font-family:tahoma;color:rgb(0,0,0);background:rgb(239,239,239) none repeat scroll 0% 0%"><div><b>From:</b> <a href="mailto:russ.haley@gmail.com" target="_blank">Russell Haley</a></div><div><b>Date:</b> 2017-07-21 00:16</div><div><div class="m_964289990857634210m_5579780197899996209gmail-h5"><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian</a>; <a href="mailto:joel@rtems.org" target="_blank">Joel Sherrill</a></div><div><b>CC:</b> <a href="mailto:users@rtems.org" target="_blank">users</a></div><div><b>Subject:</b> Re: Has anyone tried to port Mono to RTEMS</div></div></div></div></div><div><div class="m_964289990857634210m_5579780197899996209gmail-h5"><div><div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745FoxDiv20170721100246834833">
<div style="width:100%;font-size:initial">Did you get it to build natively? What is your host. Build output would be helpful. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">Russ</div> <div style="width:100%;font-size:initial"><br style="display:initial"></div> <div style="font-size:initial">Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.</div> <table style="background-color:white;border-spacing:0px" width="100%"> <tbody><tr><td colspan="2" style="font-size:initial;text-align:initial;background-color:rgb(255,255,255)"> <div style="border-style:solid none none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in;font-size:10pt"> <div><b>From: </b><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div><div><b>Sent: </b>Thursday, July 20, 2017 5:53 AM</div><div><b>To: </b>Russell Haley; Joel Sherrill</div><div><b>Cc: </b><a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject: </b>Re: Re: Has anyone tried to port Mono to RTEMS</div></div></td></tr></tbody></table><div style="border-style:solid none none;border-top:1pt solid rgb(186,188,209);font-size:initial;text-align:initial;background-color:rgb(255,255,255)"></div><br><div id="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745_originalContent">
<div><span></span>I have been struck by it for like 2 days.</div><div>I want to cross-compile Mono for a test, and I enter: </div><div><br></div><div><span style="color:rgb(0,0,0);background-color:transparent"><b>./autogen.sh --prefix=/opt/Mono/mono-4.8.1.<wbr>0/mono-arm --target=arm-rtems4.11 --host=x86_64-unknown-linux CC=/opt/rtems-4.11.1-release/4<wbr>.11-tools/bin/arm-rtems4.11-gc<wbr>c CFLAGS="-qrtems -B/opt/rtems-4.11.1-release/4.<wbr>11-bsp/arm-rtems4.11/lib -B/opt/rtems-4.11.1-release/4.<wbr>11-bsp/arm-rtems4.11/xilinx_zy<wbr>nq_zedboard/lib/ -I//opt/rtems-4.11.1-release/4<wbr>.11-bsp/arm-rtems4.11/xilinx_z<wbr>ynq_zedboard/lib/include --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9"</b><br></span></div><div><span style="color:rgb(0,0,0);background-color:transparent"><br></span></div><div><span style="color:rgb(0,0,0);background-color:transparent">It goes well at first, then the error came up:</span></div><div><span style="color:rgb(0,0,0);background-color:transparent"><b>checking for timezone variable... no<br>configure: error: unable to find a way to determine timezone</b><br></span></div><div><span style="color:rgb(0,0,0);background-color:transparent"><br></span></div><div><span style="color:rgb(0,0,0);background-color:transparent">I can not really understand the content from config.log</span></div><div><img src="cid:0F4A8637@D1878C7A.38B27459" border="0"></div><div><br></div><div>Can anyone help me with this? Thanks a lot</div>
<div><br></div><hr style="width:210px;height:1px" size="1" align="left" color="#b5c4df">
<div><span><div style="margin:10px;font-family:verdana;font-size:10pt"><div>Best wishes,</div><div><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div></div></span></div>
<blockquote style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"><div> </div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm"><div style="padding:8px;font-size:12px;font-family:tahoma;color:rgb(0,0,0);background:rgb(239,239,239) none repeat scroll 0% 0%"><div><b>From:</b> <a href="mailto:russ.haley@gmail.com" target="_blank">Russell Haley</a></div><div><b>Date:</b> 2017-07-14 12:44</div><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian</a>; <a href="mailto:joel@rtems.org" target="_blank">Joel Sherrill</a></div><div><b>CC:</b> <a href="mailto:users@rtems.org" target="_blank">users</a></div><div><b>Subject:</b> Re: Has anyone tried to port Mono to RTEMS</div></div></div><div><div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745FoxDiv20170720204531156386" style="background-color:rgb(255,255,255);line-height:initial">
<div style="width:100%;font-size:initial">Thinking about it, Lua is designed to be statically linked into C applications and your scripts are loaded and executed by your application at runtime. This is how lua is plugged into many video games like world or warcraft and roblox. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">From my simplistic understanding of rtems (and everything I just said), that would be the way you would statically link lua into rtems?</div> <div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">Russ</div><div style="width:100%;font-size:initial"><br></div> <div style="font-size:initial">Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.</div> <table style="background-color:white;border-spacing:0px" width="100%"> <tbody><tr><td colspan="2" style="font-size:initial;text-align:initial;background-color:rgb(255,255,255)"> <div style="border-style:solid none none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in;font-size:10pt"> <div><b>From: </b><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div><div><b>Sent: </b>Thursday, July 13, 2017 9:03 PM</div><div><b>To: </b>Russell Haley; Joel Sherrill</div><div><b>Cc: </b><a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject: </b>Re: Re: Has anyone tried to port Mono to RTEMS</div></div></td></tr></tbody></table><div style="border-style:solid none none;border-top:1pt solid rgb(186,188,209);font-size:initial;text-align:initial;background-color:rgb(255,255,255)"></div><br><div id="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745_originalContent">
<div><span></span>OK, thanks a lot.</div><div>I will go through Lua today, to see if there is something interesting there.</div>
<div><br></div><hr style="width:210px;height:1px" size="1" align="left" color="#b5c4df">
<div><span><div style="margin:10px;font-family:verdana;font-size:10pt"><div>Best wishes,</div><div><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div></div></span></div>
<blockquote style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"><div> </div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm"><div style="padding:8px;font-size:12px;font-family:tahoma;color:rgb(0,0,0);background:rgb(239,239,239) none repeat scroll 0% 0%"><div><b>From:</b> <a href="mailto:russ.haley@gmail.com" target="_blank">Russell Haley</a></div><div><b>Date:</b> 2017-07-14 11:57</div><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian</a>; <a href="mailto:joel@rtems.org" target="_blank">Joel Sherrill</a></div><div><b>CC:</b> <a href="mailto:users@rtems.org" target="_blank">users</a></div><div><b>Subject:</b> Re: Has anyone tried to port Mono to RTEMS</div></div></div><div><div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745FoxDiv20170714115950519708" style="background-color:rgb(255,255,255);line-height:initial">
<div style="width:100%;font-size:initial">Just my opinion on the 'or other vm' comment. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">If your requirement is not strictly mono, I highly suggest something small and simple like Lua. It's a a very efficient vm and is cross compatible with all major platforms. The only requirement for Lua is c99. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">The language is very simple and bare bones. You pick your tools from git or a repository manager called luarocks (<a href="http://luarocks.org" target="_blank">luarocks.org</a>). That's where the 'hard part' of Lua comes in. It's very hands on because you need to find or write almost everything you need. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">I am putting together a 'lightweight' IoT platform using Lua 5.3 and a very sophisticated polling library called cqueues. There is an http library called lua-http based on cqueues that contains a client and server implementation of most major http standards including http2 and websockets. The requirements for cqueues are a polling library such as epoll or kqueues (or even poll or select). I'm not sure how well that would plug into rtems. At this point I'm cross compatible for most major Nixs' though. </div> <div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">Nonetheless, the overhead of mono is not really worth it if you are doing simple things. That's why I switched away from DotNet for my project. If you have code to port, or have DotNet developers, mono makes sense. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">Just my opinion. </div><div style="width:100%;font-size:initial"><br></div><div style="width:100%;font-size:initial">HTH</div><div style="width:100%;font-size:initial">Russ</div><div style="width:100%;font-size:initial"><br></div> <div style="font-size:initial">Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.</div> <table style="background-color:white;border-spacing:0px" width="100%"> <tbody><tr><td colspan="2" style="font-size:initial;text-align:initial;background-color:rgb(255,255,255)"> <div style="border-style:solid none none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in;font-size:10pt"> <div><b>From: </b><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div><div><b>Sent: </b>Thursday, July 13, 2017 8:38 PM</div><div><b>To: </b>Joel Sherrill; Russell Haley</div><div><b>Cc: </b><a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject: </b>Re: Re: Has anyone tried to port Mono to RTEMS</div></div></td></tr></tbody></table><div style="border-style:solid none none;border-top:1pt solid rgb(186,188,209);font-size:initial;text-align:initial;background-color:rgb(255,255,255)"></div><br><div id="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745_originalContent">
<div><span></span>Yes, I am trying to build it from source according to Russell.</div><div><br></div><div>As to .net core, I may not have a deep understanding of it. I think for now, Mono may be the best choice for me, since I need to make it (porting Mono or other VM to rtems) work in a few days. </div>
<div><br></div><hr style="width:210px;height:1px" size="1" align="left" color="#b5c4df">
<div><span><div style="margin:10px;font-family:verdana;font-size:10pt"><div>Best wishes,</div><div><a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a></div></div></span></div>
<blockquote style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"><div> </div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm"><div style="padding:8px;font-size:12px;font-family:tahoma;color:rgb(0,0,0);background:rgb(239,239,239) none repeat scroll 0% 0%"><div><b>From:</b> <a href="mailto:joel@rtems.org" target="_blank">Joel Sherrill</a></div><div><b>Date:</b> 2017-07-13 01:08</div><div><b>To:</b> <a href="mailto:russ.haley@gmail.com" target="_blank">Russell Haley</a></div><div><b>CC:</b> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>; <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a></div><div><b>Subject:</b> Re: Re: Has anyone tried to port Mono to RTEMS</div></div></div><div><div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745FoxDiv20170714113148021310"><div dir="ltr">The reply from Russell is very good advice. Look forward when porting and<div>make sure you are porting something with a future.</div><div><br></div><div>For Mono, I did exactly what he outlined. I built native. I recall it using a </div><div>fairly normal configure script and I just added --target=XXX-rtems. I might</div><div>have added some CFLAGS but don't recall. </div><div><br></div><div>I focused on the run-time interpreter and ignored the JIT. The run-time</div><div>translated Mono calls into C library and POSIX calls. If there was a </div><div>compilation issue, I tried to fix it where ever it had to be fixed. Always being</div><div>open to adding something to either RTEMS or newlib if possible</div><div>and needed.</div><div><br></div><div>--joel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 12, 2017 at 11:03 AM, Russell Haley <span dir="ltr"><<a href="mailto:russ.haley@gmail.com" target="_blank">russ.haley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.5em;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span>On Tue, Jul 11, 2017 at 9:31 PM, <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a><br>
<<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>> wrote:<br>
> Dear Joel,<br>
> Recently, I continue to port Mono to RTEMS.<br>
> Porting consists of two parts, according to the Mono documents online, JIT<br>
> engine and OS support.<br>
> JIT part is already done, since I use ARM platform.<br>
> And I am confuesd about OS part and how to build Mono on RTEMS.<br>
> Could you recall any details about how to build Mono on RTEMS? Thank you.<br>
<br>
</span>I'm not sure that's quite right. There are really 3 parts: The<br>
application framework, the 'JIT' (Mono Runtime, or Common Language<br>
Runtime in Microsoft .Net) and the OS specific layer. The application<br>
framework and the JIT are common to all platforms. The OS specific<br>
parts are in the Mono Runtime where it translates the Interediate<br>
Language (IL) to machine specific code at ... er ... runtime. The Mono<br>
Runtime is being slowly replaced by the Roslyn compiler, which is open<br>
source from Microsoft (very very cool stuff).<br>
<br>
Building Mono requires a number of parts, including boot strapping the<br>
build and downloading binaries from nuget (last time I did it,<br>
anyway). I've never attempted to cross compile Mono. I would assume<br>
you would change the make file to point to a cross compiler such as<br>
arm-unknown-gcc (not sure about the RTEMS specifics).<br>
<br>
In my opinion the best bet is to pull the mono repository from GitHub<br>
and build it for your host platform first. Then you could look at<br>
modifying it to build on arm.<br>
<br>
That said, Mono is a dead/dying platform. Microsoft has bought<br>
Xamarian (Mono sponsor company). Now the Mono Dev Team is slowly<br>
porting everything over to the Microsoft .Net Core code. Once the<br>
majority of libraries are converted, they can then write Mono specific<br>
modules for legacy applications and then shuffle everyone over to<br>
DotNet Core. It might be wise to look at using the DotNet Core instead<br>
of Mono. There are a number of reasons to prefer the DotNet Core:<br>
<br>
- Designed to be small and use a package manager to import required<br>
external libraries. This was done with embedded systems in mind.<br>
- Better interpreter: the new interpreters (Rosylin and the other that<br>
I don't remember the name of) are very efficient compared to the Mono<br>
mc.<br>
- More efficient runtime. The Mono Runtime is known to be slow.<br>
<br>
Here would be a good place to start with the DotNet Core as they have<br>
nightly arm builds.<br>
<br>
<a href="https://stevedesmond.ca/blog/net-core-on-arm" rel="noreferrer" target="_blank">https://stevedesmond.ca/blog/n<wbr>et-core-on-arm</a><br>
<br>
<br>
HTH,<br>
<br>
Russ<br>
<div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745HOEnZb"><div class="m_964289990857634210m_5579780197899996209gmail-m_6355668261996299745h5"><br>
> ______________________________<wbr>__<br>
> Best wishes,<br>
> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a><br>
><br>
><br>
> From: Joel Sherrill<br>
> Date: 2017-05-24 20:19<br>
> To: xuelin.tian<br>
> CC: <a href="mailto:rtems-users@rtems.org" target="_blank">rtems-users@rtems.org</a><br>
> Subject: Re: Has anyone tried to port Mono to RTEMS<br>
><br>
><br>
> On May 23, 2017 8:58 PM, "<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>" <<a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a>><br>
> wrote:<br>
><br>
> Dear all,<br>
> Is that possible to port Mono to RTEMS? Has anyone tried this before?<br>
> As I notice that there is an open project in RTEMS projects.<br>
><br>
><br>
> Sometime ago, I was asked to provide an estimate for this. It had to be<br>
> between five and ten years ago because we were at the old office but after<br>
> we had done a few years of GSoC. I did enough work preparing the estimate<br>
> where I had the code building without too much effort. I saw the challenge<br>
> as getting the test suite running since you would have to create a test<br>
> harness and build/assembly helper that packaged the interpreted code with<br>
> the interpreter in order to run it. At that time, I envisioned having to<br>
> create a base image and a filesystem image per test.<br>
><br>
> Our POSIX was good enough then to avoid much trouble. It should only be<br>
> easier now since the POSIX support has improved.<br>
><br>
> There were a lot of Mono tests and I expected most to pass quickly. But<br>
> there was no way to know how many issues would be encountered and how many<br>
> root causes there would be. I expected to fix one or two things and then run<br>
> all the tests. That was where I expected time to be consumed.<br>
><br>
> FWIW I recall the GSoC date part because they thought we could magically get<br>
> students to do testing for free on a schedule. :)<br>
><br>
> I hope that helps. It is feasible but the key is testing.<br>
><br>
> --joel<br>
><br>
><br>
> ______________________________<wbr>__<br>
> Best wishes,<br>
> <a href="mailto:xuelin.tian@qkmtech.com" target="_blank">xuelin.tian@qkmtech.com</a><br>
><br>
> ______________________________<wbr>_________________<br>
> users mailing list<br>
> <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman<wbr>/listinfo/users</a><br>
><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> users mailing list<br>
> <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman<wbr>/listinfo/users</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote>
<br></div>
</div></div></blockquote>
<br></div>
</div></div></blockquote>
<br></div></div></div></div></div></blockquote>
</div></blockquote></div><br></div></div>
</div></div></blockquote>
<br></div>
</div></div></div><u></u></div><u></u> <u></u> <u></u> <u></u><u></u> <u></u><u></u> <u></u><u></u> <u></u> <u></u> <u></u> <textarea></textarea> <u></u> <u></u> <select> <option value="">自动判断</option> <option value="zh">中文</option><option value="zh-CN">中文(简体)</option><option value="zh-HK">中文(香港)</option><option value="zh-TW">中文(繁体)</option><option value="en">英语</option><option value="ja">日语</option><option value="ko">朝鲜语</option><option value="de">德语</option><option value="fr">法<wbr>语</option><option value="ru">俄语</option><option value="th">泰语</option><option value="af">南非语</option><option value="ar">阿拉伯语</option><option value="az">阿塞拜疆语</option><option value="be">比利时语</option><option value="bg">保加利亚语</option><option value="ca">加泰隆语</option><option value="cs"><wbr>捷克语</option><option value="cy">威尔士语</option><option value="da">丹麦语</option><option value="dv">第维埃语</option><option value="el">希腊语</option><option value="eo">世界语</option><option value="es">西班牙语</option><option value="et">爱沙尼亚语</option><option value="eu">巴<wbr>士克语</option><option value="fa">法斯语</option><option value="fi">芬兰语</option><option value="fo">法罗语</option><option value="gl">加里西亚语</option><option value="gu">古吉拉特语</option><option value="he">希伯来语</option><option value="hi">印地语</option><option value="hr">克<wbr>罗地亚语</option><option value="hu">匈牙利语</option><option value="hy">亚美尼亚语</option><option value="id">印度尼西亚语</option><option value="is">冰岛语</option><option value="it">意大利语</option><option value="ka">格鲁吉亚<wbr>语</option><option value="kk">哈萨克语</option><option value="kn">卡纳拉语</option><option value="kok">孔卡尼语</option><option value="ky">吉尔吉斯语</option><option value="lt">立陶宛语</option><option value="lv">拉脱维亚语</option><option value="mi">毛利语</option><option value="mk"><wbr>马其顿语</option><option value="mn">蒙古语</option><option value="mr">马拉地语</option><option value="ms">马来语</option><option value="mt">马耳他语</option><option value="nb">挪威语(伯克梅尔)</option><option value="nl">荷兰语</option><option value="ns"><wbr>北梭托语</option><option value="pa">旁遮普语</option><option value="pl">波兰语</option><option value="pt">葡萄牙语</option><option value="qu">克丘亚语</option><option value="ro">罗马尼亚语</option><option value="sa">梵文</option><option value="se">北萨摩斯<wbr>语</option><option value="sk">斯洛伐克语</option><option value="sl">斯洛文尼亚语</option><option value="sq">阿尔巴尼亚语</option><option value="sv">瑞典语</option><option value="sw">斯瓦希里语</option><option value="syr">叙利亚语</option><option value="ta"><wbr>泰米尔语</option><option value="te">泰卢固语</option><option value="tl">塔加路语</option><option value="tn">茨瓦纳语</option><option value="tr">土耳其语</option><option value="ts">宗加语</option><option value="tt">鞑靼语</option><option value="uk">乌克兰语</option><option value="ur"><wbr>乌都语</option><option value="uz">乌兹别克语</option><option value="vi">越南语</option><option value="xh">班图语</option><option value="zu">祖鲁语</option> </select> <u></u> <u></u><u></u> <u></u> <select> <option value="">自动选择</option> <option value="zh">中文</option><option value="zh-CN">中文(简体)</option><option value="zh-HK">中文(香港)</option><option value="zh-TW">中文(繁体)</option><option value="en">英语</option><option value="ja">日语</option><option value="ko">朝鲜语</option><option value="de">德语</option><option value="fr">法<wbr>语</option><option value="ru">俄语</option><option value="th">泰语</option><option value="af">南非语</option><option value="ar">阿拉伯语</option><option value="az">阿塞拜疆语</option><option value="be">比利时语</option><option value="bg">保加利亚语</option><option value="ca">加泰隆语</option><option value="cs"><wbr>捷克语</option><option value="cy">威尔士语</option><option value="da">丹麦语</option><option value="dv">第维埃语</option><option value="el">希腊语</option><option value="eo">世界语</option><option value="es">西班牙语</option><option value="et">爱沙尼亚语</option><option value="eu">巴<wbr>士克语</option><option value="fa">法斯语</option><option value="fi">芬兰语</option><option value="fo">法罗语</option><option value="gl">加里西亚语</option><option value="gu">古吉拉特语</option><option value="he">希伯来语</option><option value="hi">印地语</option><option value="hr">克<wbr>罗地亚语</option><option value="hu">匈牙利语</option><option value="hy">亚美尼亚语</option><option value="id">印度尼西亚语</option><option value="is">冰岛语</option><option value="it">意大利语</option><option value="ka">格鲁吉亚<wbr>语</option><option value="kk">哈萨克语</option><option value="kn">卡纳拉语</option><option value="kok">孔卡尼语</option><option value="ky">吉尔吉斯语</option><option value="lt">立陶宛语</option><option value="lv">拉脱维亚语</option><option value="mi">毛利语</option><option value="mk"><wbr>马其顿语</option><option value="mn">蒙古语</option><option value="mr">马拉地语</option><option value="ms">马来语</option><option value="mt">马耳他语</option><option value="nb">挪威语(伯克梅尔)</option><option value="nl">荷兰语</option><option value="ns"><wbr>北梭托语</option><option value="pa">旁遮普语</option><option value="pl">波兰语</option><option value="pt">葡萄牙语</option><option value="qu">克丘亚语</option><option value="ro">罗马尼亚语</option><option value="sa">梵文</option><option value="se">北萨摩斯<wbr>语</option><option value="sk">斯洛伐克语</option><option value="sl">斯洛文尼亚语</option><option value="sq">阿尔巴尼亚语</option><option value="sv">瑞典语</option><option value="sw">斯瓦希里语</option><option value="syr">叙利亚语</option><option value="ta"><wbr>泰米尔语</option><option value="te">泰卢固语</option><option value="tl">塔加路语</option><option value="tn">茨瓦纳语</option><option value="tr">土耳其语</option><option value="ts">宗加语</option><option value="tt">鞑靼语</option><option value="uk">乌克兰语</option><option value="ur"><wbr>乌都语</option><option value="uz">乌兹别克语</option><option value="vi">越南语</option><option value="xh">班图语</option><option value="zu">祖鲁语</option> </select> <u></u> <u></u> <select> <option value="YouDao">有道翻译</option> <option value="BaiDu">百度翻译</option> <option value="Bing">必应翻译</option> <option value="Google">谷歌翻译</option> <option value="GoogleCN">谷歌翻译(国内)</option> </select> <u></u> <u></u>翻译 <u></u><u></u> <u></u> <u></u> <u></u>朗读<u></u> <u></u>复制<u></u> <u></u> <u></u> <u></u> <u></u> <u></u>正在查询,请稍候……<u></u> <u></u> <u></u> <u></u><u></u> <u></u>重试<u></u> <u></u> <u></u> <u></u> <u></u><u></u> <u></u> <u></u>朗读<u></u> <u></u>复制<u></u> <u></u> <u></u> <u></u> <u></u> <u></u> <u></u> <u></u>复制<u></u> <u></u> <u></u> <u></u> <u></u> <u></u>朗读<u></u> <u></u>复制<u></u> <u></u> <u></u> <u></u> <u></u> <u></u> <u></u>via <a></a><u></u> <u></u> <u></u> <u></u>译<u></u> <u></u></blockquote></div><br></div>
</blockquote></div></div>