Here's a copy of my latest work, this time kernel and glibc headers only. I'm still working on updating GDB, as incorporating Mark's suggestions leads to some problems with the stock 5.0 code (mainly in the interpretation of the FPU tag word). What are we doing now? We use FXSAVE/FXRSTOR only to save and restore the FPU context as before. Nice and fast. As always, the FPU state is only saved when the FPU is used and restored with an #NM exception. We (correctly) convert the FXSR-format data into the expanded signal context, and include the original FXSR-format data like before. This includes doing a full conversion between tag word formats. We (correctly) convert the FXSR-format data on the PTRACE_[GET|SET]FPREGS requests. We just use the 512-byte FXSR data on PTRACE_[GET|SET]XFPREGS requests. This requires updates to GDB, which I'm working on now. Nothing major, the code is the same as in the kernel. The tag word conversion originally seen in 2.4.0-test1 was almost correct, but this code does a more thorough job - important for GDB 5.0 correctness. As always, please let me know if you have any grievances. Doing the conversion turned out to be a lot less ugly than I had imagined, and as we only need to do it for signals, ptracing and dumping core, it doesn't affect things too greatly. I will add in the core dumping support when the work in this patch gets applied (in whatever form). The signal handler test from my previous email will still work, and I encourage you to verify this. -- Gareth patch-2.4.0test1-ac12-gth2.gz patch-glibc-2.1.3-gth2.gz