Clearing the direction flag before calling a signal handler
Erik Trulsson
ertr1013 at student.uu.se
Sat Mar 15 11:13:39 PDT 2008
On Sat, Mar 15, 2008 at 06:51:53PM +0100, Peter Schuller wrote:
> Hello,
>
> I found an exchange concerning a difficult to debug problem that may be
> affecting FreeBSD. I wasn't sure whether to post here or just file a bug, but
> under the circumstances I opted for the former. Apologies if it is considered
> noise.
>
> I was reading the exchange here:
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469058
>
> Referencing the following patch to Linux;
>
> http://lkml.org/lkml/2008/3/5/306
>
> The exchange in the Debian bug tracker indicates kfreebsd 6/7 has the same
> problem as Linux. Being a kernel issue, that indicates vanilla FreeBSD may
> likely be affected.
>
> I neither have the setup nor the knowledge to effectively evaluate this
> myself, but felt that it was obscure/diagnostically difficult enough that i
> wanted to bring it to somebody's attention.
>
There was also a long discussion on the gcc developers list about this
issue recently.
It seems to already have been taken care of in FreeBSD by the following
commit to -CURRENT:
kib 2008-03-13 10:54:38 UTC
FreeBSD src repository
Modified files:
sys/amd64/amd64 machdep.c
sys/amd64/ia32 ia32_signal.c
sys/amd64/linux32 linux32_sysvec.c
sys/i386/i386 machdep.c
sys/i386/linux linux_sysvec.c
sys/i386/svr4 svr4_machdep.c
sys/pc98/pc98 machdep.c
Log:
Since version 4.3, gcc changed its behaviour concerning the i386/amd64
ABI and the direction flag, that is it now assumes that the direction
flag is cleared at the entry of a function and it doesn't clear once
more if needed. This new behaviour conforms to the i386/amd64 ABI.
Modify the signal handler frame setup code to clear the DF {e,r}flags
bit on the amd64/i386 for the signal handlers.
jhb@ noted that it might break old apps if they assumed DF == 1 would be
preserved in the signal handlers, but that such apps should be rare and
that older versions of gcc would not generate such apps.
Submitted by: Aurelien Jarno <aurelien aurel32 net>
PR: 121422
Reviewed by: jhb
MFC after: 2 weeks
--
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se
More information about the freebsd-current
mailing list