From 852ee61ee268dc3b2a7d501e02b94578ebe66e27 Mon Sep 17 00:00:00 2001 From: Petr Bokoc Date: Nov 27 2018 22:23:21 +0000 Subject: 183 - Update i686 architectural baseline to include SSE2 --- diff --git a/modules/release-notes/pages/sysadmin/Distribution.adoc b/modules/release-notes/pages/sysadmin/Distribution.adoc index 82bc226..b15a322 100644 --- a/modules/release-notes/pages/sysadmin/Distribution.adoc +++ b/modules/release-notes/pages/sysadmin/Distribution.adoc @@ -35,6 +35,31 @@ Fedora 29 drops support for big endian IBM POWER (`ppc64`) systems. This change comes after big-endian ppc64 systems have been supported in a "maintenance only" mode for several years, and is largely caused by upstream focus on little endian `ppc64le`. For more detailed justification behind this change, see the link:++https://lists.fedoraproject.org/archives/list/ppc@lists.fedoraproject.org/message/D6G5RQUTRYGZ5Y4XIPMADMUSH2PTZDO4/++[mailing list announcement]. +== Update i686 architectural baseline to include SSE2 + +In previous releases, `i686` RPM packages were built in a way that was compatible with certain very old processors such as Intel Pentium III. +The only addition over the i686/Pentium Pro baseline is a requirement to support long NOPs, for Intel CET. +However, the majority of `i686` package installations is actually on `x86_64` systems as multi-lib RPMs. +Furthermore, there are link:++https://lists.fedoraproject.org/archives/list/x86@lists.fedoraproject.org/thread/ZHV6I4IEO7GRYAZ4TUMO5VH2ZHLCNJZQ/++[reports that the i686 kernel does not run stable on old hardware which is not `x86_64` capable]. + +Fedora 29 changes build requirements for `i686` packages in such a way that they require the instruction set architecture (ISA) of early `x86_64` CPUs. +Specifically, the following changes are made to 32-bit packages to optimize them for use on current `x86_64` systems: + +* The default compiler flags are changed to `-march=i686 -msse2 -mtune=generic -mfpmath=sse -mstackrealign`. +This enables SSE2 support with optimal backwards compatibility due to automatic stack realignment. (16-byte stack alignment was introduced with SSE2 support in the i386 ABI, but old binaries only provide 4-byte stack alignment.) + +* `x86` packages can use SSE2 optimizations unconditionally. + +* This increases compatibility with some upstreams which have mostly given up on support for non-SSE2 x86 systems. + +* link:++https://gcc.gnu.org/PR323++[Excess precision problems inherent to the legacy i387 FPU] disappear, and math results become more predictable. + +The latter two items are primarily a benefit to those developers who work on Fedora itself. + +One notable impact of this change is that **32-bit x86 systems which lack SSE2 support will not be able to install or upgrade to Fedora 29**. +This only applies to 32-bit x86 systems. For 64-bit x86 systems, SSE2 support is a required support of the baseline ABI and already extensively used by Fedora. + + == Rename Atomic Workstation to Silverblue Fedora Atomic Workstation has been renamed to Fedora Silverblue and has been released alongside Fedora 29. See the xref:fedora-silverblue::f29-release-notes.adoc[Silverblue section] for release notes.