[Mono-list] Mono doesn't work on PowerPC

Yury Serdyuk Yury at serdyuk.botik.ru
Fri Sep 5 07:36:04 EDT 2008


Hi !

I have proceed further trying to build Mono on ppc64 architecture.
Problem is with compiling the following fragment of code
(extracted from the expression.cs ):

//
// expression.cs: Expression representation for the IL tree.
//
// Author:
//   Miguel de Icaza (miguel at ximian.com)
//   Marek Safar (marek.safar at gmail.com)
//
// Copyright 2001, 2002, 2003 Ximian, Inc.
// Copyright 2003-2008 Novell, Inc.
//
#define USE_OLD

namespace Mono.CSharp {
        using System;

        //
        //   Unary implements unary expressions.
        //
        public class Unary { //   : Expression {

                void TryReduceConstant ( )
                {
                  uint  long_constant = 9223372036854775808;
                        //if ( ull.Value == 9223372036854775808 )
                        //    return null;

                }

        }

}

During the build phase, I've got:

$ MONO_PATH="/home/user002/mono-2.0/mcs/class/lib/monolite:$MONO_PATH" 
/home/user002/mono-2.0/mono/mini/mono 
/home/user002/mono-2.0/mcs/class/lib/monolite/mcs.exe expr3.cs
** Message: Unknown errno: Success

expr3.cs(32,1): error CS8025: Parsing error** Message: Unknown errno: 
Identifier removed

expr3.cs(32,1): error CS8025: Parsing error** Message: Unknown errno: 
Identifier removed

Compilation failed: 1 error(s), 0 warnings** Message: Unknown errno: No 
message of desired type

Compilation failed: 1 error(s), 0 warnings** Message: Unknown errno: No 
message of desired type


** ERROR **: file mini.c: line 13657 (remove_signal_handler): assertion 
failed: (sigaction (signo, &sa, NULL) != -1)
aborting...
Stacktrace:


Native stacktrace:

        /home/user002/mono-2.0/mono/mini/mono [0x10024844]
        [0x100350]
        [0x1]
        /lib/libc.so.6(abort+0x23c) [0xfd17ddc]
        /lib/libglib-2.0.so.0(g_logv+0x424) [0xfc124b4]
        /lib/libglib-2.0.so.0(g_log+0x68) [0xfc12528]
        /lib/libglib-2.0.so.0(g_assert_warning+0x8c) [0xfc125cc]
        /home/user002/mono-2.0/mono/mini/mono [0x10154480]
        /home/user002/mono-2.0/mono/mini/mono [0x10154500]
        /home/user002/mono-2.0/mono/mini/mono(mono_main+0x1098) [0x10012738]
        /home/user002/mono-2.0/mono/mini/mono [0x10010f70]
        /lib/libc.so.6 [0xfcfde0c]
        /lib/libc.so.6 [0xfcfe060]

** (process:17951): ERROR (recursed) **: file mini-exceptions.c: line 
1287 (mono_handle_native_sigsegv): assertion failed: (res != -1)
aborting...
Aborted

In fact, problem is with 19-digits uint constant.
If we put 18 digits, we get a normal reaction:

$ MONO_PATH="/home/user002/mono-2.0/mcs/class/lib/monolite:$MONO_PATH" 
/home/user002/mono-2.0/mono/mini/mono 
/home/user002/mono-2.0/mcs/class/lib/monolite/mcs.exe expr3.cs
expr3.cs(23,25): error CS0031: Constant value `922337203685477580' 
cannot be converted to a `uint'
Compilation failed: 1 error(s), 0 warnings

Any comments or ideas ?
( I use Mono 2.0 preview 2 version).

Yury

 


More information about the Mono-list mailing list