Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jun 2000 17:40:22 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        jasone@canonware.com (Jason Evans)
Cc:        arch@freebsd.org
Subject:   Re: kernel thread support
Message-ID:  <200006201740.KAA20126@usr01.primenet.com>
In-Reply-To: <20000616144259.Q47268@blitz.canonware.com> from "Jason Evans" at Jun 16, 2000 02:42:59 PM

next in thread | previous in thread | raw e-mail | index | archive | help
I don't know if this has been reported yet.  The send-pr system
hates my machine because it uses unpublished DNS information.

This is posted to arch, since an architectural decision on what
the correct behaviour of signal(3) should be: no matter which
way the decision goes, it appears to me that libc and libc_r
should behave the same way.

---

FYI, after I helped someone track down a hanging problem in OpenLDAP,
it was pointed out that the libc_r "signal" symbol is omitted in the 
list of weak exports, and so even if you link with libc_r, you get the
libc version.

The libc and libc_r versions differ, in that the libc_r version does
not restart system calls, while the libc version does.

This is apparently a BSD legacy issue with using the non-POSIX
signals interface, and getting variant behaviour.  It is probably
more correct to explicitly use the POSIX interface, and call the
sigaction() call directly, with sa_flags = 0, but OpenLDAP and
other code is unliekly to change in this regard.

Using siginterrupt() didn't help; it is apparently not threads-aware,
or there is an order of operations bug in its libc_r implementation.

For OpenLDAP, the libc_r version is correct; it permits users to
send SIGTERM to the LDAP server to shut it down.

This can be fixed by adding "signal.o" to the "HIDDEN_SYSCALLS"
variable in the libc_r Makefile.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006201740.KAA20126>