Binutils version 2.29.1
Summary
Rebase the binutils package from version 2.29 to version 2.29.1. This will bring in the bug-fixes from the 2.29.1 point release, but not add any new features.
Owner
Current status
- Targeted release: Fedora 28
- Last updated: 2018-03-09
- Tracker bug: #1537263
Detailed Description
Switch the binutils package from being based on the 2.29 release of the FSF binutils to being based on the 2.29.1 release. This release was a collection of important bug fixes over the 2.29 release, but no new features were introduced.
In addition, the default build flags will be changed to include -z defs
, so that undefined symbols result in errors. The benefit is that this prevents shipping DSOs which are not correctly linked because refer to versioned symbols as plain undefined symbols, without specifying a symbol version.
Benefit to Fedora
Fewer bugs in the linker and assembler.
Scope
- Proposal owners: Change the source parameter in the binutils.spec rpm and adjust the local patches to take account of the bugs that are now already fixed.
- Other developers:
- For the rebase: In theory none - the change should be completely transparent. In practice since the binutils are part of the C/C++ compiler toolchain there is the possibility that the change introduces a new bug which affects other packages.
- For the
-z defs
flags change (which will be implemented inredhat-rpm-config
):- Add missing DSOs or avoid using compatibility symbols.
- Use
-z undefs
if the DSO links against a main program at run time, where undefined symbols are expected. - See Using RPM build flags for details.
- Release engineering: https://pagure.io/releng/issue/7251
- List of deliverables: Just the binutils packages.
- Policies and guidelines: No updates needed.
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
The binutils are backwards compatible with previous releases, so no changes should be necessary.
How To Test
The binutils package does include its own set of testsuites which check basic functionality. The real test however is by rebuilding other packages which depend upon the binutils, or more likely, upon gcc. If these packages continue to work then the binutils update has not broken anything.
User Experience
The change should not be noticeable to the user.
Dependencies
This update has no hard dependencies on any other package. There are other packages that do depend upon the binutils however. Most notably gcc.
Contingency Plan
- Contingency mechanism: Revert to the 2.29 binutils as used in Fedora 27. This work can be done by me, should it prove necessary.
- The contingency mechanism was invoked for the
-z defs
change, which was reverted.
- The contingency mechanism was invoked for the
- Contingency deadline: Beta Freeze.
- Blocks release? No
- Blocks product? None
Documentation
The 2.29.1 release was announced here: https://www.sourceware.org/ml/binutils/2017-09/msg00311.html Unfortunately there is no list of the bugs that have been fixed in this release. A scan of the sources however indicates that the following FSF binutils bugzilla PRs were fixed: 20125 21433 21441 21782 21813 21820 21849 21861 21884 21909 21923 21924 21939 21961 21964 21990 21994 21995 22061 22064