[Mono-devel-list] mono-1.0b2, Solaris x86

Paolo Molaro lupus at ximian.com
Sun Jun 6 05:51:39 EDT 2004


On 06/03/04 Guenter Feldmann wrote:
> I've started to install mono-1.0b2 on my Solaris x86 system.
> With the following three small fixes 'make' succeeded:
> 
> *** mini-x86.h.orig     Wed Jun  2 21:35:16 2004
> --- mini-x86.h  Thu Jun  3 12:13:14 2004
> ***************
> *** 43,48 ****
> --- 43,75 ----
> 
>   #endif /* PLATFORM_WIN32 */
> 
> + #ifdef sun    // Solaris x86
> + #  define MONO_ARCH_USE_SIGACTION 1
> + struct sigcontext {
> +         unsigned short gs, __gsh;
[...]
> + };
> + #endif  // sun, Solaris x86

You should instead include the header where sigcontext is defined in
Solaris, instead of making you own copy here.

> +
>   /* 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  2 23:31:49 2004
> ***************
> *** 3733,3743 ****
> --- 3733,3747 ----
>   #else
>   #ifdef HAVE_PTHREAD_ATTR_GET_NP
>                 pthread_attr_get_np( self, &attr );
> + #elif defined(sun)
> +               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      Wed Jun  2 22:12:54 2004
> ***************
> *** 8077,8083 ****
>   #define GET_CONTEXT \
>         struct sigcontext *ctx = (struct sigcontext*)_dummy;
>   #else
> ! #ifdef __sparc
>   #define GET_CONTEXT \
>       void *ctx = context;
>   #elif defined(__ppc__) || defined (__powerpc__) || defined (__s390__)
> --- 8077,8083 ----
>   #define GET_CONTEXT \
>         struct sigcontext *ctx = (struct sigcontext*)_dummy;
>   #else
> ! #if defined(__sparc) || defined(sun)
>   #define GET_CONTEXT \
>       void *ctx = context;
>   #elif defined(__ppc__) || defined (__powerpc__) || defined (__s390__)
> 
> 
> But 'make install' aborted as follows: 
> 
> [ ... ]
> make[3]: Entering directory 
> `/home/src/unix/mono/beta2/mono-0.95/intel/runtime/net_1_1'
> make[3]: Nothing to be done for `install-exec-am'.
> /usr/local/bin/bash ../../../mkinstalldirs /usr/local/MONO/1.0b2/lib
>  /usr/local/bin/gnu/install -c -m 
> 644 ../../../runtime/net_1_1/mscorlib.dll /usr/local/MONO/1.0b2/lib/mscorlib.dll
> MONO_PATH=../../../runtime/net_1_1 ../../mono/mini/mono 
> --config ../../data/config ../../../runtime/net_1_1/../gacutil.exe /i ../../../runtime/net_1_1/Accessibility.dll /f /package 
> 1.0 /root /usr/local/MONO/1.0b2/lib
> GC Warning: Insufficient space for /proc read

libgc issue: you should report it to the libgc mailing list.

> Unhandled Exception: System.DllNotFoundException: libc
> in <0x00053> (wrapper managed-to-native) 

In configure.in check where LIBC is set and add an entry for
solaris/x86. Or you can change the dllmap entry in data/config
as a temporary solution.

> - are there other software pices which also have to be adapted for
>   proper exception handling?

You may need changes in mini/exceptions-x86.c.

> - does the abort indicate that my fixes are wrong or incomplete or 
>   is there a different kind of problem?

different kind of problem.

> - What is the easiest way to test if exception handling works?

run make rcheck in mini and/or make test in mono/tests.

lupus

-- 
-----------------------------------------------------------------
lupus at debian.org                                     debian/rules
lupus at ximian.com                             Monkeys do it better



More information about the Mono-devel-list mailing list