[Mono-list] build of mono 1.1.7 & 1.1.8.2 fails on Solaris: failure to compile mcs

Gerard Tromp mono.lists at sanger.med.wayne.edu
Fri Jul 15 16:01:34 EDT 2005


Greetings,


I tried to mail this in June and the request never appeared on the list. I
have since tried to build mono 1.1.8.2 and the build fails in exactly the
same place.

The build fails because make fails to build mcs. The failure appears to be
in the scripts and configuration.

I would greatly appreciate some insights.

Gerard Tromp

-----Original Message-----
From: Gerard Tromp [mailto:gerard.tromp at sanger.med.wayne.edu]
Sent: Thursday, June 02, 2005 11:54
To: mono-list at lists.ximian.com
Subject: mono 1.1.7 build on Solaris fails


Greetings,

Tying to build mono 1.1.7 on Sun Sparc Solaris 2.6.
uname -m = sun4m
uname -r = 5.6
uname -s = SunOS

Using
gcc: 		3.4.0
gmake: 	GNU Make 3.80


The build fails when trying to make the mcs compiler.
I have added lines of +++++ before and after the point of failure below. I
alos debugged the process further and it seems that the build is guaranteed
to fail because a make does not have arule for making the target:
./build/deps/basic-profile-check.out.

Is this problem due to the Solaris platform or do most people actually end
up using the pre-compiled binaries?

Sincerely,

Gerard Tromp

Making all in runtime
gmake[2]: Entering directory `/home/tromp/software/mono-1.1.7/runtime'
d=`cd ../support && pwd`; \
sed
's,target="libMonoPosixHelper[^"]*",target="'$d/libMonoPosixHelper.la'",'
../data/config > wrapper-config
if test -z ""; then :; else \
  mv wrapper-config wrapper-configt; \
  sed 's,<configuration>,& <dllmap dll="gdiplus.dll" target="" />,'
wrapper-configt > wrapper-config; \
  rm -f wrapper-configt; \
fi
if test -w ../mcs; then :; else chmod -R +w ../mcs; fi
d=`pwd`; cd ../mcs && gmake PROFILES='default net_2_0' all-profiles
gmake[3]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
gmake profile-do--default--all profile-do--net_2_0--all
gmake[4]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
gmake PROFILE=basic all
gmake[5]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
usage: mcs -Vcdp -a 'string' [-n 'name'] files...
gmake[6]: *** [build/deps/basic-profile-check.exe] Error 1
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
*** The compiler 'mcs' doesn't appear to be usable.
*** Falling back to using pre-compiled binaries.  Be warned, this may not
work.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[7]: Nothing to be done for `all-local'.
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[6]: `cs-parser.cs' is up to date.
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[7]: Nothing to be done for `all-local'.
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[7]: Nothing to be done for `all-local'.
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/class'
gmake[7]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/corlib'
gmake all-local
gmake[8]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/corlib'
gmake[8]: Nothing to be done for `all-local'.
gmake[8]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/corlib'
gmake[7]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/corlib'
gmake[7]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake all-local
gmake[8]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake[8]: Nothing to be done for `all-local'.
gmake[8]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake[7]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake[7]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System.XML'
gmake all-local
gmake[8]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System.XML'
gmake[8]: Nothing to be done for `all-local'.
gmake[8]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System.XML'
gmake[7]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System.XML'
gmake[7]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake all-local
gmake[8]: Entering directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake[8]: Nothing to be done for `all-local'.
gmake[8]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake[7]: Leaving directory
`/home/tromp/software/mono-1.1.7/mcs/class/System'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/class'
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/class'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/class'
gmake all-local
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[5]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
gmake PROFILE=net_1_1_bootstrap all
gmake[5]: Entering directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[7]: Nothing to be done for `all-local'.
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/jay'
gmake[6]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake all-local
gmake[7]: Entering directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
MONO_PATH="../class/lib/basic:$MONO_PATH"
/home/tromp/software/mono-1.1.7/runtime/mono-wrapper
../class/lib/basic/mcs.exe   -d:NET_1_1 -d:ONLY_1_1 -debug /target:exe
/out:mcs.exe cs-parser.cs  @mcs.exe.sources
Segmentation Fault - core dumped
gmake[7]: *** [../class/lib/net_1_1_bootstrap/mcs.exe] Error 139
gmake[7]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[6]: *** [all.real] Error 2
gmake[6]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs/mcs'
gmake[5]: *** [all-recursive] Error 1
gmake[5]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[4]: *** [profile-do--net_1_1_bootstrap--all] Error 2
gmake[4]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[3]: *** [profiles-do--all] Error 2
gmake[3]: Leaving directory `/home/tromp/software/mono-1.1.7/mcs'
gmake[2]: *** [all-local] Error 2
gmake[2]: Leaving directory `/home/tromp/software/mono-1.1.7/runtime'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/tromp/software/mono-1.1.7'
gmake: *** [all] Error 2

debugging the make process at the point of failure shows:
========================================================
gmake -n PROFILE=basic all
ok=:; \
rm -f ./build/deps/basic-profile-check.exe
./build/deps/basic-profile-check.out; \
gmake -s ./build/deps/basic-profile-check.out || ok=false; \
rm -f ./build/deps/basic-profile-check.exe
./build/deps/basic-profile-check.out; \
if $ok; then :; else \
    echo "*** The compiler 'mcs' doesn't appear to be usable." 1>&2 ; \
    if test -f ./class/lib/monolite/mcs.exe; then \
        echo "*** Falling back to using pre-compiled binaries.  Be warned,
this may not work." 1>&2 ; \
        ( cd ./jay && gmake ); \
        ( cd ./mcs && gmake PROFILE=basic cs-parser.cs ); \
        ( cd ./class/lib/monolite/ && cp *.exe *.dll ../basic ); \
        case `ls -1t ./class/lib/basic/mcs.exe ./mcs/cs-parser.cs | sed 1q`
in \
        ./class/lib/basic/mcs.exe) : ;; \
        *) sleep 5; cp ./class/lib/monolite/mcs.exe ./class/lib/basic ;; \
        esac; \
    else \
                echo "*** You need a C# compiler installed to build MCS.
(make sure mcs works from the command line)" 1>&2 ; \
                echo "*** Read INSTALL.txt for information on how to
bootstrap a Mono installation." 1>&2 ; \
        exit 1; fi; fi
mcs /out:build/deps/basic-profile-check.exe
build/deps/basic-profile-check.cs
mono build/deps/basic-profile-check.exe > build/deps/basic-profile-check.out
2>&1
:
:
set . $MAKEFLAGS; final_exit=:; \
case $2 in --unix) shift ;; esac; \
case $2 in *=*) dk="exit 1" ;; *k*) dk=: ;; *) dk="exit 1" ;; esac; \
list='jay mcs class'; for d in $list ; do \
    (cd $d && gmake all) || { final_exit="exit 1"; $dk; } ; \
done; \
$final_exit
=============================================================

OK. So we check out what is happening with the line:
------------------------------------------------
gmake -s ./build/deps/basic-profile-check.out || ok=false;

gmake ./build/deps/basic-profile-check.out
gmake: *** No rule to make target `build/deps/basic-profile-check.out'.
Stop.

Therefore, the build of mcs is guaranteed to fail on Solaris.








More information about the Mono-list mailing list