[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