From Fedora Project Wiki

Revision as of 16:01, 28 October 2019 by Bcotton (talk | contribs) (Add trackers)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Free Pascal Compiler 3.2.0

Summary

Update the Free Pascal Compiler used within Fedora to version 3.2.0, once it is published, and enable building (previously unsupported) AArch64 and ppc64le packages using the compiler.

Owners


Current status

Detailed Description

The Free Pascal Compiler team plans to release a new release, 3.2.0, somewhere until the end of this year (2019). This date falls within the Fedora 32 release schedule, so the new compiler version could be introduced into F32 once it's released.

Benefit to Fedora

The Free Pascal Compiler will support new architectures, which in turn will allow programs compiled using FPC to run on more architectures supported by Fedora.

See also New Features 3.2 for a list of other new compiler features.

Scope

All packages depending on fpc should be rebuilt with the new fpc once it hits F32, or, if there is not enough time for that, just all packages built after the new fpc hits the buildroots.

  • Proposal owners:
    • Update the fpc package to version 3.2.0.
    • Cross-compile the compiler for AArch64 and ppc64le (required for bootstrapping).
    • Add AArch64 and ppc64le to the ExclusiveArch: tag in the package spec.
    • Build the compiler for the new architectures, using the cross-compiled binaries.
    • Build the compiler once again, this time using the self-hosted binary.
    • Update the fpc-rpm-macros package to accurately reflect the new, expanded architecture list.
  • Other developers: In the first few days or weeks, just voluntary rebuilds using the new fpc. Should there be any build failures, look at the Changes 3.2 page to see if the package is affected by any backwards-incompatible change. If the packaged program/library does not support one of the newly introduced architectures (AArch64/ppc64le), either resolve the issue or add an ExcludeArch: tag to the spec.
  • Release engineering: Mass rebuild requested for F32.
  • Policies and guidelines: No changes needed.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

No impact

How To Test

Since the main impact of this change is adding support for new architectures, a mass-rebuild of dependent packages will also act as a test.

Users wanting to test this change may want to submit a scratch build against rawhide. If needed, a [b]copr[/b] repo may also be created, so anyone interested may install the compiler on F31 or F30.

User Experience

FPC-dependent packages will become available on a larger number of architectures.

Dependencies

Lazarus depends on FPC exact version, so it will need to be rebuilt.

Contingency Plan

If bugs are discovered, I'd appreciate help from the package owners in preparing self-contained testcases to speed up analysis and fixing the bugs. I do not expect the compiler to introduce any bugs for x86 / x86_64 / ARM, so the main question will be whether the new AArch64 and ppc64le targets work correctly.

  • Contingency mechanism: If errors occur only for AArch64 / ppc64le builds, keep the compiler at the new version (3.2.0), but disable AArch64 and ppc64le (attempt to enable them again once F32 branches from Rawhide). If errors are also spotted on x86 / x86_64 / ARM, revert to the the older version (3.0.4). After choosing either option, perform a mass rebuild of dependent packages.
  • Contingency deadline: Before release
  • Blocks release? No
  • Blocks product? No

Documentation

Free Pascal wiki pages:

Release Notes

Fedora 32 ships with Free Pascal Compiler 3.2.0, see the New Features 3.2 page for a list of new features and consult the Changes 3.2 page for a list of backwards-incompatible changes.