Features/ArchitectureSupport

= ArchitectureSupport =

Summary
Change what architectures Fedora supports, and what Fedora provides on those architectures.

Owner

 * Name: Bill Nottingham
 * Name: Jakub Jelinek
 * Name: Kyle McMartin
 * email: notting@redhat.com, jakub@redhat.com, kmcmartin@redhat.com

Current status

 * Targeted release: Fedora 11
 * Last updated: 2009-03-05
 * Percentage of completion: 100%

Detailed Description
For Fedora 11, we'd like to revisit what architectures Fedora supports, and change some of our defaults so that we work better on those architectures.

The main user-visible changes would be:
 * 32-bit x86 would be built for i586 by default.
 * The PAE kernel would be installed on other 32-bit hardware, where it is supported

Benefit to Fedora
By optimizing better for the architectures which we support, we give better performance to our users.

By using the PAE kernel where appropriate, we allow features like ExecShield to be used.

By changing the minimum kernel for glibc, we allow the removal of various hacks, tests, and workarounds in the glibc code.

Scope

 * The default 32-bit x86 target in koji would be changed from i386 to i586
 * yum and anaconda would need changes to select the proper kernel
 * The default compiler flags for gcc in redhat-rpm-config would be changed as follows:
 * i386: -march=i586 -mtune=generic
 * s390x: -march=z9-109 -mtune=z10
 * The required kernel for glibc would be changed to 2.6.18
 * binutils for ix86 would be compiled to support x86_64 output
 * A mass rebuild would need to be done for the RPM architecture changes and the compiler flag changes

How To Test
Install 32-bit Fedora on PAE-supporting 32-bit hardware (in other words: Pentium II/III/4, or Atom.) Make sure the PAE kernel is the default.

Additional testing could benchmark apps to see any difference in code size and app speed.

User Experience
Users of the x86 distribution should notice slight speed improvements.

Dependencies
No external dependencies outside the changes listed in Scope.

Contingency Plan
For compiler flags and default RPM architecture: if we need to change after the mass rebuild, we'd need another mass rebuild.

For x86_64-on-32: do not ship x86_64 on 32-bit x86, only ship 32-bit kernels. This contingency plan has been enacted.

For PAE-on-32: default to the normal i686 kernel, with PAE an option.

Documentation

 * None specifically.

Release Notes
In Fedora 11, the following changes have been made to architecture support:


 * By default, the PAE kernel will be used on 32-bit hardware, where appropriate

Comments and Discussion

 * See Talk:Features/ArchitectureSupport