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
- Name: Artur Iwicki
- Email: <fedora@svgames.pl>
- Name: Joost van der Sluis
- Email: <joost@cnoc.nl>
Current status
- Targeted release: Fedora 32
- Last updated: 2019-10-28
- Tracker bug: #1766231
- Release notes tracker: #416
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.
- Update the
- 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 anExcludeArch:
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.