[Mono-bugs] [Bug 355025] New: mcs non-functional on PowerPC e300 core

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Jan 20 23:16:07 EST 2008


User bill at arrowsreach.com added comment

           Summary: mcs non-functional on PowerPC e300 core
           Product: Mono: Compilers
           Version: unspecified
          Platform: PowerPC
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: C#
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: bill at arrowsreach.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---

Unable to build mono from source tarball, on an embedded PowerPC arch.  The mcs
 compiler that was built apears to generate non-functional output, and the
build process stops when trying to compile C# code.

The cpu is a Freescale MPC8349 which has an e300 core, an enhanced version of
the G2 or 603e cores.

Platform Details:
  Freescale MPC8349
  Custom kernel 2.6.23
  Root FS is using Ubuntu 6.10 PPC

billf at royal:~$ cat /proc/cpuinfo
processor       : 0
cpu             : e300c1
clock           : 396.000000MHz
revision        : 3.1 (pvr 8083 0031)
bogomips        : 131.58
timebase        : 66000000
platform        : MPX8349

billf at royal:~$ uname -a
Linux royal 2.6.23MPX8349_PowerPC #2 Tue Dec 11 14:09:03 EST 2007 ppc GNU/Linux

billf at royal:~$ dpkg -l libc6 gcc
ii  gcc                 4.1.1-6ubuntu3      The GNU C compiler
ii  libc6               2.4-1ubuntu12       GNU C Library: Shared libraries

Example Build Failure:
cd ~/src
wget http://mono.ximian.com/daily/mono-20080120.tar.bz2
tar jxf mono-20080120.tar.bz2
cd mono-20080120/
/configure --prefix=$HOME/mono-20080120

        mcs source:    $(top_srcdir)/mcs
        olive source:

        GC:          included
        TLS:         __thread
        SIGALTSTACK: yes
        Engine:      Building and using the JIT
        2.0 Beta:    yes
        2.1 Alpha:   yes
        JNI support: IKVM Native
        libgdiplus:  assumed to be installed
        zlib:        system zlib
        oprofile:    no


<-- snip -->
make PROFILE=basic all
make[5]: Entering directory `/home/billf/src/mono-20080120/mcs'
make[6]: *** [build/deps/basic-profile-check.out] Error 2
make[6]: Entering directory `/home/billf/src/mono-20080120/mcs'
*** The compiler 'mcs' doesn't appear to be usable.
*** Trying the 'monolite' directory.
make[7]: Entering directory `/home/billf/src/mono-20080120/mcs'
make[8]: Warning: File `build/deps/basic-profile-check.cs' has modification
time 89 s in the future
make[8]: *** [build/deps/basic-profile-check.out] Error 2
make[8]: Entering directory `/home/billf/src/mono-20080120/mcs'
*** The contents of your 'monolite' directory may be out-of-date
*** You may want to try 'make get-monolite-latest'
make[8]: *** [do-profile-check-monolite] Error 1
make[8]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[7]: *** [do-profile-check] Error 2
make[7]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[6]: *** [do-profile-check-monolite] Error 2
make[6]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[5]: *** [do-profile-check] Error 2
make[5]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[4]: *** [profile-do--basic--all] Error 2
make[4]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[3]: *** [profiles-do--all] Error 2
make[3]: Leaving directory `/home/billf/src/mono-20080120/mcs'
make[2]: *** [all-local] Error 2
make[2]: Leaving directory `/home/billf/src/mono-20080120/runtime'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/billf/src/mono-20080120'
make: *** [all] Error 2

Compile C# on x86 Host, gcc on PPC Target
Following the http://www.mono-project.com/Mono:ARM page with
some changes for my situation.

Compile mono-20080120 on x86 Host.
  $ ./configure
  $ make
  $ make install DESTDIR=`pwd`/tmptree
Copy tmptree from Host to the Target filesystem

Compile mono-20080120 on ppc Target (instead of using scratchbox)
  $ ./configure --disable-mcs-build
  $ make
  $ make install

Looks good at this point on the ppc Target:
  $ /usr/local/bin/mono --version 

  Mono JIT compiler version 20080120 (tarball)
  Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  ppc
        Disabled:      none

  $ mcs --version

  Mono C# compiler version 2008.110.0.0

It will run assemblies that were compiled on the x86 Host
and copied to the target:
  $ mono HelloWorldHost.exe

  Hello Mono World (Compiled on Host)

It will NOT run assemblies compiled on the ppc Target:
  $ mcs HelloWorldTarget.cs
  $ mono HelloWorldTarget.exe

  Cannot open assembly HelloWorldTarget.exe.

With the verbose option:
  $ mono -v HelloWorldTarget.exe

billf at royal:~/code/MonoExamples/HelloWorld$ mono -v HelloWorldTarget.exe
Method (wrapper runtime-invoke) System.Object:runtime_invoke_void_string
(object,intptr,intptr,intptr) emitted at 0x30384028 to 0x30384164 (code length
316) [HelloWorldTarget.exe]
Method System.OutOfMemoryException:.ctor (string) emitted at 0x30384168 to
0x303841c0 (code length 88) [HelloWorldTarget.exe]
Method System.SystemException:.ctor (string) emitted at 0x303841d8 to
0x30384230 (code length 88) [HelloWorldTarget.exe]
Method System.Exception:.ctor (string) emitted at 0x30384240 to 0x30384280
(code length 64) [HelloWorldTarget.exe]
Method System.Exception:set_HResult (int) emitted at 0x30384280 to 0x303842b0
(code length 48) [HelloWorldTarget.exe]
Method System.NullReferenceException:.ctor (string) emitted at 0x303842b0 to
0x30384304 (code length 84) [HelloWorldTarget.exe]
Method System.StackOverflowException:.ctor (string) emitted at 0x30384308 to
0x30384344 (code length 60) [HelloWorldTarget.exe]
Cannot open assembly HelloWorldTarget.exe.
Method (wrapper runtime-invoke) System.Object:runtime_invoke_void
(object,intptr,intptr,intptr) emitted at 0x30384348 to 0x3038447c (code length
308) [HelloWorldTarget.exe]
Method (wrapper runtime-invoke) System.Object:runtime_invoke_void
(object,intptr,intptr,intptr) emitted at 0x30384480 to 0x303845b0 (code length
304) [HelloWorldTarget.exe]
Method System.Runtime.Remoting.Contexts.Context:.cctor () emitted at 0x303845c0
to 0x3038461c (code length 92) [HelloWorldTarget.exe]
Method (wrapper managed-to-native)
System.Object:__icall_wrapper_mono_object_new_fast (intptr) emitted at
0x30384638 to 0x30384740 (code length 264) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:.ctor () emitted at 0x30384740 to
0x30384788 (code length 72) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:.cctor () emitted at 0x303847a0 to
0x30384820 (code length 128) [HelloWorldTarget.exe]
Method (wrapper managed-to-native)
System.Object:__icall_wrapper_mono_array_new_specific (intptr,int) emitted at
0x30384830 to 0x30384940 (code length 272) [HelloWorldTarget.exe]
Method System.Runtime.CompilerServices.RuntimeHelpers:InitializeArray
(System.Array,System.RuntimeFieldHandle) emitted at 0x30384940 to 0x303849a8
(code length 104) [HelloWorldTarget.exe]
Method System.RuntimeFieldHandle:get_Value () emitted at 0x303849c0 to
0x303849e8 (code length 40) [HelloWorldTarget.exe]
Method (wrapper managed-to-native)
(System.Array,intptr) emitted at 0x303849e8 to 0x30384af4 (code length 268)
Method System.Collections.Hashtable:.ctor (int,single) emitted at 0x30384af8 to
0x30384b48 (code length 80) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:.ctor
emitted at 0x30384b60 to 0x30384eec (code length 908) [HelloWorldTarget.exe]
Method System.Single:IsNaN (single) emitted at 0x30384f28 to 0x30384f70 (code
length 72) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:ToPrime (int) emitted at 0x30384f70 to
0x3038504c (code length 220) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:SetTable
(System.Collections.Hashtable/Slot[],int[]) emitted at 0x30385058 to 0x30385124
(code length 204) [HelloWorldTarget.exe]
Method System.Collections.Hashtable:AdjustThreshold () emitted at 0x30385140 to
0x303851d8 (code length 152) [HelloWorldTarget.exe]
Method System.Runtime.Remoting.Contexts.Context:Finalize () emitted at
0x303851d8 to 0x30385234 (code length 92) [HelloWorldTarget.exe]
Method System.Object:Finalize () emitted at 0x30385240 to 0x30385288 (code
length 72) [HelloWorldTarget.exe]
Method System.Threading.Thread:.cctor () emitted at 0x30385298 to 0x3038532c
(code length 148) [HelloWorldTarget.exe]
Method (wrapper managed-to-native)
System.Object:__icall_wrapper_mono_object_new_ptrfree (intptr) emitted at
0x30385330 to 0x30385438 (code length 264) [HelloWorldTarget.exe]
Method System.Threading.Thread:Finalize () emitted at 0x30385438 to 0x303854e4
(code length 172) [HelloWorldTarget.exe]
Method System.IntPtr:op_Explicit (int) emitted at 0x30385500 to 0x30385548
(code length 72) [HelloWorldTarget.exe]
Method System.IntPtr:.ctor (int) emitted at 0x30385558 to 0x30385588 (code
length 48) [HelloWorldTarget.exe]
Method (wrapper managed-to-native) System.Threading.Thread:Thread_free_internal
(intptr) emitted at 0x30385588 to 0x30385694 (code length 268)

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.

More information about the mono-bugs mailing list