[Mono-devel-list] mono-1.0b2, Solaris x86
Guenter Feldmann
fld at informatik.uni-bremen.de
Fri Jun 11 13:28:45 EDT 2004
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 <signal.h>
#include <unistd.h>
#include <math.h>
+ #ifdef sun // Solaris x86
+ # include <sys/types.h>
+ # include <sys/ucontext.h>
+ #endif
#ifdef HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
***************
*** 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
More information about the Mono-devel-list
mailing list