This is the mail archive of the
mailing list for the glibc project.
[PATCH 0/8] Hurd signal code improvements
- From: Jeremie Koenig <jk at jk dot fr dot eu dot org>
- To: bug-hurd at gnu dot org
- Cc: Jeremie Koenig <jk at jk dot fr dot eu dot org>,libc-alpha at sourceware dot org
- Date: Wed, 25 May 2011 17:59:26 +0200
- Subject: [PATCH 0/8] Hurd signal code improvements
This patch series has many improvements for the Hurd signal code in
glibc. I cc: libc-alpha for your information only, at this point I'm not
asking for them to be merged upstream yet.
The main goal of this series is to implement global signal dispositions
on Hurd, which is necessay for POSIX conformance of libpthread (see the
details in commit messages). In particular, libgcj relies on a correct
implementation in this regard, which causes "ant" (the "make" of the
Java world) to hang waiting for child processes to terminate.
Prior to implementing this, I refactored the code to make it somewhat
easier to follow, and fixed a few bugs I ran into.
Any kind of feedback would be great of course, but in particular I'm
* Signal preemptors. What are they used for and should they be made
global as well?
* I'm not completely sure what spawni() is for, but it seems the child
process it create inherits the parent's pending signals.
Is this intended?
* Symbol versions. I used GLIBC_2.13 for the new interfaces but I'm
not completely sure what the policy is.
I'll be posting the related changes to Hurd's libpthread right after I
send this series. If you would like to test these patches, I have built
glibc and hurd (for libpthread) Debian packages with these changes,
which are available at the following repository:
deb http://jk.fr.eu.org/debian experimental/
(The glibc package uses slightly different patches with regards to the
symbol versions. I'll build and upload a new version soon)
Acknowledgement: I started working on this a few months ago but I am
finishing it as a Google Summer of Code student for the GNU project, as
part of my proposal to improve Java support on Hurd . I have assigned
copyright to the FSF for past and future changes to both glibc and hurd.
 See http://www.bddebian.com/~hurd-web/user/jkoenig/java.
Jeremie Koenig (8):
_hurd_internal_post_signal: Split into more functions
_hurd_internal_post_signal: Scope variables more restrictively
_hurd_internal_post_signal: Split out inner functions
Hurd signal cleanup: refactor check_pending_signals
Hurd signals: reindent
Hurd signals: make sigsuspend POSIX-conformant.
Hurd signals: fix uninitialized value.
Hurd signals: implement global signal dispositions
Versions.def | 1 +
hurd/Versions | 7 +
hurd/hurd/signal.h | 35 +++-
hurd/hurdmsg.c | 12 +-
hurd/hurdsig.c | 446 +++++++++++++++++++++++++--------------
sysdeps/mach/hurd/fork.c | 19 +-
sysdeps/mach/hurd/sigaction.c | 16 +-
sysdeps/mach/hurd/sigpending.c | 6 +-
sysdeps/mach/hurd/sigprocmask.c | 8 +-
sysdeps/mach/hurd/sigsuspend.c | 15 +-
sysdeps/mach/hurd/sigwait.c | 11 +-
sysdeps/mach/hurd/spawni.c | 23 ++-
12 files changed, 382 insertions(+), 217 deletions(-)