aboutsummaryrefslogtreecommitdiffstats
path: root/main/binutils/binutils-ppc64le-assertion.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/binutils/binutils-ppc64le-assertion.patch')
-rw-r--r--main/binutils/binutils-ppc64le-assertion.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/main/binutils/binutils-ppc64le-assertion.patch b/main/binutils/binutils-ppc64le-assertion.patch
new file mode 100644
index 0000000000..cd6113e6f8
--- /dev/null
+++ b/main/binutils/binutils-ppc64le-assertion.patch
@@ -0,0 +1,32 @@
+From 97dd8079feb35456d7b387a594b5e00f7654b3b8 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Thu, 23 Jun 2022 17:50:30 +0930
+Subject: [PATCH] PowerPC64: fix assertion in ppc_build_one_stub with -Os code
+
+save_res stubs aren't written in ppc_build_one_stub, their offsets
+(which are zero) should not be checked.
+
+ * elf64-ppc.c (ppc_build_one_stub): Don't check save_res offsets.
+
+(cherry picked from commit 570e911f4e533fad33ad5e4e1102929cf7e80bd7)
+---
+ bfd/elf64-ppc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
+index cb12ed476d8..df503341fe9 100644
+--- a/bfd/elf64-ppc.c
++++ b/bfd/elf64-ppc.c
+@@ -11700,7 +11700,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
+ if (htab == NULL)
+ return false;
+
+- BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size);
++ BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size
++ || stub_entry->type.main == ppc_stub_save_res);
+ loc = stub_entry->group->stub_sec->contents + stub_entry->stub_offset;
+
+ htab->stub_count[stub_entry->type.main - 1] += 1;
+--
+2.31.1
+