I sent the following email to Nvidia about a bug in their most recent drivers for ia64. I will add that this bug occurs in a section of code that precedes the alloc instruction within the subroutine, a practice I cannot find recommended anywhere. My work around was to add a "bogus" subroutine to the calling routine that required one more out slot. This worked and I now have FlightGear running again.
---------- Forwarded Message ---------- Subject: Bug in 1.0-5336 for ia64 Date: Tue, 29 Jun 2004 11:27:53 -0700 From: Richard Harke <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Bad news: I have run into a bug in the driver set for ia64 Good news: I can tell you exactly what the bug is so it should be easy to fix. I am refering explicitly to: NVIDIA-Linux-ia64-1.0-5336-pkg1.run When I run FlightGear, flight simulator, I get an illegal instruction fault and of course the whole program aborts The machine is an HP zx2000 running debian linux kernel is 2.4.25 libc is glibc-2.3.2.ds1-13 X11 is 4.3.0 from debian unstable. CAUTION: ia64 assembly language discussed, please let real programmer read this. I ran it again under GDB It shows the illegeal instruction to be in _nv003618gl () from /usr/lib/tls/libGLcore.so.1 The instruction in question is mov r34 = pr At first this does not look like an illegal instruction but the problem is that r34 is not visible in the current frame. This routine takes two int's and a float so the calling frame has just 2 output registers meaning only r32 and r33 are visible until the called routine does an alloc instruction. Of course, in many cases this will "accidentally" work because the caller has other calls that require more than 2 output registers and the compiler will set the number of output registers to the max needed. For the time being, I will try a work around on flight gear and hope I don't hit more instances of this bug. It looks like the kind of thing that could occur in more than one place. The switch from pre tls libc to tls libc has been very painful for me and I really look forward to the availablility of Nvidia drivers that support kernal 2.6.x But I do hope you fix this bug first. Richard Harke -------------------------------------------------------

