aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2023-10-30 12:17:53 +0000
committerNick Clifton <nickc@redhat.com>2023-10-30 12:18:45 +0000
commita4a51292bb5739e23dc1e16866139e00a2578c06 (patch)
treeabe7121fda687a943dfe5b5e7392cac0e9de7adb
parentc9b0a82151ffb2ca91d61a21161b6bf4fdbc5095 (diff)
downloadfsf-binutils-gdb-a4a51292bb5739e23dc1e16866139e00a2578c06.zip
fsf-binutils-gdb-a4a51292bb5739e23dc1e16866139e00a2578c06.tar.gz
fsf-binutils-gdb-a4a51292bb5739e23dc1e16866139e00a2578c06.tar.bz2
Accept and ignore the R_BPF_64_NODLYD32 relocation.
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/bpf-reloc.def17
-rw-r--r--include/ChangeLog5
-rw-r--r--include/elf/bpf.h4
4 files changed, 28 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1b9d13a..2b12eb3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2023-10-30 Nick Clifton <nickc@redhat.com>
+
+ * bpf-reloc.def (R_BPF_64_NODLD32): Add entry.
+
2023-10-16 Nick Clifton <nickc@redhat.com>
PR 28910
diff --git a/bfd/bpf-reloc.def b/bfd/bpf-reloc.def
index 31f761d..7e74978 100644
--- a/bfd/bpf-reloc.def
+++ b/bfd/bpf-reloc.def
@@ -87,3 +87,20 @@
0xffff, /* src_mask */
0xffff, /* 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 --git a/include/ChangeLog b/include/ChangeLog
index 90ee736..e0f0cb3 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2023-10-30 Nick Clifton <nickc@redhat.com>
+
+ * elf/bpf.h (R_BPF_64_NODYLD32): Add a note that this reloc is
+ generated by other tools, eg LLVM.
+
2023-09-28 Frederic Cambus <fred@statdns.com>
* elf/common.h (PT_OPENBSD_NOBTCFI): Define.
diff --git a/include/elf/bpf.h b/include/elf/bpf.h
index e4d4162..1ad074f 100644
--- a/include/elf/bpf.h
+++ b/include/elf/bpf.h
@@ -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)
RELOC_NUMBER (R_BPF_GNU_64_16, 256)