I really don't want to install a new compiler... :)
I think this was a *very* odd hardware problem. I worked on
this Firday night and Saturday morning. There were differences
in a few object files. All but one seemed compile time/kernel
version related. "drivers/char/tty_ioctl.s" changed like so:
with string.h:
413 leal 53(%esp),%edx
414 leal 25(%esp),%eax
415 movl $2,%ecx
416 movl %edx,%edi
417 movl %eax,%esi
418 #APP
419 cld
420 rep ; movsl
421 #NO_APP
without string.h
413 movl 25(%esp),%eax
414 movl %eax,53(%esp)
415 movl 29(%esp),%eax
416 movl %eax,57(%esp)
This code copies the 8 bytes of control codes from a
termio structure to a termios structure (or vice-versa).
Both of the code fragments should work properly, but
the code with <linux/string.h> would always fail. The
code seems tighter *without* the <linux/string.h>
include, however.
Alas, I can no longer duplicate the problem. I had a
busy weekend and turned of my computer (it's usually
left on at all times). Today I tried to compile another
bad kernel from the source tree that had always failed.
The kernel ran perfectly. I assume turning the machine
off fixed the problem.
Rob
(rriggs@tesser.com)