[Mono-bugs] [Bug 53245][Nor] New - Fails to build from CVS

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Fri, 23 Jan 2004 07:22:34 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by eb@zombie.inka.de.

http://bugzilla.ximian.com/show_bug.cgi?id=53245

--- shadow/53245	2004-01-23 07:22:34.000000000 -0500
+++ shadow/53245.tmp.24077	2004-01-23 07:22:34.000000000 -0500
@@ -0,0 +1,138 @@
+Bug#: 53245
+Product: Mono/Class Libraries
+Version: unspecified
+OS: 
+OS Details: Debian/Sid/i386
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: eb@zombie.inka.de               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Fails to build from CVS
+
+Hello,
+
+I tried to build mono and mcs from the current CVS. I have already a
+working mono/mcs installation from 14.01.2004 in /usr/{bin,lib}. Having
+a read-only /usr, I try to build in two steps.
+
+ 1. Build as user
+ 2. Install as root
+
+This methods works with 99.9% of OS software out there. But not with
+mono. What happens: the build process tries to install components at
+build time and reuse them in the same build process. This would most
+likely work if you build as root, have write permissions to the target
+directory and there are no other Mono components in $PATH or /usr/lib.
+Not so when building separately. But let me continue...
+
+cd mcs
+./configure --prefix=/tmp --profile=atomic
+cd ../mono
+./configure --prefix=/tmp
+make fullbuild
+<mono itself builds fine, entering mcs directory>
+
+mcs   /lib:/tmp/lib -g /target:exe /out:mcs.exe AssemblyInfo.cs
+anonymous.cs assign.cs attribute.cs driver.cs cs-tokenizer.cs cfold.cs
+class.cs codegen.cs const.cs constant.cs convert.cs decl.cs delegate.cs
+enum.cs ecore.cs expression.cs flowanalysis.cs genericparser.cs
+interface.cs iterators.cs literal.cs location.cs modifiers.cs namespace.cs
+parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs
+typemanager.cs symbolwriter.cs tree.cs cs-parser.cs
+Compilation succeeded
+make[1]: Leaving directory `/home/inet/cvs/mcs/mcs'
+(cd ../mcs/class/corlib; make MCS=mcs BOOTSTRAP_MCS=mcs)
+make[1]: Entering directory `/home/inet/cvs/mcs/class/corlib'
+mcs /nowarn:649 /nowarn:169 -d:INSIDE_CORLIB  /lib:/tmp/lib -g /noconfig
+/unsafe /nostdlib /target:library /out:../../class/lib/mscorlib.dll
+@../../build/deps/corlib.dll.response
+System.Security.Cryptography/HMACSHA1.cs(110) error CS0246: Cannot find
+type `HMAC'
+Compilation failed: 1 error(s), 0 warnings
+make[1]: *** [../../class/lib/mscorlib.dll] Error 1
+make[1]: Leaving directory `/home/inet/cvs/mcs/class/corlib'
+make: *** [mcs-tree-safe-build] Error 2
+
+File. Using the default profile in the hope that it will get it right
+now, and does continue. 
+
+make fullbuild PROFILE=default
+
+HOORAY. But, few steps later...
+
+make[3]: Entering directory `/home/inet/cvs/mcs/class/I18N/Common'
+MONO_PATH="../../../class/lib:$MONO_PATH" mono  ../../../mcs/mcs.exe
+/r:mscorlib.dll  -d:NET_1_1 -d:ONLY_1_1 -g /noconfig  /target:library
+/out:../../../class/lib/I18N.dll @I18N.dll.sources
+Corlib not in sync with this runtime: expected corlib version 8, found 10.
+Download a newer corlib or a newer runtime at http://go-mono/daily.
+
+Okay, trying to work around it...
+
+export LD_LIBRARY_PATH=/tmp/lib
+export PATH=/tmp/bin:$PATH
+
+make fullbuild PROFILE=default
+rm ../mcs/class/lib/mscorlib.dll ../mcs/mcs/mcs.exe runtime/*dll
+runtime/*.exe > /dev/null 2>&1; echo
+
+(cd ../mcs/jay; make)
+make[1]: Entering directory `/home/inet/cvs/mcs/jay'
+make[1]: Leaving directory `/home/inet/cvs/mcs/jay'
+(cd ../mcs/mcs; make MCS=mcs BOOTSTRAP_MCS=mcs)
+make[1]: Entering directory `/home/inet/cvs/mcs/mcs'
+mcs   -d:NET_1_1 -d:ONLY_1_1 -g /target:exe /out:mcs.exe AssemblyInfo.cs
+anonymous.cs assign.cs attribute.cs driver.cs cs-tokenizer.cs cfold.cs
+class.cs codegen.cs const.cs constant.cs convert.cs decl.cs delegate.cs
+enum.cs ecore.cs expression.cs flowanalysis.cs genericparser.cs
+interface.cs iterators.cs literal.cs location.cs modifiers.cs namespace.cs
+parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs
+typemanager.cs symbolwriter.cs tree.cs cs-parser.cs
+
+** (/usr/lib/mono-mcs/bin/mcs.exe:19634): WARNING **: Could not find
+assembly System
+cannot open assembly /usr/lib/mono-mcs/bin/mcs.exe
+
+What? Looking in /tmp/bin: there is NO mcs script or link, there is only
+mcs.exe. So copying a wrapper to /tmp/bin/mcs and adapting it:
+
+#!/bin/sh
+LD_LIBRARY_PATH=/tmp/lib MONO_PATH=/tmp/lib:$MONO_PATH /tmp/bin/mono
+/tmp/bin/mcs.exe  "$@"
+
+AND now? Should I build as root with /usr prefix and let it overwrite
+files in /usr?
+
+From what I have seen before, the answers to complaints have been:
+
+ - just use binaries from the dailies (haha)
+ - CVS is not for users (well, how developers do manage it then? I do
+   not see me as a stupid just-user ;), but with Mono I am going to
+   loose my temper)
+ - the only supported way is running "make fullbuild" from the CVS tree
+   (which does not work, see above)
+ - just built from the daily source (there are no mcs dailies and see
+   above, not possible to build from CVS)
+ - use atomic profile (does not help, see above. And were are they
+   documented, exactly?  From looking at the profile files, I feel that
+   atomic should be appropriate).
+
+And what is finaly in /tmp/...
+
+/tmp/bin:
+mcs  mcs.exe  mint  mono  monodis  monograph  monosn  pedump
+
+## mcs script from me
+
+/tmp/lib:
+libmint.a   libmint.so    libmint.so.0.0.0        libmono-profiler-cov.la 
+libmono-profiler-cov.so.0      libmono.a   libmono.so    libmono.so.0.0.0
+libmint.la  libmint.so.0  libmono-profiler-cov.a  libmono-profiler-cov.so 
+libmono-profiler-cov.so.0.0.0  libmono.la  libmono.so.0  mscorlib.dll