[Mono-list] Compiling Mono on OpenSolaris

Andreas Färber andreas.faerber at web.de
Thu May 22 12:18:23 EDT 2008


Hello,

This mail is to share info on building Mono 1.9.1 on OpenSolaris  
2008-05, i86 and amd64.

OpenSolaris uses GNU tar and GNU make by default, so that the Solaris  
workarounds are no longer necessary in that area.

OpenSolaris still has a /usr/bin/mcs command that interferes with  
bootstrapping, if you have the root role you can temporarily rename  
that file.
OpenSolaris as installed from CD does not include pkg-config, it gets  
installed by updating "entire" in Package Manager; if compiling it  
yourself instead, configure Mono with PKG_CONFIG_PATH=/usr/lib/ 
pkgconfig for the 32-bit system packages to be picked up.

Compiling with Mono's libgc breaks the build, resulting in "error  
CS8025: Parsing error".
Compiling against OpenSolaris' libgc breaks the build with two  
undefined references (...pthread_detach and another).
Compiling and using Boehm GC 7.1 (using appropriate CPPFLAGS and  
LDFLAGS) works fine, sigaltstack is disabled by default then.

For amd64, use Boehm GC 7.0. 7.1's libatomic_ops includes xmmintrin.h,  
which is unavailable; modifying 7.1's standard_ao_double_t.h to not  
use that __x86_64__ section appears to be another option.
Configure with PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig so that the 64- 
bit ones are picked up, and specify --with-sigaltstack=no (to avoid a  
segmentation fault). Like for Solaris, specify -m64 for CFLAGS and  
friends. Export LD_LIBRARY_PATH=/usr/sfw/lib/amd64 for Mono to find  
the right libgcc_s.so.1 (LD_LIBRARY_PATH64 does not seem to work).

For either architecture, if you are installing to your own prefix  
(e.g., /opt/mono), consider adding -R/opt/mono/lib (or whatever you  
used for --libdir, e.g. /opt/mono/lib/amd64) to your LDFLAGS to save  
you some $LD_LIBRARY_PATH trouble later on.

Andreas



More information about the Mono-list mailing list