[Mono-devel-list] Fwd: Building mono on Solaris 10 x86/x64 : What I did, with patches

Jeremy Teo white.wristband at gmail.com
Mon Jun 27 13:01:42 EDT 2005

Sorry, wrong mailing list.

---------- Forwarded message ----------
From: Jeremy Teo <white.wristband at gmail.com>
Date: Jun 28, 2005 12:58 AM
Subject: Building mono on Solaris 10 x86/x64 : What I did, with patches
To: mono-list at lists.ximian.com

Hi folks,

After a whole weekend of ugly hackey, I managed to get mono to
build and run on Solaris 10 x86/x64. It fails some tests though, but
it seems good enough to build and run GtkDemo.exe from gtk-sharp. Oh
and of course i managed to build gtk-sharp on the same environment.

Without much further ado, this is what I did.

1) Must build with --with-tls=pthreads on Solaris x86/x64
ie. configure must be called with "--with-tls=pthreads"

I would appreciate it if someone who knows how to hack autotools make
this the default for Solaris 10 x64?

2) Don't set FILE_OFFSET_BITS to 64
The current configure script sets FILE_OFFSET_BITS to 64, but on
Solaris, this is only allowed if you're compiling for ILP64 (i'm no
expert, but this means 64bit code. eg. -m64 for gcc?)

3) The bundled gc (boehm garbage collector) doesn't build.

I suspect this is due to the build system again. I worked around this
by building boehm gc version 6.3alpha1 (which is identical to what you
folks bundle in the tarball),
and specifying "--with-gc=boehm".

4) libtool is generated wrongly / configured wrongly.
On Solaris 10, gcc uses the system linker, also named "ld". In order
to generate shared libraries, the proper flag to pass to gcc (which
then passes it to the system linker) is "-Wl,-G", not "-shared" as on
other platforms.

I hacked this manually in the generated libtool.

5) The shared library for libc is libc.so.1
For the "config" file found in data/config, libc should be set to
libc.so.1 for Solaris, instead of libc.so.6

Is this autogenerated? Can someone in the know fix this? (or teach me how :) )

6) The filepath to install-sh for the mcs subtree is wrong

The various Makefiles in the mcs subtree try to call "./install-sh",
which obviously fails since install-sh is in the top source directory.

I hacked around this by setting $INSTALL correctly in config.make.

7) exceptions-x86.c had to be patched.
Patch is attached to this email.

8) socket-io.c had to be patched
Patch is attached to this email. Probably not correct, but works for now.

9) mph.h had to be patched
Patch is attached. Could someone explain to me the significance of
defining MPH_INTERNAL?

Thank you all again for your work. :)

I would be happy to work with you folks to make Mono build cleanly and
pass all the tests on Solaris 10. (incidentally, once it does, i will
package it for www.blastwave.org. Testers are welcome too.)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: exceptions-x86.patch
Type: text/x-patch
Size: 2403 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050628/d6928db6/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: socket-io.patch
Type: text/x-patch
Size: 416 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050628/d6928db6/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mph.patch
Type: text/x-patch
Size: 425 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050628/d6928db6/attachment-0002.bin 

More information about the Mono-devel-list mailing list