c76890f2fe
https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766 Since [1] libbfd is compiled with support for all available targets. However, it can not choose whether an ARM ELF file is elf32-littlearm, elf32-littlearm-symbian, or elf32-littlearm-vxworks, and fails with the "File format is ambiguous" error. Here [2] Alan Modra intended to prioritize the first of the three, but although his patch was merged and reportedly solved the issue, currently glibc 2.28.1 and 2.29.1 again fail to disambiguate these targets. This commit makes it prioritize elf32-littlearm over the other two. [1] f8741c38cd546e3ff18ce9d708de14ff2aae68ab [2] https://sourceware.org/ml/binutils/2013-05/msg00271.html
24 lines
826 B
Diff
24 lines
826 B
Diff
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
|
|
index 9f956d3..f5b61f1 100644
|
|
--- a/bfd/elf32-arm.c
|
|
+++ b/bfd/elf32-arm.c
|
|
@@ -19585,7 +19585,10 @@ elf32_arm_vxworks_final_write_processing (bfd *abfd, bfd_boolean linker)
|
|
#undef ELF_MAXPAGESIZE
|
|
#define ELF_MAXPAGESIZE 0x1000
|
|
|
|
+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-vxworks (priority 2) */
|
|
+#define elf_match_priority 2
|
|
#include "elf32-target.h"
|
|
+#undef elf_match_priority
|
|
|
|
|
|
/* Merge backend specific data from an object file to the output
|
|
@@ -19974,4 +19977,7 @@ elf32_arm_symbian_plt_sym_val (bfd_vma i, const asection *plt,
|
|
#undef ELF_MAXPAGESIZE
|
|
#define ELF_MAXPAGESIZE 0x8000
|
|
|
|
+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-symbian (priority 2) */
|
|
+#define elf_match_priority 2
|
|
#include "elf32-target.h"
|
|
+#undef elf_match_priority
|