https://bugzilla.novell.com/show_bug.cgi?id=347189
User [EMAIL PROTECTED] added comment https://bugzilla.novell.com/show_bug.cgi?id=347189#c347187 Summary: Cannot compile Berkeley DB for .NET Product: Mono: Compilers Version: 1.2.6 Platform: x86 OS/Version: Ubuntu Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] QAContact: [EMAIL PROTECTED] Found By: --- This was seen on Ubuntu 7.10 with Mono 1.2.6 preview 3. Depending on the order of the source files passed to gmcs, the compiler crashes with different kinds of exceptions. To reproduce: 1) Get source code from CVS: cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/libdb-dotnet login hit Enter (empty password). cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/libdb-dotnet co -P libdb-dotnet 2) cd to src directory 3) open a terminal and run xbuild libdb_dotNET45.csproj This will report success, but there is no assembly generated (bug in xbuild, I guess). Then copy the gmcs commandline generated by xbuild (and written to the console) back into the terminal and apply the fix for xbuild bug #347187 (define symbols), the command line should look like this (quotes around the defines symbols): gmcs /noconfig /debug:full /debug+ /optimize- /out:bin/Debug/libdb_dotNET45.dll Properties/AssemblyInfo45.cs DB_LOCK.cs DB_LOCK_WRAP.cs DB_LOG.cs DB_LOG_WRAP.cs DB_MPOOL.cs DB.cs DB_ENV.cs DB_ENV_Wrap.cs DB_MPOOL_WRAP.cs DB_SEQUENCE.cs DB_SEQUENCE_Wrap.cs DB_TXN.cs DB_TXN_Wrap.cs DB_Wrap.cs DBC.cs DBC_Wrap.cs Common.cs DBT.cs LibDb.cs Util.cs XA.cs /target:library /unsafe+ /define:"TRACE;DEBUG;BDB_PACK8;BDB_4_5_20;_USE_32BIT_TIME_T" /reference:/opt/mono-1.2.6/lib/mono/gac/System/2.1.0.0__b77a5c561934e089/System.dll /warn:4 Running this will result in gmcs crashing with an unhandled exception: Unhandled Exception: Mono.CSharp.InternalErrorException: DB_MPOOL.cs(111,16): BerkeleyDb.DB_MPOOLFILE.fileid ---> System.NullReferenceException: Object reference not set to an instance of an object at Mono.CSharp.Const.Define () [0x00000] at Mono.CSharp.TypeContainer.FindMembers (MemberTypes mt, BindingFlags bf, System.Reflection.MemberFilter filter, System.Object criteria) [0x00000] at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] at Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] at Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] at Mono.CSharp.Expression.MemberLookup (System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] at Mono.CSharp.Expression.MemberLookup (System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, Location loc) [0x00000] at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec, Mono.CSharp.Expression right_side) [0x00000] at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec) [0x00000] at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00000] at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000] at Mono.CSharp.Expression.ResolveAsConstant (Mono.CSharp.EmitContext ec, Mono.CSharp.MemberCore mc) [0x00000] at Mono.CSharp.FixedField.Define () [0x00000] at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers () [0x00000] --- End of inner exception stack trace --- at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers () [0x00000] at Mono.CSharp.TypeContainer.DefineContainerMembers (Mono.CSharp.MemberCoreArrayList mcal) [0x00000] at Mono.CSharp.TypeContainer.DoDefineMembers () [0x00000] at Mono.CSharp.TypeContainer.DefineMembers () [0x00000] at Mono.CSharp.RootContext.PopulateTypes () [0x00000] at Mono.CSharp.Driver.MainDriver (System.String[] args) [0x00000] at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] Now, move the file Common.cs to another (earlier) position in the command line, like this: gmcs /noconfig /debug:full /debug+ /optimize- /out:bin/Debug/libdb_dotNET45.dll Properties/AssemblyInfo45.cs Common.cs DB_LOCK.cs DB_LOCK_WRAP.cs DB_LOG.cs DB_LOG_WRAP.cs DB_MPOOL.cs DB.cs DB_ENV.cs DB_ENV_Wrap.cs DB_MPOOL_WRAP.cs DB_SEQUENCE.cs DB_SEQUENCE_Wrap.cs DB_TXN.cs DB_TXN_Wrap.cs DB_Wrap.cs DBC.cs DBC_Wrap.cs DBT.cs LibDb.cs Util.cs XA.cs /target:library /unsafe+ /define:"TRACE;DEBUG;BDB_PACK8;BDB_4_5_20;_USE_32BIT_TIME_T" /reference:/opt/mono-1.2.6/lib/mono/gac/System/2.1.0.0__b77a5c561934e089/System.dll /warn:4 Recompile, gmcs crashes with another unhandled exception: Unhandled Exception: Mono.CSharp.InternalErrorException: DB_Wrap.cs(2222,7): BerkeleyDb.DbFile<D,C>.OpenCursor(BerkeleyDb.DB_TXN*, DbFileCursor<C,D>.CreateFlags) ---> System.InvalidOperationException: Operation is not valid due to the current state of the object at System.Type.GetGenericTypeDefinition () [0x00000] at System.Reflection.Emit.TypeBuilder.GetGenericTypeDefinition () [0x00000] at Mono.CSharp.ConstructedType..ctor (System.Type t, Mono.CSharp.TypeArguments args, Location l) [0x00000] at Mono.CSharp.MemberAccess.ResolveNamespaceOrType (IResolveContext rc, Boolean silent) [0x00000] at Mono.CSharp.MemberAccess.ResolveAsTypeStep (IResolveContext ec, Boolean silent) [0x00000] at Mono.CSharp.Expression.ResolveAsBaseTerminal (IResolveContext ec, Boolean silent) [0x00000] at Mono.CSharp.Expression.ResolveAsTypeTerminal (IResolveContext ec, Boolean silent) [0x00000] at Mono.CSharp.Parameter.Resolve (IResolveContext ec) [0x00000] at Mono.CSharp.Parameters.Resolve (IResolveContext ec) [0x00000] at Mono.CSharp.InterfaceMemberBase.DefineParameters (Mono.CSharp.Parameters parameters) [0x00000] at Mono.CSharp.MethodCore.CheckBase () [0x00000] at Mono.CSharp.MethodOrOperator.CheckBase () [0x00000] at Mono.CSharp.MethodOrOperator.Define () [0x00000] at Mono.CSharp.Method.Define () [0x00000] at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers () [0x00000] --- End of inner exception stack trace --- at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers () [0x00000] at Mono.CSharp.TypeContainer.DefineContainerMembers (Mono.CSharp.MemberCoreArrayList mcal) [0x00000] at Mono.CSharp.Class.DefineContainerMembers (Mono.CSharp.MemberCoreArrayList list) [0x00000] at Mono.CSharp.TypeContainer.DoDefineMembers () [0x00000] at Mono.CSharp.Class.DoDefineMembers () [0x00000] at Mono.CSharp.TypeContainer.DefineMembers () [0x00000] at Mono.CSharp.RootContext.PopulateTypes () [0x00000] at Mono.CSharp.Driver.MainDriver (System.String[] args) [0x00000] at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
