Permalink
Commits on Jul 20, 2011
  1. Hurd signals: don't drop blocked ignored signals

    Although POSIX tolerates the current approach, it is more consistent
    to wait for ignored signals to be unblocked before we deliver them.
    
    	* hurd/hurdsig.c (post_signal): Don't drop blocked ignored signals.
    committed Jul 20, 2011
  2. Hurd signals: clear the pending mask in fork and spawn

    	* sysdeps/mach/hurd/fork.c (__fork): Clear pending masks in the child
    	process.
    	* sysdeps/mach/hurd/spawni.c (__spawni): Don't propagate the pending
    	mask to the new process.
    committed Jul 5, 2011
  3. Hurd signals: fix sigwait for pending signals

    	* sysdeps/mach/hurd/sigwait.c (__sigwait): Handle pending signals with
    	a poll request instead of attempting to remove them from the pending
    	mask directly.
    committed Jul 20, 2011
  4. Hurd signals: Use POSIX sigcodes

    	* hurd/hurd/signal.h (_hurd_exception2signal_legacy): New declaration.
    	* sysdeps/mach/hurd/i386/bits/sigcontext.h: Mark the legacy sigcode
    	values as deprecated.
    	* sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): Use
    	POSIX sigcodes for exceptions.
    	(_hurd_exception2signal_legacy): New version of _hurd_exception2signal
    	which provides the legacy sigcodes.
    	* hurd/hurdinit.c (_hurd_new_proc_init): Use the TRAP_TRACE sigcode for
    	SIGTRAP on exec.
    	* sysdeps/mach/hurd/kill.c (__kill): Use SI_USER for signals sent
    	through kill.
    	* sysdeps/mach/hurd/setitimer.c (timer_thread): Use SI_TIMER for
    	SIGALRM.
    	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Keep
    	as much of the previous behavior as possible in the legacy handler
    	case: use _hurd_exception2signal_legacy to regenerate sigcodes or
    	clear those which don't originate from Mach exceptions.
    committed Jun 3, 2011
  5. Hurd signals: SA_SIGINFO support

    Based on a preliminary patch by Samuel Thibault.
    
    	* sysdeps/mach/hurd/bits/sigaction.h: Define SA_SIGINFO.
    	* sysdeps/mach/hurd/i386/trampoline.c (fill_siginfo): New function,
    	fill in a siginfo_t structure.
    	(fill_ucontext): New function, fill in a ucontext_t structure.
    	(_hurd_setup_sighandler): Add support for SA_SIGINFO handlers.
    committed Jun 3, 2011
  6. Hurd signals: Copy bits/sigaction.h

    	* sysdeps/mach/hurd/bits/sigaction.h: New file, start with a copy of
    	bits/sigaction.h.
    committed Jun 2, 2011
  7. Hurd signals: use GLIBC_2.13_DEBIAN_11 for now

    The plan is to use this version until the patches are committed upstream,
    then alias the temporary symbol versions to the permanent ones.
    committed Jun 2, 2011
  8. Hurd signals: fix global untraced signals.

    Delivering global signals by making them temporarily pending in the
    global mask looses their untracedness status, so we need to deliver them
    directly whenever we can.
    
    	* hurd/hurdsig.c (post_signal): Attempt to find a receiver thread right
    	away for global signals.
    committed Jun 3, 2011
  9. Hurd signals: fix sigwait() for global signals

    	* hurd/hurdsig.c (post_signal): Query the signal blocking mask before
    	preemptors so that they can change it without affecting the current
    	delivery.
    	* sysdeps/mach/hurd/sigwait.c (__sigwait): Change the blocking mask
    	temporarily so that we catch global as well as thread-specific signals.
    committed May 28, 2011
  10. Hurd signals: provide a sigstate destructor

    We can no longer afford to keep stale sigstate structures in the
    _hurd_sigstates list if some of them are marked as global receivers,
    otherwise we might try to use them to deliver signals.
    
    	* hurd/hurdsig.c (_hurd_sigstate_delete): New function. Remove a
    	sigstate from the list and release its memory. To be used by libpthread
    	at thread destruction time.
    	* hurd/Versions (_hurd_sigstate_delete): Add the new symbol.
    	* hurd/hurd/signal.h (_hurd_sigstate_delete): Add its prototype.
    committed May 28, 2011
  11. Hurd signals: implement global signal dispositions

    Currently each thread has a full "sigstate" structure which keeps track
    of the signal dispositions, blocking mask and pending signals for this
    thread. Process-wide signals are delivered to the main thread.
    
    However, the semantics for POSIX threads is that all of them share the
    same signal dispositions, although their blocking masks may differ.
    Signals sent to the process as a whole can be delivered to any thread
    which does not block them.
    
    This is implemented here in addition to the current behavior: libpthread
    will call _hurd_sigstate_set_global_rcv to mark newly created threads as
    global signal receivers, while cthreads-based programs can continue to
    rely on the Hurd semantics.
    
    	* hurd/hurdsig.c: Replace _hurd_sigthread with a _hurd_global_sigstate.
    	(_hurd_thread_sigstate): accept MACH_PORT_NULL as the global sigstate's
    	thread.
    	(_hurd_sigstate_set_global_rcv): New function to mark some threads as
    	global signal receiver.
    	(sigstate_is_global_rcv): New function, test a thread's status as a
    	global receiver.
    	(_hurd_sigstate_lock, _hurd_sigstate_unlock): New function, lock a
    	sigstate structure and possibly _hurd_global_sigstate, so that the set
    	of pending signals can be queried safely.
    	(sigstate_clear_pending): New function, pulls a signal out of a
    	thread's pending mask.
    	(_hurd_sigstate_pending): New function, retreive a thread's pending
    	mask, taking into account its status as a global receiver.
    	(_hurd_sigstate_actions): New function, retreive a thread's actions
    	vector, taking into account its status as a global receiver.
    	(abort_thread): Use _hurd_sigstate_actions.
    	(post_signal, post_pending, post_all_pending_signals,
    	_hurd_internal_post_signal): Take into account the possibility of
    	ss == _hurd_global_sigstate.  Use _hurd_sigstate_lock,
    	_hurd_sigstate_action and _hurd_sigstate_pending.
    	(_S_msg_sig_post, _S_msg_sig_post_untraced): Post signals against
    	_hurd_global_sigstate instead of _hurd_sigthread.
    	(_hurdsig_init): Initialize _hurd_global_sigstate.
    	* hurd/hurd/signal.h: Document the new behavior of
    	hurd_sigstate.actions.  Declare the new symbols _hurd_global_sigstate,
    	_hurd_sigstate_set_global_rcv, _hurd_sigstate_lock,
    	_hurd_sigstate_actions, _hurd_sigstate_pending and
    	_hurd_sigstate_unlock.
    	(_hurd_critical_section_unlock): Update querying of the pending mask.
    	* hurd/hurdmsg.c (get_int, set_int): Replace _hurd_sigthread with
    	_hurd_global_sigstate. Drop the now dubious INIT_SIGMASK cases.
    	* sysdeps/mach/hurd/fork.c (__fork): Mark the main thread as a global
    	receiver.
    	* hurd/hurdexec.c (_hurd_exec): Use the new accessors to query sigstate
    	pending masks and action vectors.
    	* hurd/ctty-input.c (_hurd_ctty_input): Likewise.
    	* hurd/ctty-output.c (_hurd_ctty_output): Likewise.
    	* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
    	* sysdeps/mach/hurd/sigpending.c (__sigpending): Likewise.
    	* sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
    	* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
    	* sysdeps/mach/hurd/sigwait.c (__sigwait): Likewise.
    	* sysdeps/mach/hurd/spawni.c (__spawni): Likewise.
    	* sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Likewise.
    	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
    	Likewise.
    	* hurd/Versions: Export the new symbols _hurd_sigstate_set_global_rcv,
    	_hurd_sigstate_lock, _hurd_sigstate_pending and _hurd_sigstate_unlock,
    	for libpthread's benefit.
    committed Jan 16, 2011
Commits on Jun 29, 2011
  1. Versions.def: add GLIBC_2.15

    	* Versions.def: Add GLIBC_2.15.
    committed Jun 16, 2011
  2. Hurd signals: fix uninitialized value.

    	* hurd/hurdsig.c (post_signal): Don't call resume() with ACT
    	uninitialized, as it might result in the target thread being left
    	suspended.
    committed Sep 11, 2010
  3. Hurd signals: make sigsuspend POSIX-conformant.

    	* hurd/hurdsig.c (wake_sigsuspend): New function.
    	(post_signal): Wake up sigsuspend calls in the "handle" case.
    	(post_signals): No longer wake up sigsuspend calls indiscriminately.
    committed Sep 11, 2010
  4. Hurd signals: reindent

    	* hurd/hurdsig.c (post_pending): reindent.
    committed May 24, 2011
  5. Hurd signals: refactor check_pending_signals

    	* hurd/hurdsig.c (check_pending_signals): Split into pending_signals,
    	post_pending and post_all_pending_signals.
    	(_hurd_internal_post_signal): Handle the distinction between poll
    	requests and real signals there.
    committed Sep 5, 2010
  6. _hurd_internal_post_signal: Split out inner functions

    By having post_signal and check_pending_signal as top-level functions,
    the way they communicate with the outside is made more transparent.
    
    	* hurd/hurdsig.c (_hurd_internal_post_signal): Make post_signal and
    	check_pending_signal top-level static helper functions.
    	(check_pending_signal): Fix the general poll request test being
    	rendered moot by earlier modifications of signo.
    committed Sep 5, 2010
  7. _hurd_internal_post_signal: Scope variables more restrictively

    	* hurd/hurdsig.c (_hurd_internal_post_signal): Move the variable
    	declarations into the first-level inner functions which actually
    	use them.
    committed Sep 4, 2010
  8. _hurd_internal_post_signal: Split into more functions

    This patch should change nothing besides replacing gotos with function
    calls and return statements.
    
    Note that the "signo == 0" test at the beginning of post_signal, is now
    done on every call.  However, only the first call ever has a zero signo,
    so this does not change the overall behavior.
    
    	* hurd/hurdsig.c (_hurd_internal_post_signal): Use inner functions
    	instead of gotos for the overall flow control.
    committed Sep 4, 2010
Commits on Jun 28, 2011
  1. Remove the --experimental-malloc option

    It's well tested, make it the default.
    drepper committed Jun 28, 2011
  2. Fix crash in GB18030 encoder

    Andreas Schwab committed with drepper Jun 28, 2011
Commits on Jun 27, 2011
  1. Fix handling of RES_USE_INET6 big in nscd

    This fixes BZ #12350 also for nscd.
    drepper committed Jun 27, 2011
  2. Minimal cleanup in innetgr.

    drepper committed Jun 27, 2011
Commits on Jun 26, 2011
  1. Use __gettimeofday instead of gettimeofday

    H.J. Lu committed with drepper Jun 26, 2011
  2. We don't use linkobj/libc.so at runtmie, no need to check for text rels

    This also works around a toolchain issu.
    drepper committed Jun 26, 2011
Commits on Jun 25, 2011
  1. Fix unwind info in 32bit SSE2/SSSE3 strncpy

    H.J. Lu committed with drepper Jun 25, 2011
Commits on Jun 24, 2011
  1. Optimized st{r,p}{,n}cpy for SSE2/SSSE3 on x86-32

    H.J. Lu committed with drepper Jun 24, 2011
  2. nss_db: Quash read implicit declaration warning

    In the function `internal_setent' is used the function read, but the forward
    declaration is missing.  Thusly fixed.
    Marek Polacek committed with drepper Jun 24, 2011