[Mono-list] Porting to Linux on S/390

Paolo Molaro lupus@ximian.com
Thu, 26 Sep 2002 11:09:59 +0200


On 09/25/02 Ferguson, Neale wrote:
>  I'm just starting out porting mono to S/390. So far:
> - I downloaded mcs & mono source 
> - I've created the necessary trampoline stuff in mono/arch/s390 and am ready
> to start the build process
> - make of mono completes cleanly (mint is one of the things that were built)
> - contents of runtime still contains win386 stuff

If you started from the mono 0.15 release you'll have mcs.exe
and a bunch of .dll in the runtime directory. While they use the same
PE/COFF file format of native win386 executables, they are
actually cross-platform .net assemblies, so you can use them fine on
S/390.

> - mcs will not build until a mcs exists to build it with

You'll need mcs.exe, corlib.dll and System.dll from the runtime
directory in the mono-0.15 tarball. Note: if you used the cvs version
you'll need newer versions of both mcs and corlib. You may compile them
yourself if you have access to a linux/x86 box or a windows box.
You may also use the nightly snapshots at http://go-mono.com/snapshots/.

> So where do I go from here? How do I build an mcs that I can use to
> "bootstrap" everything else? How do I use mint?
> 
> I've done searches on the lists but can't seem to get a concise guide to the
> porting process.

We have this page: http://www.go-mono.com/porting.html.
I'll need to expand it to cover testing.
Anyway, once you have installed a matching mcs.exe and
corlib.dll/System.dll, you can start running some simple tests.
You can get a tarball of precompiled tests here:
http://www.go-mono.com/archive/mono-tests.tar.gz.
You may simply run mint test.exe for each test and check it returns a 0
exit code.
You may unpack them into the mono/mono/tests directory and run make test
in there. Once you get 100+ tests passing you may try to compile
something with mcs, just run it as follows:

	mint mcs.exe test.cs

If you can recompile most of the samples and run them successfully,
you'll want to bootstrap mcs: recompile it on your platform and use the
generated mcs to compile itself again. At that point you'll only need to
recompile corlib.dll to make your platform fully self-bootstrapping.
Running make -f makefile.gnu in the mcs toplevel dir should automate the
process for you.
Let us know how far you get and feel free to ask more questions on the
process.

lupus

-- 
-----------------------------------------------------------------
lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better