From Fedora Project Wiki


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

  • Name: Nick Clifton [1]
  • Email: nickc@redhat.com
  • Release notes ticket: #101

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 in redhat-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.
  • 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.
  • 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

Release Notes