From Fedora Project Wiki


Fedora 12 x86 Support

Summary

With Fedora 11, we moved the base architecture to i586. With Fedora 12, we are changing the base architecture to a specific i686 instruction set level.

Owner

  • email: notting@redhat.com

Current status

  • Targeted release: Fedora 40
  • Last updated: 2009-06-15
  • Percentage of completion: 0% (work will not proceed until a decision is made; the work itself is not complex)

Detailed Description

Fedora 11 has i586 as the base 32-bit x86 architecture.

For Fedora 12, we will switch to i686 + SSE2 as the base architecture.

This means we will lose support for the following CPU families:

  • Intel i586 (all)
  • Intel Pentium Pro
  • Intel Pentium II
  • Intel Pentium III
  • 32-bit AMD Athlon
  • AMD Geode
  • VIA C3
  • Transmeta Crusoe

Benefit to Fedora

  • Faster binaries on mainstream architectures (Pentium M, Via C7, all 64-bit arches, Atom)
  • Ability to use GCC's autovectorization to improve performance
  • By using SSE2, we provide more consistent and faster floating-point math results
  • Clarifies our support targets more clearly,

Scope

  • The default 32-bit x86 target in koji would be changed from i386 to i686
  • The kernel would build a kernel and kernel-PAE package for i686
  • The default compiler flags for gcc in redhat-rpm-config would be changed as follows:
    • i386: -march=i686 -mtune=generic -mfpmath=sse -msse2
  • A mass rebuild would need to be done for the RPM architecture changes and the compiler flag changes

How To Test

  • Ensure that all packages are built for i686
  • Additional testing could benchmark apps to see any difference in code size and app speed.

User Experience

The 32-bit x86 distro should be faster; basic benchmarks show at least a 1% improvement in generic code, even without autovectorization.

Dependencies

  • gcc and redhat-rpm-config would need changed for the default compiler flags
  • koji configuration would need a tweak for the default architecture
  • the kernel would need to change its package output

Contingency Plan

If necessary, we can revert to providing i586 binaries. However, once we start a mass rebuild, this would require another mass rebuild to undo.

Documentation

There should not be any required.

Release Notes

A restating of the 'detailed description' above should be sufficient.

Comments and Discussion