From Fedora Project Wiki

Build x86_64_v3 Packages

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Build x86_64_v3 packages in addition to the current x86_64_v1 builds.

Owner


Current status

Detailed Description

This change would introduce a new primary architecture, x86_64_v3. Existing packages built for x86_64 would start being built for v3. The support for installing x86_64 microarch packages are already in libsolv and RPM, but will require changes in DNF and Koji.

Feedback

No feedback at this moment.

Benefit to Fedora

This change allows installing packages compiled against a more recent x86_64 baseline, which can improve system performance for modern machines.

Scope

  • Proposal owners:
    • Extend Koji to support x86_64 architecture levels
    • Add compiler flag definitions for x86_64_v2/v3/v4 to redhat-rpm-config
    • Add support to DNF5 to transparently use packages for higher levels as appropriate
    • Add support to Pungi for x86_64 architecture levels to x86_64 composes
  • Other developers:
    • Release Engineering: Enable and deliver x86_64_v3 repositories and images for x86_64
  • Policies and guidelines: Packaging guidelines need to be updated to note %{x86_64} should be used for architecture conditionals for x86_64 instead of just the plain x86_64.
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: Building microarchitecture packages for modern systems helps Fedora lead in distribution development. However, this change does not align with any specific objective.

Upgrade/compatibility impact

On upgrade, systems that have support for the x86_64_v3 baseline will automatically install x86_64_v3 packages when available.

Early Testing (Optional)

Do you require 'QA Blueprint' support? N

How To Test

To test, a x86_64 system supporting the v3 baseline is required. When available, DNF will select packages with the highest compatible baseline. Testing involves upgrading or installing 45 on a supported system, ensuring that packages installed are compiled for the x86_64_v3 baseline, and validating that packages built for v3 work as expected.

User Experience

Packages compiled against a higher baseline may perform better on systems which support it.

Dependencies

koji, redhat-rpm-config, pungi, dnf5.

Contingency Plan

  • Contingency mechanism: Revert and unpublish x86_64_v3 packages and defer to the next release.
  • Contingency deadline: Beta Freeze
  • Blocks release? No

Documentation

There's no current upstream documentation for microarch handling in DNF, but for reference, these PRs may be useful:

Release Notes

Fedora now provides packages for the x86_64 v3 baseline. When upgrading the system to Fedora 45, DNF will pull packages for x86_64 v3 if the host system is detected as supporting a x86_64 v3 or higher baseline. This may improve system performance on modern machines.