[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