Newest binutils-2.9.5.0.16 looks broken (_SMP_)

Richard B. Johnson (root@chaos.analogic.com)
Fri, 22 Oct 1999 17:08:27 -0400 (EDT)


I have binutils-2.9.1.0.4 installed. I have been using Linux-2.3.13
for quite some time. It has never crashed nor stopped working.

This is a SMP machine:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 5
model name : Pentium II (Deschutes)
stepping : 1
cpu MHz : 400.913969
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx osfxsr
bogomips : 400.59

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 5
model name : Pentium II (Deschutes)
stepping : 1
cpu MHz : 400.913969
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx osfxsr
bogomips : 399.77

I installed binutils-2.9.5.0.16, the latest. I rebuilt the kernel
from a 'make clean' state, i.e., same configuration. The new kernel
boots and seems to work --except.....

After an hour of editing, using 'vi' (vim), the machine just stops.
There is no response from the keyboard. Magic keys don't work, and
I can't ping the machine on the network.

A hard reset is necessary.

I tried this several times over the past week. If the machine is idle
or is being accessed over the network everything remains okay. However,
activity from the keyboard will eventually make the machine stop.

So I reinstalled the previous binutils and the machine is stable
again. In an attempt to find out what is happening, I performed the
following test.

Conditions of test:
(1) I changed the main Makefile so that ".version" was not incremented.
This was done by:

newversion:
@if [ ! -f .version ]; then \
echo 1 > .version; \
else \
expr 0`cat .version` + 0 > .version; \
fi

... adding 0 instead of 1...

I verified that binutils-2.9.1.0.4 was installed.
I did `make clean ; make bzImage`
Then I copied ../linux/vmlinux to ../linux/vmlinux.ORIG

Then I installed binutils-2.9.5.0.16
I did `make clean ; make bzImage`

These were both single job makes, so everything should be in the same
order. Further, I killed all the daemons so I had so much memory that
gcc should never be starved and do different optimizations on different
builds.

The two files, vmlinux and vmlinux.ORIG, are the same size. However,
they are so different that:

`cmp -l vmlinux vmlinux.ORG`

shows every byte-sequence different.

So it means that the newest binutils and a previous version do not
produce the same code. This is strange because the linking rules
should not have changed nor should have the opcode generation.

If there was a bug fixed (or added), there may be a section of
code that doesn't compare because of offset changes, etc. However,
the entire file shouldn't be different. It is.

I don't have the time to proceed from here. However, until the
problem with the new binutils is found, I suggest you don't use
it if you are looking for kernel problems.

Cheers,
Dick Johnson

Penguin : Linux version 2.3.13 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/