[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Potential Mono removal from 32-bit big endian PowerPC in next upload



On Mon, Aug 24, 2015 at 11:10:34PM +0100, Jo Shields wrote:
> 
> 
> On 24/08/15 22:49, Lennart Sorensen wrote:
> >On Sun, Aug 16, 2015 at 08:59:19AM +0100, Jo Shields wrote:
> >>Dear PPC porter people,
> >>
> >>The major Mono version pending in experimental fixes GCC5 and fixes
> >>reproducible builds and a dozen other bugs, so I don't want to delay it.
> >>
> >>It doesn't build on PowerPC any more, and nobody upstream is working on it.
> >>
> >>We recently introduced ppc64el, which is working, but there's nobody who
> >>cares about 32-bit BE - the community contributor who gave us our ppc64el
> >>port is working on ppc64, but simply isn't interested in 32-bit.
> >>
> >>I've fixed up the build such that there is a single failure, a single
> >>assert, still breaking the build (and about 31 of the tests in the runtime
> >>test suite): https://gist.githubusercontent.com/directhex/f890350006e72be706af/raw/2bae2f1ea487f4f6c6f7d5ccb256feda35627c28/assert
> >>
> >>This state of the art (which contains patches beyond what is in
> >>Experimental) is at https://github.com/directhex/mono-1/tree/ppc32
> >>
> >>I've hit the limits of my ability to debug and fix. I need someone familiar
> >>with PPC porting to tell me what magic switch to flip to repair it, within a
> >>short period of time - otherwise I'll be foced to simply mark 32-bit BE
> >>powerpc as a dead arch & stop trying to support it in Mono and its 100
> >>related packages.
> >I am having no luck building it so far.  It says it needs mcs 3.8 or
> >higher and of course only 3.2 is available until the new one is built.
> 
> "make get-monolite-latest" will download a bootstrap compiler from Mono CI,
> removing that requirement. Requires curl or wget.

I did that, and got a ton of other errors.

The readme file said to use:

make get-monolite-latest
make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe

Looks like this:

...
Bootstrap compiler: Mono C# compiler version 4.1.0.0
MCS     [basic] basic.exe
warning CS8001: SDK path could not be resolved
warning CS1685: The predefined type `System.Security.Permissions.HostProtectionAttribute' is defined multiple times. Using definition from `mscorlib.dll'
/tmp/mono-1/mcs/class/lib/monolite/mscorlib.dll (Location of the symbol related to previous warning)
/tmp/mono-1/mcs/class/lib/monolite/System.dll (Location of the symbol related to previous warning)

Unhandled Exception:
Mono.CSharp.InternalErrorException: constant.cs(1928,24): Mono.CSharp.DecimalConstant.Emit(Mono.CSharp.EmitContext) ---> Mono.CSharp.InternalErrorException: constant.cs(1929,3): ---> System.OverflowException: Overflow_Int32
  at System.Decimal.ToInt32 (Decimal d) [0x00000] in <filename unknown>:0 
  at System.Decimal.op_Explicit (Decimal value) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.DecimalConstant.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Argument.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Arguments.Emit (Mono.CSharp.EmitContext ec, Boolean dup_args, Boolean prepareAwait) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.CallEmitter.EmitPredefined (Mono.CSharp.EmitContext ec, Mono.CSharp.MethodSpec method, Mono.CSharp.Arguments Arguments, Boolean statement, Nullable`1 loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.CallEmitter.Emit (Mono.CSharp.EmitContext ec, Mono.CSharp.MethodSpec method, Mono.CSharp.Arguments Arguments, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.UserOperatorCall.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Binary.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.If.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.If.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ParametersBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MethodData.Emit (Mono.CSharp.TypeDefinition parent) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MethodOrOperator.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Method.Emit () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.CSharp.Method.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeDefinition.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ClassOrStruct.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Class.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeDefinition.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ModuleContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.AssemblyDefinition.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.AssemblyDefinitionStatic.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: Mono.CSharp.InternalErrorException: constant.cs(1928,24): Mono.CSharp.DecimalConstant.Emit(Mono.CSharp.EmitContext) ---> Mono.CSharp.InternalErrorException: constant.cs(1929,3): ---> System.OverflowException: Overflow_Int32
  at System.Decimal.ToInt32 (Decimal d) [0x00000] in <filename unknown>:0 
  at System.Decimal.op_Explicit (Decimal value) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.DecimalConstant.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Argument.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Arguments.Emit (Mono.CSharp.EmitContext ec, Boolean dup_args, Boolean prepareAwait) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.CallEmitter.EmitPredefined (Mono.CSharp.EmitContext ec, Mono.CSharp.MethodSpec method, Mono.CSharp.Arguments Arguments, Boolean statement, Nullable`1 loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.CallEmitter.Emit (Mono.CSharp.EmitContext ec, Mono.CSharp.MethodSpec method, Mono.CSharp.Arguments Arguments, Location loc) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.UserOperatorCall.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Expression.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Binary.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.If.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.If.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ParametersBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MethodData.Emit (Mono.CSharp.TypeDefinition parent) [0x00000] in <filename unknown>:0 
  at Mono.CSharp.MethodOrOperator.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Method.Emit () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.CSharp.Method.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeDefinition.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ClassOrStruct.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Class.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeDefinition.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.ModuleContainer.EmitContainer () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.AssemblyDefinition.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.AssemblyDefinitionStatic.Emit () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 
../build/executable.make:113: recipe for target '../class/lib/basic/basic.exe' failed
make[7]: *** [../class/lib/basic/basic.exe] Error 1
../build/rules.make:143: recipe for target 'do-all' failed
make[6]: *** [do-all] Error 2
build/rules.make:164: recipe for target 'all-recursive' failed
make[5]: *** [all-recursive] Error 1
Makefile:44: recipe for target 'profile-do--basic--all' failed
make[4]: *** [profile-do--basic--all] Error 2
Makefile:40: recipe for target 'profiles-do--all' failed
make[3]: *** [profiles-do--all] Error 2
Makefile:567: recipe for target 'all-local' failed
make[2]: *** [all-local] Error 2
make[2]: Leaving directory '/tmp/mono-1/runtime'
Makefile:533: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/mono-1'
Makefile:461: recipe for target 'all' failed
make: *** [all] Error 2

Any idea?

-- 
Len Sorensen


Reply to: