From mono-devel-list Fri Jun 11 17:28:45 2004 From: Guenter Feldmann Date: Fri, 11 Jun 2004 17:28:45 +0000 To: mono-devel-list Subject: [Mono-devel-list] mono-1.0b2, Solaris x86 Message-Id: <200406111928.45926.fld () informatik ! uni-bremen ! de> X-MARC-Message: https://marc.info/?l=mono-devel-list&m=111336467523786 Hi Paolo, again thanks for your help. I think I'm very close now: ->mono.make test Testing array-init.exe... pass. [ ... ] Testing even-odd.exe... pass. 174 test(s) passed. 2 test(s) failed. Failed tests: appdomain-unload.exe delegate1.exe -> I tested it with Solaris9 on a Pentium III computer and with Solaris10 on an AMD Athlon-64 machine. The results are the same on both systems. 'make rcheck' in mono/mini hangs at the following position: [ ... ] Test run: image=/home/src/unix/mono/beta2/mono-0.95/mono/mini/iltests.exe, opts=peephole,branch,inline,consprop,copyprop,deadce,linears,intrins,loop,abcrem Results: total tests: 17, failed: 0, cfailed: 0 (pass: 100.00%) Elapsed time: 0.007355 secs (0.000545, 0.006810), Code size: 564 Test run: image=/home/src/unix/mono/beta2/mono-0.95/mono/mini/exceptions.exe, opts= Unhandled Exception: System.OverflowException: Number overflow. in (unmanaged) (wrapper managed-to-native) System.Object:__icall_wrapper___emul_fconv_to_ovf_i8 (double) in <0x00004> (wrapper managed-to-native) System.Object:__icall_wrapper___emul_fconv_to_ovf_i8 (double) in <0x00457> Tests:test_0_int_cast () Any further hints? The current diffs look as follows: *** mini-x86.h.orig Wed Jun 2 21:35:16 2004 --- mini-x86.h Fri Jun 11 17:41:51 2004 *************** *** 43,48 **** --- 43,76 ---- #endif /* PLATFORM_WIN32 */ + #ifdef sun // Solaris x86 + # undef SIGSEGV_ON_ALTSTACK + # define MONO_ARCH_USE_SIGACTION 1 + struct sigcontext { + unsigned short gs, __gsh; + unsigned short fs, __fsh; + unsigned short es, __esh; + unsigned short ds, __dsh; + unsigned long edi; + unsigned long esi; + unsigned long ebp; + unsigned long esp; + unsigned long ebx; + unsigned long edx; + unsigned long ecx; + unsigned long eax; + unsigned long trapno; + unsigned long err; + unsigned long eip; + unsigned short cs, __csh; + unsigned long eflags; + unsigned long esp_at_signal; + unsigned short ss, __ssh; + unsigned long fpstate[95]; + unsigned long filler[5]; + }; + #endif // sun, Solaris x86 + /* Enables OP_LSHL, OP_LSHL_IMM, OP_LSHR, OP_LSHR_IMM, OP_LSHR_UN, OP_LSHR_UN_IMM */ #define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS *** mini-x86.c.orig Thu Jun 3 12:07:25 2004 --- mini-x86.c Wed Jun 9 14:47:31 2004 *************** *** 3733,3743 **** --- 3733,3748 ---- #else #ifdef HAVE_PTHREAD_ATTR_GET_NP pthread_attr_get_np( self, &attr ); + #elif defined(sun) + pthread_attr_init( &attr ); + pthread_attr_getstacksize( &attr, &stsize ); #else #error "Not implemented" #endif #endif + #ifndef sun pthread_attr_getstack( &attr, &staddr, &stsize ); + #endif } /* *** mini.c.orig Wed Jun 2 21:28:36 2004 --- mini.c Fri Jun 11 18:12:04 2004 *************** *** 12,17 **** --- 12,21 ---- #include #include #include + #ifdef sun // Solaris x86 + # include + # include + #endif #ifdef HAVE_VALGRIND_MEMCHECK_H #include *************** *** 8080,8085 **** --- 8084,8093 ---- #ifdef __sparc #define GET_CONTEXT \ void *ctx = context; + #elif defined(sun) // Solaris x86 + #define GET_CONTEXT \ + ucontext_t *uctx = context; \ + struct sigcontext *ctx = (struct sigcontext *)&(uctx->uc_mcontext); #elif defined(__ppc__) || defined (__powerpc__) || defined (__s390__) #define GET_CONTEXT \ void *ctx = context; -- Guenter