Mono on PowerPC64
Curtis Hamilton
clhamilto at gmail.com
Sun Oct 7 21:51:32 UTC 2018
I'm working to get the current Mono release to build on PowerPC64 (64-bit).
I wanted to check if anyone has experience with building Mono on non-X86
platforms. I'm sure that no one has build Mono on FreeBSD/PowerPC
because there is an error in "mono/utils/mono-sigcontext.h" that
prevents Mono from building, 32-bit. The code in question is:
@@ -363,10 +363,10 @@
#elif defined(__FreeBSD__)
typedef ucontext_t os_ucontext;
- #define UCONTEXT_REG_Rn(ctx, n) ((ctx)->uc_mcontext.mc_gpr [(n)])
- #define UCONTEXT_REG_FPRn(ctx, n) ((ctx)->uc_mcontext.mc_fpreg [(n)])
- #define UCONTEXT_REG_NIP(ctx) ((ctx)->uc_mcontext.mc_srr0)
- #define UCONTEXT_REG_LNK(ctx) ((ctx)->uc_mcontext.mc_lr)
+ #define UCONTEXT_REG_Rn(ctx, n)
(((os_ucontext*)(ctx))->uc_mcontext.mc_gpr [(n)])
+ #define UCONTEXT_REG_FPRn(ctx, n)
(((os_ucontext*)(ctx))->uc_mcontext.mc_fpreg [(n)])
+ #define UCONTEXT_REG_NIP(ctx)
(((os_ucontext*)(ctx))->uc_mcontext.mc_srr0)
+ #define UCONTEXT_REG_LNK(ctx)
(((os_ucontext*)(ctx))->uc_mcontext.mc_lr)
#elif defined(_AIX)
typedef ucontext_t os_ucontext;
I can successfully build 32-bit Mono on PowerPC, however, for 64-bit I
get a SIGILL when building.
System.Net/HttpConnection.cs(57,19): warning CS0414: The private field
`System.Net.HttpConnection.cert' is assigned but its value is never used
System.Net/HttpWebRequest.cs(86,10): warning CS0414: The private field
`System.Net.HttpWebRequest.initialMethod' is assigned but its value is
never used
System.Net/WebConnection.cs(196,25): warning CS0649: Field
`System.Net.WebConnection.ID' is never assigned to, and will always have
its default value `0'
System.Net/WebConnectionStream.cs(46,10): warning CS0414: The private
field `System.Net.WebConnectionStream.locker' is assigned but its value
is never used
System.Net/WebConnectionStream.cs(49,17): warning CS0649: Field
`System.Net.WebConnectionStream.IgnoreIOErrors' is never assigned to,
and will always have its default value `false'
System.Net/WebOperation.cs(65,25): warning CS0649: Field
`System.Net.WebOperation.ID' is never assigned to, and will always have
its default value `0'
System.Net/WebOperation.cs(66,10): warning CS0649: Field
`System.Net.WebOperation.ME' is never assigned to, and will always have
its default value `null'
System.Net/WebRequestStream.cs(49,28): warning CS0649: Field
`System.Net.WebRequestStream.ME' is never assigned to, and will always
have its default value `null'
System.Net/WebResponseStream.cs(78,28): warning CS0649: Field
`System.Net.WebResponseStream.ME' is never assigned to, and will always
have its default value `null'
Compilation succeeded - 45 warning(s)
MCS [basic] System.Xml.dll
MCS [basic] System.Security.dll
../../../external/corefx/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/KeyInfoRetrievalMethod.cs(78,24):
warning CS0219: The variable `retrievalMethodElement' is assigned but
its value is never used
System.Security.Cryptography.Xml/SignedXml.cs(391,11): warning CS0219:
The variable `hashvalue' is assigned but its value is never used
Compilation succeeded - 2 warning(s)
MCS [basic] System.Core.dll
../../build/common/MonoTODOAttribute.cs(100,25): warning CS1635: Cannot
restore warning `CS0436' because it was disabled globally
../../../external/corefx/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/IncrementalHash.net46.cs(23,26):
warning CS0472: The result of comparing value type
`System.Security.Cryptography.HashAlgorithmName' with null is always `true'
Compilation succeeded - 2 warning(s)
MCS [basic] System.ComponentModel.Composition.dll
MCS [basic] System.Numerics.dll
MCS [basic] System.Xml.Linq.dll
MCS [basic] Mono.Cecil.dll
MCS [basic] Mono.Cecil.Mdb.dll
MCS [basic] Mono.CompilerServices.SymbolWriter.dll
MCS [basic] PEAPI.dll
mkdir -p -- ../../class/lib/basic/tmp/
MCS [basic] cil-stringreplacer.exe
./../jay/jay: 7 rules never reduced
./../jay/jay: 14 shift/reduce conflicts.
MCS [basic] ilasm.exe
ILParser.cs(165,37): warning CS0429: Unreachable expression code detected
ILParser.cs(165,68): warning CS0429: Unreachable expression code detected
ILParser.cs(166,7): warning CS0162: Unreachable code detected
codegen/CodeGen.cs(460,48): warning CS0219: The variable `asmb' is
assigned but its value is never used
codegen/DebuggingInfo.cs(103,16): warning CS0219: The variable `entry'
is assigned but its value is never used
codegen/PeapiTypeRef.cs(249,25): warning CS0162: Unreachable code detected
codegen/CodeGen.cs(60,30): warning CS0414: The private field
`Mono.ILASM.CodeGen.image_base' is assigned but its value is never used
codegen/MethodDef.cs(54,33): warning CS0414: The private field
`Mono.ILASM.MethodDef.codegen' is assigned but its value is never used
codegen/DataDef.cs(18,43): warning CS0414: The private field
`Mono.ILASM.DataDef.segment' is assigned but its value is never used
Compilation succeeded - 9 warning(s)
Assembling
'../../../class/corlib/System.Runtime.CompilerServices/Unsafe.il' , no
listing file, to dll --> '../../../class/lib/basic/corlib.unsafe.dll.tmp'
../../../class/corlib/System.Runtime.CompilerServices/Unsafe.il :
Warning -- Reference to undeclared extern assembly 'mscorlib', adding.
Operation completed successfully
mkdir -p -- ../../../class/lib/basic/Facades/
./../jay/jay: 7 shift/reduce conflicts.
MCS [basic] System.Runtime.dll
MCS [basic] System.Collections.dll
MCS [basic] System.Reflection.dll
MCS [basic] mcs.exe
MCS [basic] System.Resources.ResourceManager.dll
MCS [basic] System.Globalization.dll
MCS [basic] System.Threading.Tasks.dll
MCS [basic] System.Collections.Concurrent.dll
MCS [basic] System.Text.Encoding.dll
MCS [basic] System.IO.dll
MCS [basic] System.Threading.dll
MCS [basic] System.Diagnostics.Debug.dll
MCS [basic] System.Linq.Expressions.dll
MCS [basic] System.Dynamic.Runtime.dll
MCS [basic] System.Linq.dll
MCS [basic] System.Threading.Tasks.Parallel.dll
MCS [basic] System.Xml.ReaderWriter.dll
MCS [basic] System.Diagnostics.Tools.dll
MCS [basic] System.Reflection.Primitives.dll
MCS [basic] System.Runtime.Extensions.dll
MCS [basic] System.Runtime.InteropServices.dll
MCS [basic] System.Text.Encoding.Extensions.dll
MCS [basic] System.Runtime.Numerics.dll
MCS [basic] System.Xml.XDocument.dll
MCS [basic] System.Reflection.Extensions.dll
MCS [basic] System.IO.FileSystem.Primitives.dll
MCS [basic] System.IO.FileSystem.dll
MCS [basic] System.Diagnostics.FileVersionInfo.dll
MCS [basic] System.Security.Cryptography.Primitives.dll
MCS [basic] System.Security.Cryptography.Algorithms.dll
MCS [basic] System.ValueTuple.dll
MCS [basic] System.Text.Encoding.CodePages.dll
Creating .dep_dirs-build...
Creating .dep_dirs-build...
mkdir -p -- ../../class/lib/build-linux/
Stacktrace:
at <unknown> <0xffffffff>
at System.Globalization.CultureData.get_Invariant () [0x000b2] in
<445343b3499f4493aad682c3d706c4c0>:0
at <unknown> <0xffffffff>
at Mono.ILASM.Driver.Main (string[]) [0x00005] in
<cab757a6a332478ea5d0afa123379e6b>:0
at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object
(object,intptr,intptr,intptr) [0x00054] in
<cab757a6a332478ea5d0afa123379e6b>:0
=================================================================
Got a SIGILL while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
gmake[10]: *** [il/il.make:4:
../../class/lib/build-linux/corlib.unsafe.dll.tmp] Abort trap (core dumped)
gmake[10]: *** Waiting for unfinished jobs....
gmake[9]: *** [../../build/rules.make:211: do-all] Error 2
gmake[8]: *** [../build/rules.make:232: all-recursive] Error 1
gmake[7]: *** [build/rules.make:232: all-recursive] Error 1
gmake[6]: *** [Makefile:54: profile-do--build--all] Error 2
gmake[5]: *** [Makefile:50: profiles-do--all] Error 2
gmake[4]: *** [Makefile:610: all-local] Error 2
gmake[4]: Leaving directory
'/usr/ports/lang/mono/work/mono-5.14.0.177/runtime'
gmake[3]: *** [Makefile:552: all-recursive] Error 1
gmake[3]: Leaving directory '/usr/ports/lang/mono/work/mono-5.14.0.177'
gmake[2]: *** [Makefile:482: all] Error 2
gmake[2]: Leaving directory '/usr/ports/lang/mono/work/mono-5.14.0.177'
===> Compilation failed unexpectedly.
Anyone with suggestions will be greatly appreciated.
Regards,
Curtis
More information about the freebsd-mono
mailing list