Incomplete support for DT_RELR relocations on Ubuntu 22.04
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
Medium
|
Ubuntu on IBM Power Systems Bug Triage | ||
binutils (Ubuntu) |
Fix Released
|
Medium
|
Canonical Foundations Team | ||
Jammy |
Fix Released
|
Medium
|
Matthias Klose | ||
Kinetic |
Fix Released
|
Medium
|
Canonical Foundations Team |
Bug Description
SRU Justification:
==================
[Impact]
* The latest glibc uses DT_RELR relocations,
but it turned out that the linker support is still incomplete,
as of binutils-
* It lacks the fix/commit 'PowerPC64 DT_RELR relative reloc addresses'.
* As discussed at the binutils mailing list:
https:/
this fixes several (glibc) regressions (from 574 to 17).
* Instead of stashing r_offset final address calculations in
ppc64_
section/offset pairs need to be kept.
[Test Plan]
* Build and run the official (make) check:
git clone git://sourcewar
mkdir build && cd build
../glibc/
[Where problems could occur]
* In case relr_addr is not replaced everywhere it's deletion in
elf64-ppc.c can cause problems, which will mainly occur at build time.
* The relr section/offset array may lead to problems if the array is not
properly handled or used.
* The rewrite of append_relr_off may cause issues due to wrong allocs
erroneous pointer arithmetic or array handling.
* The entirely new sort_relr function may introduce new code issues
or performance issues.
* The adjustments of ppc64_elf_
the new relr code could be done wrong
in which case the linker support is still not working.
* But the patch was discussed at the upstream mailing list:
https:/
* and is limited to ppc, and even to file 'elf64-ppc.c'.
__________
== Comment: #0 - Matheus Salgueiro Castanho <email address hidden> - 2022-06-09 09:32:29 ==
---Problem Description---
Latest glibc uses DT_RELR relocations, but linker support is incomplete as of binutils-
PowerPC64 DT_RELR relative reloc addresses
https:/
As mentioned in the binutils mailing list when this patch was discussed, this fixes several glibc regressions:
https:/
Contact Information = Matheus <email address hidden>
---uname output---
N/A
Machine Type = N/A
---Debugger---
A debugger is not configured
---Steps to Reproduce---
git clone git://sourcewar
mkdir build && cd build
../glibc/configure --prefix=/usr && make -j8 && make check
Userspace tool common name: binutils
The userspace tool has the following bit modes: 64-bit
Userspace rpm: binutils
Userspace tool obtained from project website: na
*Additional Instructions for Matheus <email address hidden>:
-Attach ltrace and strace of userspace application.
tags: | added: architecture-ppc64le bugnameltc-198498 severity-medium targetmilestone-inin2210 |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → glibc (Ubuntu) |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
importance: | Undecided → Medium |
Changed in glibc (Ubuntu): | |
importance: | Undecided → Medium |
affects: | glibc (Ubuntu) → binutils (Ubuntu) |
tags: | added: fr-2459 |
Changed in binutils (Ubuntu Jammy): | |
importance: | Undecided → Medium |
Changed in binutils (Ubuntu Kinetic): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Canonical Foundations Team (canonical-foundations) |
Changed in binutils (Ubuntu Jammy): | |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
description: | updated |
Changed in binutils (Ubuntu Kinetic): | |
status: | New → Fix Released |
Changed in binutils (Ubuntu Jammy): | |
status: | New → In Progress |
assignee: | Canonical Foundations Team (canonical-foundations) → Matthias Klose (doko) |
Changed in ubuntu-power-systems: | |
status: | New → In Progress |
Changed in ubuntu-power-systems: | |
status: | In Progress → Fix Committed |
tags: | removed: verification-needed |
tags: |
added: verification-done-jammy removed: verification-needed-jammy |
Changed in ubuntu-power-systems: | |
status: | Fix Committed → Fix Released |
------- Comment From <email address hidden> 2022-06-09 11:13 EDT-------
This fix is needed into Ubuntu 22.04.x releases.
Fix is already available in Ubuntu 22.10