** Changed in: ubuntu-power-systems
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to binutils in Ubuntu.
https://bugs.launchpad.net/bugs/1978129

Title:
  Incomplete support for DT_RELR relocations on Ubuntu 22.04

Status in The Ubuntu-power-systems project:
  Fix Committed
Status in binutils package in Ubuntu:
  Fix Released
Status in binutils source package in Jammy:
  Fix Committed
Status in binutils source package in Kinetic:
  Fix Released

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-2.38-3ubuntu1 on Ubuntu 22.04.

   * It lacks the fix/commit 'PowerPC64 DT_RELR relative reloc
  addresses'.

   * As discussed at the binutils mailing list:
     https://sourceware.org/pipermail/binutils/2022-March/119921.html
     this fixes several (glibc) regressions (from 574 to 17).

   * Instead of stashing r_offset final address calculations in
     ppc64_elf_size_stubs for use by ppc64_elf_build_stubs,
     section/offset pairs need to be kept.

  [Test Plan]

   * Build and run the official (make) check:
     git clone git://sourceware.org/git/glibc.git
     mkdir build && cd build
     ../glibc/configure --prefix=/usr && make -j8 && make check

  [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_size_stubs and ppc64_elf_build_stubs to
     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://sourceware.org/pipermail/binutils/2022-March/thread.html#119921

   * and is limited to ppc, and even to file 'elf64-ppc.c'.
  __________

  == Comment: #0 - Matheus Salgueiro Castanho <mscasta...@ibm.com> - 2022-06-09 
09:32:29 ==
  ---Problem Description---
  Latest glibc uses DT_RELR relocations, but linker support is incomplete as of 
binutils-2.38-3ubuntu1 on Ubuntu 22.04. It lacks the following fix integrated 
into the upstream 2.38 branch:

  PowerPC64 DT_RELR relative reloc addresses
  
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=e4a35c7319628045302d4c597cb27f1b0a08c858

  As mentioned in the binutils mailing list when this patch was discussed, this 
fixes several glibc regressions:
  https://sourceware.org/pipermail/binutils/2022-March/119921.html

  Contact Information = Matheus Castanho/mscasta...@ibm.com

  ---uname output---
  N/A

  Machine Type = N/A

  ---Debugger---
  A debugger is not configured

  ---Steps to Reproduce---
   git clone git://sourceware.org/git/glibc.git
  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 Castanho/mscasta...@ibm.com:
  -Attach ltrace and strace of userspace application.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1978129/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to