Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: direction flag issue?



On Mon, Mar 10, 2008 at 04:45:27PM +0100, Tobias Nygren wrote:

> Hi,
> 
> I stumbled across this message in the release annoucement for recently
> released GCC 4.3.0. It looks like at least our amd64 port and linux
> compat layer needs the fix to work with binaries built with GCC 4.3.
> The FreeBSD PR below has the most straightforward fix for us, I think.
>
> --8<----8<----8<--
> 
> There is one important caveat.  It was discovered after the final
> release has been made that some OS kernels on i?86 and x86_64
> architectures violate the processor specific ABI with regards to the DF
> flag, if a process is interrupted with a signal while doing overlapping
> memmove or running some other code with DF flag set, the signal handler
> might be started with DF flag set on entry to the signal handler.  GCC
> 4.3.0 no longer emits cld instructions unnecessarily, so GCC 4.3.0
> compiled async signal handlers or functions the signal handlers call
> that rely on DF flag being cleared might misbehave.  This will be
> hopefully fixed in the kernels soon and future GCC releases might
> provide an optional workaround for this bug. Fixes for some systems:
> Linux
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
> FreeBSD       http://www.freebsd.org/cgi/query-pr.cgi?pr=121422
> Hurd
> http://sources.redhat.com/ml/libc-alpha/2008-03/msg00020.html

I fixed this for i386 a few months ago, amd64 may still need updating.

Andrew


Home | Main Index | Thread Index | Old Index