diff options
Diffstat (limited to 'extra/binutils')
-rw-r--r-- | extra/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch | 55 | ||||
-rw-r--r-- | extra/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch | 234 | ||||
-rw-r--r-- | extra/binutils/binutils-ld-fix-static-linking.patch | 46 | ||||
-rw-r--r-- | extra/binutils/defang-no-split.patch | 38 | ||||
-rw-r--r-- | extra/binutils/gold-mips.patch | 39 | ||||
-rw-r--r-- | extra/binutils/ld-bfd-mips.patch | 19 |
6 files changed, 0 insertions, 431 deletions
diff --git a/extra/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/extra/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch deleted file mode 100644 index 6e1fa77..0000000 --- a/extra/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001 -From: Ariadne Conill <ariadne@dereferenced.org> -Date: Tue, 21 Sep 2021 14:53:13 +0000 -Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared - libraries" - -This revert is needed to avoid wrongly tagging objects with the incompatible -IBM long double ABI, which is not supported by musl and will result in -linking errors if used. - -This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba. ---- - bfd/elf32-tic6x.c | 3 --- - ld/ldlang.c | 10 ++++------ - 2 files changed, 4 insertions(+), 9 deletions(-) - -diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c -index 5754f3cb860..3ad1d612749 100644 ---- a/bfd/elf32-tic6x.c -+++ b/bfd/elf32-tic6x.c -@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info) - - case Tag_ABI_PIC: - case Tag_ABI_PID: -- /* Don't transfer these tags from dynamic objects. */ -- if ((ibfd->flags & DYNAMIC) != 0) -- continue; - if (out_attr[i].i > in_attr[i].i) - out_attr[i].i = in_attr[i].i; - break; -diff --git a/ld/ldlang.c b/ld/ldlang.c -index 37b64c89ee1..f13beaef9d9 100644 ---- a/ld/ldlang.c -+++ b/ld/ldlang.c -@@ -7071,13 +7071,11 @@ lang_check (void) - bfd_printable_name (input_bfd), input_bfd, - bfd_printable_name (link_info.output_bfd)); - } -- -- /* If the input bfd has no contents, it shouldn't set the -- private data of the output bfd. */ -- else if (!file->flags.just_syms -- && ((input_bfd->flags & DYNAMIC) != 0 -- || bfd_count_sections (input_bfd) != 0)) -+ else if (bfd_count_sections (input_bfd)) - { -+ /* If the input bfd has no contents, it shouldn't set the -+ private data of the output bfd. */ -+ - bfd_error_handler_type pfn = NULL; - - /* If we aren't supposed to warn about mismatched input --- -2.33.0 - diff --git a/extra/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch b/extra/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch deleted file mode 100644 index 357d0f9..0000000 --- a/extra/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch +++ /dev/null @@ -1,234 +0,0 @@ -Upstream: yes -URL: https://sourceware.org/bugzilla/show_bug.cgi?id=28138 -From 1c611b40e6bfc8029bff7696814330b5bc0ee5c0 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" <hjl.tools@gmail.com> -Date: Mon, 26 Jul 2021 05:59:55 -0700 -Subject: [PATCH] bfd: Close the file descriptor if there is no archive fd - -Close the file descriptor if there is no archive plugin file descriptor -to avoid running out of file descriptors on thin archives with many -archive members. - -bfd/ - - PR ld/28138 - * plugin.c (bfd_plugin_close_file_descriptor): Close the file - descriptor there is no archive plugin file descriptor. - -ld/ - - PR ld/28138 - * testsuite/ld-plugin/lto.exp: Run tmpdir/pr28138 only for - native build. - - PR ld/28138 - * testsuite/ld-plugin/lto.exp: Run ld/28138 tests. - * testsuite/ld-plugin/pr28138.c: New file. - * testsuite/ld-plugin/pr28138-1.c: Likewise. - * testsuite/ld-plugin/pr28138-2.c: Likewise. - * testsuite/ld-plugin/pr28138-3.c: Likewise. - * testsuite/ld-plugin/pr28138-4.c: Likewise. - * testsuite/ld-plugin/pr28138-5.c: Likewise. - * testsuite/ld-plugin/pr28138-6.c: Likewise. - * testsuite/ld-plugin/pr28138-7.c: Likewise. - -(cherry picked from commit 5a98fb7513b559e20dfebdbaa2a471afda3b4742) -(cherry picked from commit 7dc37e1e1209c80e0bab784df6b6bac335e836f2) ---- - bfd/plugin.c | 8 +++++++ - ld/testsuite/ld-plugin/lto.exp | 34 ++++++++++++++++++++++++++++++ - ld/testsuite/ld-plugin/pr28138-1.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-2.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-3.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-4.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-5.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-6.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138-7.c | 6 ++++++ - ld/testsuite/ld-plugin/pr28138.c | 20 ++++++++++++++++++ - 10 files changed, 104 insertions(+) - create mode 100644 ld/testsuite/ld-plugin/pr28138-1.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-2.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-3.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-4.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-5.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-6.c - create mode 100644 ld/testsuite/ld-plugin/pr28138-7.c - create mode 100644 ld/testsuite/ld-plugin/pr28138.c - -diff --git a/bfd/plugin.c b/bfd/plugin.c -index 6cfa2b66470..3bab8febe88 100644 ---- a/bfd/plugin.c -+++ b/bfd/plugin.c -@@ -291,6 +291,14 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd) - && !bfd_is_thin_archive (abfd->my_archive)) - abfd = abfd->my_archive; - -+ /* Close the file descriptor if there is no archive plugin file -+ descriptor. */ -+ if (abfd->archive_plugin_fd == -1) -+ { -+ close (fd); -+ return; -+ } -+ - abfd->archive_plugin_fd_open_count--; - /* Dup the archive plugin file descriptor for later use, which - will be closed by _bfd_archive_close_and_cleanup. */ -diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp -index def69e43ab3..999d911ce6a 100644 ---- a/ld/testsuite/ld-plugin/lto.exp -+++ b/ld/testsuite/ld-plugin/lto.exp -@@ -687,6 +687,40 @@ if { [is_elf_format] && [check_lto_shared_available] } { - } - } - -+run_cc_link_tests [list \ -+ [list \ -+ "Build pr28138.a" \ -+ "-T" "" \ -+ {pr28138-1.c pr28138-2.c pr28138-3.c pr28138-4.c pr28138-5.c \ -+ pr28138-6.c pr28138-7.c} {} "pr28138.a" \ -+ ] \ -+ [list \ -+ "Build pr28138.o" \ -+ "" "" \ -+ {pr28138.c} {} \ -+ ] \ -+] -+ -+set exec_output [run_host_cmd "sh" \ -+ "-c \"ulimit -n 20; \ -+ $CC -Btmpdir/ld -o tmpdir/pr28138 \ -+ tmpdir/pr28138.o tmpdir/pr28138.a\""] -+set exec_output [prune_warnings $exec_output] -+if [string match "" $exec_output] then { -+ if { [isnative] } { -+ set exec_output [run_host_cmd "tmpdir/pr28138" ""] -+ if [string match "PASS" $exec_output] then { -+ pass "PR ld/28138" -+ } else { -+ fail "PR ld/28138" -+ } -+ } else { -+ pass "PR ld/28138" -+ } -+} else { -+ fail "PR ld/28138" -+} -+ - set testname "Build liblto-11.a" - remote_file host delete "tmpdir/liblto-11.a" - set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"] -diff --git a/ld/testsuite/ld-plugin/pr28138-1.c b/ld/testsuite/ld-plugin/pr28138-1.c -new file mode 100644 -index 00000000000..51d119e1642 ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-1.c -@@ -0,0 +1,6 @@ -+extern int a0(void); -+int -+a1(void) -+{ -+ return 1 + a0(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-2.c b/ld/testsuite/ld-plugin/pr28138-2.c -new file mode 100644 -index 00000000000..1120cd797e9 ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-2.c -@@ -0,0 +1,6 @@ -+extern int a1(void); -+int -+a2(void) -+{ -+ return 1 + a1(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-3.c b/ld/testsuite/ld-plugin/pr28138-3.c -new file mode 100644 -index 00000000000..ec464947ee6 ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-3.c -@@ -0,0 +1,6 @@ -+extern int a2(void); -+int -+a3(void) -+{ -+ return 1 + a2(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-4.c b/ld/testsuite/ld-plugin/pr28138-4.c -new file mode 100644 -index 00000000000..475701b2c5c ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-4.c -@@ -0,0 +1,6 @@ -+extern int a3(void); -+int -+a4(void) -+{ -+ return 1 + a3(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-5.c b/ld/testsuite/ld-plugin/pr28138-5.c -new file mode 100644 -index 00000000000..e24f86c363e ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-5.c -@@ -0,0 +1,6 @@ -+extern int a4(void); -+int -+a5(void) -+{ -+ return 1 + a4(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-6.c b/ld/testsuite/ld-plugin/pr28138-6.c -new file mode 100644 -index 00000000000..b5b938bdb21 ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-6.c -@@ -0,0 +1,6 @@ -+extern int a5(void); -+int -+a6(void) -+{ -+ return 1 + a5(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138-7.c b/ld/testsuite/ld-plugin/pr28138-7.c -new file mode 100644 -index 00000000000..4ef75bf0f0c ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138-7.c -@@ -0,0 +1,6 @@ -+extern int a6(void); -+int -+a7(void) -+{ -+ return 1 + a6(); -+} -diff --git a/ld/testsuite/ld-plugin/pr28138.c b/ld/testsuite/ld-plugin/pr28138.c -new file mode 100644 -index 00000000000..68252c9f382 ---- /dev/null -+++ b/ld/testsuite/ld-plugin/pr28138.c -@@ -0,0 +1,20 @@ -+#include <stdio.h> -+ -+extern int a7(void); -+ -+int -+a0(void) -+{ -+ return 0; -+} -+ -+int -+main() -+{ -+ if (a7() == 7) -+ { -+ printf ("PASS\n"); -+ return 0; -+ } -+ return 1; -+} --- -2.27.0 - diff --git a/extra/binutils/binutils-ld-fix-static-linking.patch b/extra/binutils/binutils-ld-fix-static-linking.patch deleted file mode 100644 index bc5d762..0000000 --- a/extra/binutils/binutils-ld-fix-static-linking.patch +++ /dev/null @@ -1,46 +0,0 @@ -This fixes static linking for our hardened toolchain -diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc -index e8126cb..9532bfb 100644 ---- a/ld/scripttempl/elf.sc -+++ b/ld/scripttempl/elf.sc -@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS=" - if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then - SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))" - SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))" -- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors" -- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors" -+ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors" -+ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors" - else - SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))" - SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))" -@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : - doesn't matter which directory crtbegin.o - is in. */ - -- KEEP (*crtbegin.o(.ctors)) -- KEEP (*crtbegin?.o(.ctors)) -+ KEEP (*crtbegin*.o(.ctors)) - - /* We don't want to include the .ctor section from - the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - -- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors)) -+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - ${CONSTRUCTING+${CTOR_END}} -@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : - DTOR=".dtors ${CONSTRUCTING-0} : - { - ${CONSTRUCTING+${DTOR_START}} -- KEEP (*crtbegin.o(.dtors)) -- KEEP (*crtbegin?.o(.dtors)) -- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors)) -+ KEEP (*crtbegin*.o(.dtors)) -+ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - ${CONSTRUCTING+${DTOR_END}} diff --git a/extra/binutils/defang-no-split.patch b/extra/binutils/defang-no-split.patch deleted file mode 100644 index cea68ed..0000000 --- a/extra/binutils/defang-no-split.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2dad02b6d46eef438cbd14d8511487b056628a38 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich <siarheit@google.com> -Date: Mon, 26 Jul 2021 22:51:18 +0100 -Subject: [PATCH 1/1] texi2pod.pl: add no-op --no-split option support - [PR28144] - -Change 2faf902da ("generate single html manual page by default") -added use of --no-split option to makeinfo. binutils reuses -makeinfo options for texi2pod.pl wrapper. Unsupported option -led to silent manpage truncation. - -The change adds no-op option support. - -etc/ - PR 28144 - * texi2pod.pl: Handle no-op --no-split option. - -(cherry picked from commit 96a7037cd8573cf065aa6b12baca68696f96d9ca) ---- - etc/texi2pod.pl | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/etc/texi2pod.pl b/etc/texi2pod.pl -index 11f70d156be..dcf2b437640 100644 ---- a/etc/texi2pod.pl -+++ b/etc/texi2pod.pl -@@ -59,6 +59,8 @@ while ($_ = shift) { - $flag = shift; - } - push (@ipath, $flag); -+ } elsif (/^--no-split$/) { -+ # ignore option for makeinfo compatibility - } elsif (/^-/) { - usage(); - } else { --- -2.27.0 - diff --git a/extra/binutils/gold-mips.patch b/extra/binutils/gold-mips.patch deleted file mode 100644 index 291a2aa..0000000 --- a/extra/binutils/gold-mips.patch +++ /dev/null @@ -1,39 +0,0 @@ -# DP: Fix gold on mips64 targets. - -gold/ - -2016-08-09 Aurelien Jarno <aurelien@aurel32.net> - - * configure.tgt: Add mips64el*-*-*|mips64le*-*-* and mips64*-*-*. - - ---- a/gold/configure.tgt -+++ b/gold/configure.tgt -@@ -153,6 +153,13 @@ aarch64*-*) - targ_big_endian=false - targ_extra_big_endian=true - ;; -+mips*64*el*-*-*|mips*64*le*-*-*) -+ targ_obj=mips -+ targ_machine=EM_MIPS_RS3_LE -+ targ_size=64 -+ targ_big_endian=false -+ targ_extra_big_endian=true -+ ;; - mips*el*-*-*|mips*le*-*-*) - targ_obj=mips - targ_machine=EM_MIPS_RS3_LE -@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*) - targ_big_endian=false - targ_extra_big_endian=true - ;; -+mips*64*-*-*) -+ targ_obj=mips -+ targ_machine=EM_MIPS -+ targ_size=64 -+ targ_big_endian=true -+ targ_extra_big_endian=false -+ ;; - mips*-*-*) - targ_obj=mips - targ_machine=EM_MIPS diff --git a/extra/binutils/ld-bfd-mips.patch b/extra/binutils/ld-bfd-mips.patch deleted file mode 100644 index 2991c88..0000000 --- a/extra/binutils/ld-bfd-mips.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- ./ld/configure.tgt.orig -+++ ./ld/configure.tgt -@@ -541,12 +541,12 @@ - ;; - mips*-*-windiss) targ_emul=elf32mipswindiss - ;; --mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 -- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" -+mips64*el-*-linux-*) targ_emul=elf64ltsmip -+ targ_extra_emuls="elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip elf64btsmip" - targ_extra_libpath=$targ_extra_emuls - ;; --mips64*-*-linux-*) targ_emul=elf32btsmipn32 -- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" -+mips64*-*-linux-*) targ_emul=elf64btsmip -+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" - targ_extra_libpath=$targ_extra_emuls - ;; - mips*el-*-linux-*) targ_emul=elf32ltsmip |