[Pkg-sysvinit-devel] Bug#506481: initscripts: Fix to allow falsified cpu information in /proc/cpuinfo

Petter Reinholdtsen pere at hungry.com
Thu Jul 30 10:15:27 UTC 2009


reassign 506481 gcc
thanks

[Mark Hobley]
> The problem is to do with compatibility with machines of an earlier
> family.
>
> For example, the 80686 series processor is compatible with the
> 80386, 80486, and 80586 families. However, because of cpu
> identification, the toolchains detect that the processor is an
> 80686, and build with superset instructions, breaking compiled
> binary compatibility with the 80386 and 80486 series processors,
> even though the processors are binary compatible.
>
> It would be nice if we could switch the kernel into 80386 or 80486
> compatibility mode, so that all machines run the same code
> regardless of their families.
>
> Since posting this, I have discovered a deeper problem within the
> kernel itself, and the gnu C library. I will be forking both the
> kernel and the C library, and hardcoding the appropriate values into
> the tables.
> 
> It was never a good idea to use local family identification, when
> builds are required to run across processors from different
> generations.
>
> It is especially annoying to have binary code that runs fine on one
> machine, and then have the system halt with a bug int 6 on another
> machine, even though the processors both support a common
> instruction set.  (This occurs because the compiler on the newer
> processor includes instructions which are not valid on the earlier
> generation machine. Overriding the cpu identification would prevent
> this).

Right.  This seem to be a problem that need to be solved by the
compiler, and not by initscripts.  Reassigning to gcc.

Happy hacking,
-- 
Petter Reinholdtsen





More information about the Pkg-sysvinit-devel mailing list