Re: i386 memory corrupted by free_initmem()

Andries.Brouwer@cwi.nl
Sat, 17 May 1997 03:27:12 +0200


From torvalds@transmeta.com Sat May 17 02:07:26 1997

> Thus, the original code will allow all data in c0217000 - c0217610
> to be overwritten. This had various amusing consequences.

I can imagine. It also clearly indicates that your linker is bad.

Note that I'll probably use the "ALIGN(4096)" thing for other things too
in the near future (getting rid of some of the data stuff in "head.S"),

Well, if it is an important use, then probably you should find out
what version of ld is required, and let the Makefile test that ld
is sufficiently recent, like it already does for gcc.
On the other hand, if the only use is to save a few kB, then I hope
you will also consider the importance of stability.

Stability not only means that the kernel doesn't crash - it also
means that one doesn't need to upgrade software every few months,
and that a Linux system is loosely coupled, in the sense that
all subsystems tolerate great variation in the version of other
subsystems.

(Old joke: What does one use DOS for? To play games.
What does one use Linux for? To upgrade software and recompile the kernel.)

(My old a.out binaries from 1992 still work perfectly,
also with recent kernels - apart from very few annoying details
like the locking stuff. That is how it should be.
And in unimportant cases, like recently with expr, the kernel
Makefile should adapt to both old and new behaviour.)

Andries

[PS I muttered about gcc that stopped working, but that is fixed again.]