Apparently some natives hashtables are receiving null hashs in the runtime. <div>Probably you need to follow the calls to find why the callers are passing those nulls, it may be that some native library (dependency) in your environment isn't returning what is expected to the callers.</div>
<div><br></div><div>Good hunt,</div><div><br clear="all">Rafael "Monoman" Teixeira<br>---------------------------------------<br>"The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'"<br>
Isaac Asimov<br>US science fiction novelist & scholar (1920 - 1992)<br>
<br><br><div class="gmail_quote">On Fri, Jun 1, 2012 at 7:29 AM, Dennis Krzyzaniak <span dir="ltr"><<a href="mailto:dkml@conworx.com" target="_blank">dkml@conworx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="DE" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US">Hi all,<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">I am trying to get Mono running on a spider III device including an ARM920t processor with Linux as OS.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">/host $ uname -a<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">Linux Spider-III 2.6.17.3-axo-s07.2 #1425 Fri Jul 25 10:59:30 CEST 2008 armv4tl unknown<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">When I try to invoke a simple hello_world.exe I get 399 assertions in eglib (always the same asserts):<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">/host $ ./mono hello_world.exe<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:293: assertion 'hash != NULL' failed<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:236: assertion 'hash != NULL' failed<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:293: assertion 'hash != NULL' failed<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:236: assertion 'hash != NULL' failed<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">…<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">The ‘Hello World’ is also displayed:<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:293: assertion 'hash != NULL' failed<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">../../../../eglib/src/ghashtable.c:236: assertion 'hash != NULL' failed<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">Hello World../../../../eglib/src/ghashtable.c:293: assertion 'hash != NULL' failed<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">…<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">The hello world code:<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">using System;<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">namespace foobar {<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   public class foo {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">      public static void Main(string[] args) {<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">         Console.WriteLine("Hello World");<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">      }<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   }<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">}<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">I am absolutely new to Mono and completely lost with this behavior. Maybe someone knows the reason or can point me to a direction to find the issue?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I attached a trace (./mono –trace hello_world.exe), maybe this helps? The trace is cut to fit into this mail, please let me know if a full trace is needed.<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">I am using the debian source package of Mono 2_10_8.1-1 because in the official release a unittest fails.<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">To get Mono build with the ‘old’ ARM  toolchain provided by the vendor I made a few changes in the project please see below. <u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">I am calling configure with the following parameters:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">configure  --build=i686-pc-linux-gnu --host=arm-axotec-linux-gnu LD=arm-axotec-linux-gnu-ld OBJDUMP=arm-axotec-linux-gnu-objdump --prefix=/host --disable-mcs-build --srcdir=../..<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><a href="http://configure.in" target="_blank">configure.in</a>:<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+dnl<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+dnl BEGIN Conworx Spider III ARMv4t settings<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+dnl there are already arm-*-linux* settings below but the place is to late, checks which<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+dnl tested before fails. So I added my specific stuff here without changing the old<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+dnl settings.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+dnl<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+if test "x$host" = "xarm-axotec-linux-gnu"; then<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">+dnl looks like this are all needed settings, the rest is redundant.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  TARGET=ARM;<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  cross_compiling=yes<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  dnl which defines are needed? just copied some<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DARM_FPU_NONE -D__ARM_EABI__"<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT -DARM_FPU_NONE -mcpu=arm920t -D__ARM_ARCH_4__"<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  CPPFLAGS="$CPPFLAGS -DNO_THUMB2_INSTRUCTIONS"<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  arch_target=arm;<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  ACCESS_UNALIGNED="no"<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  JIT_SUPPORTED=yes<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  jit_wanted=true<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  sgen_supported=true<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl Can't use tls, since it depends on the runtime detection of tls offsets<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  dnl  in mono-compiler.h<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  libgc_threads=pthreads<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  with_tls=pthread<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  use_sigposix=yes<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl Enable support for using sigaltstack for SIGSEGV and<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">+  dnl stack overflow handling (TODO not sure if it works on my arm)<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  with_sigaltstack=no<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl to bypass the underscore linker check, can't work when cross-compiling<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  mono_cv_uscore=yes<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl support ahead of time compilation<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  AOT_SUPPORTED="yes"<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+  libdl="-ldl"<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+  dnl I need some define to enable my hacks oO<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">+  AC_DEFINE(PLATFORM_AXOTEC_LINUX,1,[Targeting axotec linux on arm920t])<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+fi<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">+# Added LT_OUTPUT to generate libtool script by <a href="http://config.lt" target="_blank">config.lt</a> before calling it.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+LT_OUTPUT<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">AC_SUBST(export_ldflags)<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">+dnl the check for cross compiling is included in the mono release but removed<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+dnl in the debian source package because for the debian distribution no cross<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+dnl compiling is used.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+if test ${TARGET} = ARM  && test x$cross_compiling = xno; then<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   dnl ******************************************<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">   dnl *** Check to see what FPU is available ***<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   dnl ******************************************<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">mono/metadata/sgen-archdep.h:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">/* We dont store ip, sp */<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">#define ARCH_NUM_REGS 14<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+/* arm920t does not support thumb2 instructions */<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#if !defined (NO_THUMB2_INSTRUCTIONS)<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">+/* THUMB2 instuctions */<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">#define ARCH_STORE_REGS(ptr)    \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   __asm__ __volatile__(         \<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">      "push {lr}\n"           \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">@@ -145,6 +148,17 @@<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">      :                    \<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">      : "r" (ptr)             \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   )<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#else /* NO_THUMB2_INSTRUCTIONS */<u></u><u></u></span></p>
<p class="MsoNormal">+/* ARM instuctions */<u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">+#define ARCH_STORE_REGS(ptr) \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+   __asm__ __volatile__( \<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+         "stmfd sp!, {lr}\n" \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+         "mov lr, %0\n" \<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US">+         "stmia lr!, {r0-r12}\n" \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+         "ldmfd sp!, {lr}\n" \<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+         : \<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+         : "r" (ptr))<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#endif /* NO_THUMB2_INSTRUCTIONS */<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">mono/mini/jit-icalls.c:<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US">#if defined(__arm__) && MONO_ARCH_SOFT_FLOAT<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#if defined (PLATFORM_AXOTEC_LINUX)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+   /* ULLONG_MAX is not defined, just define here the max size of an unsigend<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+    * long long int. */<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+#ifndef ULLONG_MAX<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#define ULLONG_MAX   18446744073709551615ULL<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">+#endif /* !ULLONG_MAX */<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">+#endif /* PLATFORM_AXOTEC_LINUX */<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US">   if (isnan (v) || !(v >= -0.5 && v <= ULLONG_MAX+0.5)) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">      mono_raise_exception (mono_get_exception_overflow ());<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Would be great to get some help!<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal">Best regards,<u></u><u></u></p><p class="MsoNormal">Dennis Krzyzaniak<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div><br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br></div>