summaryrefslogtreecommitdiff
path: root/repo/system/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'repo/system/binutils')
-rw-r--r--repo/system/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch55
-rw-r--r--repo/system/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch234
-rw-r--r--repo/system/binutils/binutils-ld-fix-static-linking.patch46
-rw-r--r--repo/system/binutils/binutils.xibuild69
-rw-r--r--repo/system/binutils/defang-no-split.patch38
-rw-r--r--repo/system/binutils/gold-mips.patch39
-rw-r--r--repo/system/binutils/ld-bfd-mips.patch19
7 files changed, 0 insertions, 500 deletions
diff --git a/repo/system/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch b/repo/system/binutils/0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
deleted file mode 100644
index 6e1fa77..0000000
--- a/repo/system/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/repo/system/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch b/repo/system/binutils/bfd-close-file-desriptor-if-there-is-no-archive-fd.patch
deleted file mode 100644
index 357d0f9..0000000
--- a/repo/system/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/repo/system/binutils/binutils-ld-fix-static-linking.patch b/repo/system/binutils/binutils-ld-fix-static-linking.patch
deleted file mode 100644
index bc5d762..0000000
--- a/repo/system/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/repo/system/binutils/binutils.xibuild b/repo/system/binutils/binutils.xibuild
deleted file mode 100644
index f7172ea..0000000
--- a/repo/system/binutils/binutils.xibuild
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-
-MAKEDEPS="make dejagnu bzip2 xz zlib zstd patch"
-DEPS="musl zlib libelf"
-
-PKG_VER=2.38
-SOURCE=https://ftp.gnu.org/gnu/binutils/binutils-$PKG_VER.tar.xz
-
-ADDITIONAL="
-0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
-bfd-close-file-desriptor-if-there-is-no-archive-fd.patch
-binutils-ld-fix-static-linking.patch
-defang-no-split.patch
-"
-
-DESC="Tools for handling object files"
-
-prepare () {
- apply_patches
-
- find . -name '[a-z]*\.[0-9]*' -empty -exec rm -f {} \;
-}
-
-build () {
- mkdir build
- cd build
-
- ../configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --disable-multilib \
- --enable-ld=default \
- --enable-gold \
- --enable-64-bit-bfd \
- --enable-plugins \
- --enable-relro \
- --enable-install-libiberty \
- --enable-deterministic-archives \
- --enable-targets=x86_64-pep \
- --enable-default-hash-style=gnu \
- --with-pic \
- --disable-werror \
- --disable-nls \
- --with-system-zlib \
- --with-mmap
-
- make tooldir=/usr
-}
-
-#check () {
- #make -k check || true
-#}
-
-package() {
- make -j1 tooldir=/usr DESTDIR=$PKG_DEST install
- cd ..
-
- # how about we use binutils ld?
- rm -f $PKG_DEST/usr/bin/ld
- ln -sf /usr/bin/ld.bfd $PKG_DEST/usr/bin/ld
-
- install -m 644 include/libiberty.h $PKG_DEST/usr/include
- install -m 644 include/demangle.h $PKG_DEST/usr/include
-
- for f in dlltool nlmconv windres windmc; do
- rm -f $PKG_DEST/usr/share/man/man1/${f}.1
- done
-}
diff --git a/repo/system/binutils/defang-no-split.patch b/repo/system/binutils/defang-no-split.patch
deleted file mode 100644
index cea68ed..0000000
--- a/repo/system/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/repo/system/binutils/gold-mips.patch b/repo/system/binutils/gold-mips.patch
deleted file mode 100644
index 291a2aa..0000000
--- a/repo/system/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/repo/system/binutils/ld-bfd-mips.patch b/repo/system/binutils/ld-bfd-mips.patch
deleted file mode 100644
index 2991c88..0000000
--- a/repo/system/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