diff options
author | Roland McGrath <roland@gnu.org> | 2008-03-08 21:39:00 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2008-03-08 21:39:00 +0000 |
commit | d2ea0b965981bb7e334d33f2e8b42a2a70886fc5 (patch) | |
tree | 257b58e0d051cc3b00adf5c334e0e1f5a198b995 /sysdeps/mach/hurd | |
parent | b3278554af25d7431fdf03388278e22b51578fab (diff) | |
download | glibc-d2ea0b965981bb7e334d33f2e8b42a2a70886fc5.tar.gz glibc-d2ea0b965981bb7e334d33f2e8b42a2a70886fc5.tar.xz glibc-d2ea0b965981bb7e334d33f2e8b42a2a70886fc5.zip |
2008-03-08 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Clear DF bit in thread state's eflags. Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
Diffstat (limited to 'sysdeps/mach/hurd')
-rw-r--r-- | sysdeps/mach/hurd/i386/trampoline.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c index dddc6f3ef6..99d9308360 100644 --- a/sysdeps/mach/hurd/i386/trampoline.c +++ b/sysdeps/mach/hurd/i386/trampoline.c @@ -1,5 +1,5 @@ /* Set thread_state for sighandler, and sigcontext to recover. i386 version. - Copyright (C) 1994,1995,1996,1997,1998,1999,2005 + Copyright (C) 1994,1995,1996,1997,1998,1999,2005,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -21,6 +21,7 @@ #include <hurd/signal.h> #include <hurd/userlink.h> #include <thread_state.h> +#include <mach/machine/eflags.h> #include <assert.h> #include <errno.h> #include "hurdfault.h" @@ -218,6 +219,9 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler, /* We pass the handler function to the trampoline code in %edx. */ state->basic.edx = (int) handler; + /* The x86 ABI says the DF bit is clear on entry to any function. */ + state->basic.efl &= ~EFL_DF; + return scp; } |