Translation(s): English - Italiano

(!) ?Discussion


Background Information

The GCC compiler detects the underlying architecture of the build computer before producing a binary specific to that machine.

On Pentium compatible computers, a compiler should default to using Pentium instruction sets, unless a command line switch is provided to utilize extended instructions. The GCC compiler does not behave in this manner, and requires a switch to switch off the extended instruction sets, which are automatically included. Without the switch, produced binary files may be non-portable, because not all Pentium compatible processors support the extended instruction sets.

Unfortunately at the time of writing, almost all packages come with a build script that may result in a non-generic or non-portable binary being produced, since they do not provide include the i586 switch. This may cause non-portable binaries to be produced.

The problem can occur on any package compiled with the GNU C Compiler suite.

The pentium-builder kludge

A kludge, in the form of the pentium-builder wrapper, has been implemented to cause the GCC compiler to behave in a more appropriate manner. This wrapper forces the i586 switch to be activated on the compiler. However the binaries may still be non-portable due to other machine specific implementations used by the compiler.