diff --git a/binutils-BPF-reloc-4.patch b/binutils-BPF-reloc-4.patch new file mode 100644 index 0000000..a664518 --- /dev/null +++ b/binutils-BPF-reloc-4.patch @@ -0,0 +1,38 @@ +diff -rup binutils.orig/bfd/bpf-reloc.def binutils-2.41/bfd/bpf-reloc.def +--- binutils.orig/bfd/bpf-reloc.def 2023-10-30 10:41:59.114273359 +0000 ++++ binutils-2.41/bfd/bpf-reloc.def 2023-10-30 11:09:41.316109162 +0000 +@@ -72,3 +72,20 @@ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + true) /* pcrel_offset */ ++ ++ /* R_BPF_64_NODYLD32 is not used by GNU tools - but it is generated by LLVM. ++ We provide an entry here so that tools like strip can safely handle BPF ++ binaries generated by other tools. */ ++ BPF_HOWTO (R_BPF_64_NODYLD32, /* type */ ++ 0, /* rightshift */ ++ 0, /* size */ ++ 0, /* bitsize */ ++ false, /* pc_relative */ ++ 0, /* bitpos */ ++ complain_overflow_dont, /* complain_on_overflow */ ++ bpf_elf_generic_reloc, /* special_function */ ++ "R_BPF_64_NODYLD32", /* name */ ++ false, /* partial_inplace */ ++ 0, /* src_mask */ ++ 0, /* dst_mask */ ++ false) /* pcrel_offset */ +diff -rup binutils.orig/include/elf/bpf.h binutils-2.41/include/elf/bpf.h +--- binutils.orig/include/elf/bpf.h 2023-10-30 10:41:59.332273599 +0000 ++++ binutils-2.41/include/elf/bpf.h 2023-10-30 10:59:44.475368448 +0000 +@@ -30,8 +30,8 @@ START_RELOC_NUMBERS (elf_bpf_reloc_type) + RELOC_NUMBER (R_BPF_64_64, 1) + RELOC_NUMBER (R_BPF_64_ABS64, 2) + RELOC_NUMBER (R_BPF_64_ABS32, 3) +-/* R_BPF_64_NODYLD32 is not used by GNU tools. +- * It is kept in this file to remind that the value is already taken. */ ++/* R_BPF_64_NODYLD32 is not used by GNU tools - but it is generated by LLVM. ++ It is kept in this file to remind that the value is already taken. */ + RELOC_NUMBER (R_BPF_64_NODYLD32, 4) + RELOC_NUMBER (R_BPF_64_32, 10) + END_RELOC_NUMBERS (R_BPF_max) diff --git a/binutils.spec b/binutils.spec index 472338a..c713fea 100644 --- a/binutils.spec +++ b/binutils.spec @@ -2,7 +2,7 @@ Summary: A GNU collection of binary utilities Name: binutils%{?_with_debug:-debug} Version: 2.41 -Release: 8%{?dist} +Release: 9%{?dist} License: GPL-3.0-or-later AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND BSD-3-Clause AND GFDL-1.3-or-later AND GPL-2.0-or-later LGPL-2.1-or-later AND LGPL-2.0-or-later URL: https://sourceware.org/binutils @@ -270,6 +270,10 @@ Patch19: binutils-handle-corrupt-version-info.patch # Lifetime: Fixed in 2.42 Patch20: binutils-execstack-error.patch +# Purpose: Accept and ignore R_BPF_64_NODYLD32 relocations. +# Lifetime: Fixed in 2.42 +Patch21: binutils-BPF-reloc-4.patch + #---------------------------------------------------------------------------- Provides: bundled(libiberty) @@ -1275,6 +1279,9 @@ exit 0 #---------------------------------------------------------------------------- %changelog +* Mon Oct 30 2023 Nick Clifton - 2.41-9 +- Accept and ignore R_BPF_64_NODYLD32 relocations. (#2245296) + * Thu Oct 19 2023 Nick Clifton - 2.41-8 - Add ability to turn execstack warnings into errors. - Enable warnings for rsx segments.