Re: [BUG] ppp/slip fails with 1.3.6[78]

Robert Riggs (rriggs@tesser.com)
Tue, 27 Feb 1996 01:58:29 -0700 (MST)


>
> Robert Riggs: "Re: [BUG] ppp/slip fails with 1.3.6[78]" (Feb 24, 6:05):
> >
> > I am using gcc-2.7.0. I have been trying to resolve this
> > for the past 2 days. I got to the point of installing new
> > source, so an out-of-date object file could not be the
> > case. Besides, I'm religious with 'make clean' :). I've
> > been using the same compiler to compile kernels and
> > programs since Jun 15 1995. Just about every program I
> > use on this box has been compiled with this gcc. I have
> > never had a problem with it.
>
> Ok, I just still think it's _very_ weird. Just to humor me, could you
> try gcc-2.7.[12] and see if it changes anything?
>
> Or if you don't want to change compilers, you could do two source trees
> and do a compile with and without that <linux/string.h> line. And then
> you compare the object files for differences. When you find an object
> file that differs, you compile it into assembly and see what the
> difference in the assembly is and send me that?
>
> I could do it myself, but I'm way too lazy. Besides, it's probably one
> of the ppp files that I never compile anyway..
>
> If you do find something out, I'm all ears. I don't want to remove that
> line from the kenrel, because the line is obviously correct, and I want
> to understand _why_ removing it would fix anything (also, I know that
> others are using ppp with 1.3.68 without these problems, ugh).
>
> Linus
>
>

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)