Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e68521e
binutils: Update to 2.37.
mikoxyz Nov 18, 2021
c699c21
glibc: update to 2.34.
ericonr Aug 5, 2021
bec3b37
gcc: Update to 10.3.1git20211027.
mikoxyz Nov 19, 2021
f550c13
libtool: Revbump for gcc update.
mikoxyz Nov 19, 2021
09f0e92
cross-aarch64-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
0d3b6cb
cross-aarch64-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
e224a1b
cross-arm-linux-gnueabi: Update to 0.35.
mikoxyz Nov 19, 2021
e35a3ef
cross-arm-linux-gnueabihf: Update to 0.35.
mikoxyz Nov 19, 2021
8249eea
cross-arm-linux-musleabi: Update to 0.35.
mikoxyz Nov 19, 2021
6a2607e
cross-arm-linux-musleabihf: Update to 0.35.
mikoxyz Nov 19, 2021
a21b0ec
cross-armv7l-linux-gnueabihf: Update to 0.35.
mikoxyz Nov 19, 2021
d4d897b
cross-armv7l-linux-musleabihf: Update to 0.35.
mikoxyz Nov 19, 2021
d1c8ced
cross-i686-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
715bac0
cross-i686-pc-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
846df7a
cross-mipsel-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
79a02f4
cross-mipsel-linux-muslhf: Update to 0.35.
mikoxyz Nov 19, 2021
c1a97f2
cross-mips-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
0d07c70
cross-mips-linux-muslhf: Update to 0.35.
mikoxyz Nov 19, 2021
2b8bda9
cross-powerpc64le-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
8eb2aa4
cross-powerpc64le-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
622ee45
cross-powerpc64-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
883d76d
cross-powerpc64-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
80528b7
cross-powerpcle-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
c4a07c1
cross-powerpcle-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
d2bf906
cross-powerpc-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
e094834
cross-powerpc-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
48745d0
cross-x86_64-linux-gnu: Update to 0.35.
mikoxyz Nov 19, 2021
8d76cf5
cross-x86_64-linux-musl: Update to 0.35.
mikoxyz Nov 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 29 additions & 30 deletions common/shlibs
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,35 @@
# one (order top->bottom) is preferred over the next ones.
#
libc.so musl-1.1.24_7
libc.so.6 glibc-2.32_1
libm.so.6 glibc-2.32_1
libpthread.so.0 glibc-2.32_1
librt.so.1 glibc-2.32_1
libdl.so.2 glibc-2.32_1
ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
ld-linux.so.2 glibc-2.32_1 i686
ld-linux.so.3 glibc-2.32_1 armv5tel
ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
ld64.so.2 glibc-2.32_1 ppc64
ld.so.1 glibc-2.32_1 mips
ld.so.1 glibc-2.32_1 ppc
ld-linux-armhf.so.3 glibc-2.32_1
libresolv.so.2 glibc-2.32_1
libanl.so.1 glibc-2.32_1
libthread_db.so.1 glibc-2.32_1
libutil.so.1 glibc-2.32_1
libnsl.so.1 glibc-2.32_1
libnss_db.so.2 glibc-2.32_1
libnss_files.so.2 glibc-2.32_1
libnss_compat.so.2 glibc-2.32_1
libnss_dns.so.2 glibc-2.32_1
libnss_hesiod.so.2 glibc-2.32_1
libcrypt.so.1 glibc-2.32_1
libBrokenLocale.so.1 glibc-2.32_1
libmemusage.so glibc-2.32_1
libSegFault.so glibc-2.32_1
libpcprofile.so glibc-2.32_1
libcidn.so.1 glibc-2.32_1
libmvec.so.1 glibc-2.32_1
libc.so.6 glibc-2.34_1
Comment thread
mikoxyz marked this conversation as resolved.
libm.so.6 glibc-2.34_1
libpthread.so.0 glibc-2.34_1
librt.so.1 glibc-2.34_1
libdl.so.2 glibc-2.34_1
ld-linux-x86-64.so.2 glibc-2.34_1 x86_64
ld-linux.so.2 glibc-2.34_1 i686
ld-linux.so.3 glibc-2.34_1 armv5tel
ld-linux-aarch64.so.1 glibc-2.34_1 aarch64
ld64.so.2 glibc-2.34_1 ppc64
ld.so.1 glibc-2.34_1 mips
ld.so.1 glibc-2.34_1 ppc
ld-linux-armhf.so.3 glibc-2.34_1
libresolv.so.2 glibc-2.34_1
libanl.so.1 glibc-2.34_1
libthread_db.so.1 glibc-2.34_1
libutil.so.1 glibc-2.34_1
libnsl.so.1 glibc-2.34_1
libnss_db.so.2 glibc-2.34_1
libnss_files.so.2 glibc-2.34_1
libnss_compat.so.2 glibc-2.34_1
libnss_dns.so.2 glibc-2.34_1
libnss_hesiod.so.2 glibc-2.34_1
libcrypt.so.1 glibc-2.34_1
libBrokenLocale.so.1 glibc-2.34_1
libmemusage.so glibc-2.34_1
libSegFault.so glibc-2.34_1
libpcprofile.so glibc-2.34_1
libmvec.so.1 glibc-2.34_1
libcddgmp.so.0 cddlib-0.94m_1
libcdd.so.0 cddlib-0.94m_1
libz.so.1 zlib-1.2.3_1
Expand Down

This file was deleted.

234 changes: 234 additions & 0 deletions srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
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

Loading