[all-commits] [llvm/llvm-project] 0a41a3: Statically linked AArch64 binaries crash at loadin...

Paschalis Mpeis via All-commits all-commits at lists.llvm.org
Mon Jul 8 23:32:40 PDT 2024


  Branch: refs/heads/users/paschalis-mpeis/bolt-static-binary-patchelf-fix
  Home:   https://github.com/llvm/llvm-project
  Commit: 0a41a3a948ce9ff14b471d9d1e48f7537d962b1a
      https://github.com/llvm/llvm-project/commit/0a41a3a948ce9ff14b471d9d1e48f7537d962b1a
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    A bolt/test/AArch64/patch-elfstatic-libc.test

  Log Message:
  -----------
  Statically linked AArch64 binaries crash at loading time.

Executing such a binary would result in:
> Unexpected reloc type in static binary.
> [1]    1234 abort (core dumped)


  Commit: ec7f76862b9f37c912446aca9ff7cc46662a62b7
      https://github.com/llvm/llvm-project/commit/ec7f76862b9f37c912446aca9ff7cc46662a62b7
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/test/AArch64/patch-elfstatic-libc.test

  Log Message:
  -----------
  [BOLT][AArch64] Fix static binary patching for ELF.

When patching statically linked binaries, avoid patching GOT entries
that did not belong to the original text section and had an alias.

One such special case is the '_init' function that belongs to the '.init'
section. It has '.init' as an alias, which points to the same address of
'_init' in the original binary.


Compare: https://github.com/llvm/llvm-project/compare/c79abd9d5c14...ec7f76862b9f

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list