From 00d1913520f1572fa7def865e57852c7f25b0ec4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 28 Oct 2016 11:40:58 -0700 Subject: binutils-2.27: Fix linker segfaults when linking binary files Fixes segfaults when doing partial linking and generaring binary objects /tmp/binu/ld/ld-new -r -b binary -o etc_certs_ui_ca_pem.o etc_certs_ui_ca_pem 0 elf32_arm_count_additional_relocs (sec=0x79bf40) at /mnt/a/work/oe/binutils-gdb/bfd/elf32-arm.c:18210 1 0x000000000047635a in bfd_elf_final_link (abfd=abfd@entry=0x783250, info=info@entry=0x748400 ) at /mnt/a/work/oe/binutils-gdb/bfd/elflink.c:11224 2 0x000000000044df7b in elf32_arm_final_link (abfd=0x783250, info=0x748400 ) at /mnt/a/work/oe/binutils-gdb/bfd/elf32-arm.c:12131 3 0x0000000000418917 in ldwrite () at /mnt/a/work/oe/binutils-gdb/ld/ldwrite.c:577 4 0x000000000040365f in main (argc=, argv=) at /mnt/a/work/oe/binutils-gdb/ld/ldmain.c:433 gold works ok. The patch is already applied in master binutils Signed-off-by: Khem Raj Signed-off-by: Ross Burton --- meta/recipes-devtools/binutils/binutils-2.27.inc | 1 + ...lt-in-ARM-linker-when-trying-to-parse-a-b.patch | 31 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils/0016-Fix-seg-fault-in-ARM-linker-when-trying-to-parse-a-b.patch diff --git a/meta/recipes-devtools/binutils/binutils-2.27.inc b/meta/recipes-devtools/binutils/binutils-2.27.inc index af1420b247..fc81721f80 100644 --- a/meta/recipes-devtools/binutils/binutils-2.27.inc +++ b/meta/recipes-devtools/binutils/binutils-2.27.inc @@ -36,6 +36,7 @@ SRC_URI = "\ file://0014-libtool-remove-rpath.patch \ file://0015-binutils-mips-gas-pic-relax-linkonce.diff \ file://0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch \ + file://0016-Fix-seg-fault-in-ARM-linker-when-trying-to-parse-a-b.patch \ " S = "${WORKDIR}/git" diff --git a/meta/recipes-devtools/binutils/binutils/0016-Fix-seg-fault-in-ARM-linker-when-trying-to-parse-a-b.patch b/meta/recipes-devtools/binutils/binutils/0016-Fix-seg-fault-in-ARM-linker-when-trying-to-parse-a-b.patch new file mode 100644 index 0000000000..33bf1e8f65 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/0016-Fix-seg-fault-in-ARM-linker-when-trying-to-parse-a-b.patch @@ -0,0 +1,31 @@ +From 72b09de92cc597c53b1d762882b67a17fe56846c Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Tue, 23 Aug 2016 09:45:11 +0100 +Subject: [PATCH 16/16] Fix seg-fault in ARM linker when trying to parse a + binary file. + + * elf32-arm.c (elf32_arm_count_additional_relocs): Return zero if + there is no arm data associated with the section. +--- +Upstream-Status: Backport +Signed-off-by: Khem Raj + + bfd/elf32-arm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c +index 700bec3..3fab609 100644 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -18207,7 +18207,7 @@ elf32_arm_count_additional_relocs (asection *sec) + { + struct _arm_elf_section_data *arm_data; + arm_data = get_arm_elf_section_data (sec); +- return arm_data->additional_reloc_count; ++ return arm_data == NULL ? 0 : arm_data->additional_reloc_count; + } + + /* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which +-- +2.10.1 + -- cgit 1.2.3-korg