[Mono-devel-list] Mono-1.1.7 - NetBSD 2.0.x Support

Jérôme Laban jaylee at epitech.net
Thu May 12 10:41:09 EDT 2005



From: Bill Middleton [mailto:flashdict at gmail.com] 
Sent: jeudi 12 mai 2005 00:12
To: Jérôme Laban
Subject: Re: [Mono-devel-list] Mono-1.1.7 - NetBSD 2.0.x Support

On 5/11/05, Jérôme Laban <jaylee at epitech.net> wrote: 

I also noted that redefining register indices is not needed if
HAVE_WORKING_SIGALTSTACK is defined. But since it can be disabled using
--with-sigaltstack=no, it would break the compatibility with NetBSD's
sigcontext. I think its best to leave it there.

Hmm.  Well, at that point it's  beyond my charter to criticize, but I don't
think it'll make it in to the source like that.  You've made sigaltstack=yes
the default for netbsd2 in configure.in, so if some poor sap wants to try to
run without it, he deserves to get registers zapped a little, imho.  :)


Well, you might be right :) I'll ask some other mono hackers about that,
just to be sure.

Btw, did you not have trouble with  io-layer/collection.c?  Awhile back I
tried to help a netbsd user and we found that, at least on his version
(early?) of 2.0, there was no definition for PTHREAD_STACK_MIN.  Perhaps
that's been fixed in netbsd now?  Here's the patch that got him past that
error.  It simply presets a reasonable default for minimum stack size (which
is broken in Freebsd except for CURRENT), so I knew right where to look. 

For now, I fixed the value to the same as the one found in FreeBSD. NetBSD
does seem define this value, even in -CURRENT.

Finally, as I understood it, NetBSD 1.6 _does_ have working kernel threads,
but not tls support for __thread, yes?  I haven't tried it, but I was pretty
sure that netbsd 1.6 would work ok with tls=pthread and sigaltstack
(although ucontext was still very tentative then, and may not have __gregs,
even).  Unfortunately, I cant verify this, but thanks for leaving 1.6 a
chance to join in the fray.  I'll look your updated patch over soon.

No, not exactly. NetBSD 1.6 does have internal kernel threads but these are
not exposed to the user. The only way to do threading is by using the
libpthread wrapper around libpth, which is a cooperative userland threading
library. This is not the threading model .NET is using. TLS is not supported
either (hence __thread).
NetBSD 2.0.x should support __thread, but there is a segfault when accessing
__thread modified variables, at least in NetBSD 2.0. I'll try in NetBSD
2.0.3 Beta, to see if that has changed.
-- Jerome

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050512/38f4abbf/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3026 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050512/38f4abbf/attachment.bin 

More information about the Mono-devel-list mailing list