summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch215
1 files changed, 0 insertions, 215 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch b/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch
deleted file mode 100644
index c93af4e46f..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0001-elf-Discard-input-.note.gnu.build-id-sections.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From b2e18d3ea300f7491705b6e86a7cc3d6366e3b1f Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Tue, 30 Nov 2021 20:40:38 -0800
-Subject: [PATCH] elf: Discard input .note.gnu.build-id sections
-
-1. Discard input .note.gnu.build-id sections.
-2. Clear the build ID field before writing.
-3. Use bfd_make_section_anyway_with_flags to create the output
-.note.gnu.build-id section.
-
- PR ld/28639
- * ldelf.c (ldelf_after_open): Discard input .note.gnu.build-id
- sections, excluding the first one.
- (write_build_id): Clear the build ID field before writing.
- (ldelf_setup_build_id): Use bfd_make_section_anyway_with_flags
- to create the output .note.gnu.build-id section.
- * testsuite/ld-elf/build-id.exp: New file.
- * testsuite/ld-elf/pr28639a.rd: Likewise.
- * testsuite/ld-elf/pr28639b.rd: Likewise.
- * testsuite/ld-elf/pr28639c.rd: Likewise.
- * testsuite/ld-elf/pr28639d.rd: Likewise.
-
-Upstream-Status: Backport
-
-Reference to upstream patch:
-[https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f1d0f8888a6c944e612b416a2a6e11abcf5199f]
----
- ld/ldelf.c | 15 ++++++-
- ld/testsuite/ld-elf/build-id.exp | 77 ++++++++++++++++++++++++++++++++
- ld/testsuite/ld-elf/pr28639a.rd | 6 +++
- ld/testsuite/ld-elf/pr28639b.rd | 6 +++
- ld/testsuite/ld-elf/pr28639c.rd | 10 +++++
- ld/testsuite/ld-elf/pr28639d.rd | 4 ++
- 6 files changed, 117 insertions(+), 1 deletion(-)
- create mode 100644 ld/testsuite/ld-elf/build-id.exp
- create mode 100644 ld/testsuite/ld-elf/pr28639a.rd
- create mode 100644 ld/testsuite/ld-elf/pr28639b.rd
- create mode 100644 ld/testsuite/ld-elf/pr28639c.rd
- create mode 100644 ld/testsuite/ld-elf/pr28639d.rd
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index 21e655bb55c..8501d98b48f 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1043,6 +1043,15 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
- /* Do not allow executable files to be used as inputs to the link. */
- for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
- {
-+ /* Discard input .note.gnu.build-id sections. */
-+ s = bfd_get_section_by_name (abfd, ".note.gnu.build-id");
-+ while (s != NULL)
-+ {
-+ if (s != elf_tdata (link_info.output_bfd)->o->build_id.sec)
-+ s->flags |= SEC_EXCLUDE;
-+ s = bfd_get_next_section_by_name (NULL, s);
-+ }
-+
- if (abfd->xvec->flavour == bfd_target_elf_flavour
- && !bfd_input_just_syms (abfd)
- && elf_tdata (abfd) != NULL
-@@ -1387,6 +1396,9 @@ write_build_id (bfd *abfd)
- id_bits = contents + size;
- size = asec->size - size;
-
-+ /* Clear the build ID field. */
-+ memset (id_bits, 0, size);
-+
- bfd_h_put_32 (abfd, sizeof "GNU", &e_note->namesz);
- bfd_h_put_32 (abfd, size, &e_note->descsz);
- bfd_h_put_32 (abfd, NT_GNU_BUILD_ID, &e_note->type);
-@@ -1418,7 +1430,8 @@ ldelf_setup_build_id (bfd *ibfd)
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
- | SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
-- s = bfd_make_section_with_flags (ibfd, ".note.gnu.build-id", flags);
-+ s = bfd_make_section_anyway_with_flags (ibfd, ".note.gnu.build-id",
-+ flags);
- if (s != NULL && bfd_set_section_alignment (s, 2))
- {
- struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
-diff --git a/ld/testsuite/ld-elf/build-id.exp b/ld/testsuite/ld-elf/build-id.exp
-new file mode 100644
-index 00000000000..19c22a75c4d
---- /dev/null
-+++ b/ld/testsuite/ld-elf/build-id.exp
-@@ -0,0 +1,77 @@
-+# Expect script for --build-id tests.
-+# Copyright (C) 2021 Free Software Foundation, Inc.
-+#
-+# This file is part of the GNU Binutils.
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
-+# MA 02110-1301, USA.
-+#
-+
-+# Exclude non-ELF targets.
-+
-+if ![is_elf_format] {
-+ return
-+}
-+
-+if { [istarget frv-*-*] || [istarget lm32-*-*] } {
-+ return
-+}
-+
-+if { !([istarget *-*-linux*]
-+ || [istarget arm*-*-uclinuxfdpiceabi]
-+ || [istarget *-*-nacl*]
-+ || [istarget *-*-gnu*]) } then {
-+ return
-+}
-+
-+run_ld_link_tests [list \
-+ [list \
-+ "pr28639a.o" \
-+ "-r --build-id=md5" \
-+ "" \
-+ "" \
-+ {start.s} \
-+ {{readelf {--notes} pr28639a.rd}} \
-+ "pr28639a.o" \
-+ ] \
-+ [list \
-+ "pr28639a.o" \
-+ "-r --build-id" \
-+ "" \
-+ "" \
-+ {dummy.s} \
-+ {{readelf {--notes} pr28639b.rd}} \
-+ "pr28639b.o" \
-+ ] \
-+ [list \
-+ "pr28639a" \
-+ "--build-id tmpdir/pr28639a.o tmpdir/pr28639b.o" \
-+ "" \
-+ "" \
-+ {dummy.s} \
-+ {{readelf {--notes} pr28639b.rd} \
-+ {readelf {--notes} pr28639c.rd}} \
-+ "pr28639a" \
-+ ] \
-+ [list \
-+ "pr28639b" \
-+ "--build-id=none tmpdir/pr28639a.o tmpdir/pr28639b.o" \
-+ "" \
-+ "" \
-+ {dummy.s} \
-+ {{readelf {--notes} pr28639d.rd}} \
-+ "pr28639b" \
-+ ] \
-+]
-diff --git a/ld/testsuite/ld-elf/pr28639a.rd b/ld/testsuite/ld-elf/pr28639a.rd
-new file mode 100644
-index 00000000000..e85087064d0
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr28639a.rd
-@@ -0,0 +1,6 @@
-+#...
-+Displaying notes found in: \.note\.gnu\.build-id
-+ Owner Data size Description
-+ GNU 0x00000010 NT_GNU_BUILD_ID \(unique build ID bitstring\)
-+ Build ID: [0-9a-f]+
-+#pass
-diff --git a/ld/testsuite/ld-elf/pr28639b.rd b/ld/testsuite/ld-elf/pr28639b.rd
-new file mode 100644
-index 00000000000..04dcb04bec2
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr28639b.rd
-@@ -0,0 +1,6 @@
-+#...
-+Displaying notes found in: \.note\.gnu\.build-id
-+ Owner Data size Description
-+ GNU 0x00000014 NT_GNU_BUILD_ID \(unique build ID bitstring\)
-+ Build ID: [0-9a-f]+
-+#pass
-diff --git a/ld/testsuite/ld-elf/pr28639c.rd b/ld/testsuite/ld-elf/pr28639c.rd
-new file mode 100644
-index 00000000000..64221e5fa51
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr28639c.rd
-@@ -0,0 +1,10 @@
-+#failif
-+#...
-+Displaying notes found in: \.note\.gnu\.build-id
-+ Owner Data size Description
-+ GNU 0x[0-9a-f]+ NT_GNU_BUILD_ID \(unique build ID bitstring\)
-+ Build ID: [0-9a-f]+
-+ Owner Data size Description
-+ GNU 0x[0-9a-f]+ NT_GNU_BUILD_ID \(unique build ID bitstring\)
-+ Build ID: [0-9a-f]+
-+#...
-diff --git a/ld/testsuite/ld-elf/pr28639d.rd b/ld/testsuite/ld-elf/pr28639d.rd
-new file mode 100644
-index 00000000000..897c8493efa
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr28639d.rd
-@@ -0,0 +1,4 @@
-+#failif
-+#...
-+Displaying notes found in: \.note\.gnu\.build-id
-+#...
---
-