Messages in this thread |  | | | From | Chris Lattner <> | | Subject | Re: RELEASE BLOCKER: Linux doesn't follow x86/x86-64 ABI wrt direction flag | | Date | Wed, 5 Mar 2008 16:36:41 -0800 |
| |
>>> Richard Guenther wrote: >>>> We didn't yet run into this issue and build openSUSE with 4.3 >>>> since more >>>> than >>>> three month. >>> >>> Well, how often do you take a trap inside an overlapping memmove()? >> >> How hard is it to change the kernel signal entry path from "pushf" to >> "pushf;cld"? Problem solved, no? > > The problem is with old kernels, which by definition stay unfixed.
My impression was that the problem occurs in GCC compiled code in the kernel itself, not in user space:
1. User space has direction flag set. 2. signal occurs 3. kernel code is entered 4. kernel code does string operation <boom>
Fixing this instance of the problem by changing GCC requires (at least) recompiling the kernel.
Changing the ABI for this seems like a pretty crazy solution to a very minor and easily fixable kernel bug. Distros have control over what kernels they ship, they have absolute power to ensure this doesn't affect their users when running default kernels - without changing the compiler.
-Chris
|  |