FreeBSD Bugzilla – Attachment 241731 Details for
Bug 271061
devel/binutils: Import upstream patch
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Setting sh_link for SHT_REL/SHT_RELA
binutils.patch (text/plain), 2.10 KB, created by
Emanuel Haupt
on 2023-04-25 06:59:04 UTC
(
hide
)
Description:
Setting sh_link for SHT_REL/SHT_RELA
Filename:
MIME Type:
Creator:
Emanuel Haupt
Created:
2023-04-25 06:59:04 UTC
Size:
2.10 KB
patch
obsolete
>diff --git a/devel/binutils/Makefile b/devel/binutils/Makefile >index a468d736263d..f33baaa17357 100644 >--- a/devel/binutils/Makefile >+++ b/devel/binutils/Makefile >@@ -1,6 +1,6 @@ > PORTNAME= binutils > DISTVERSION= 2.40 >-PORTREVISION= 2 >+PORTREVISION= 3 > PORTEPOCH?= 1 > CATEGORIES?= devel > MASTER_SITES= SOURCEWARE/binutils/releases >diff --git a/devel/binutils/files/patch-bfd_elf.c b/devel/binutils/files/patch-bfd_elf.c >new file mode 100644 >index 000000000000..7f27ebb80a10 >--- /dev/null >+++ b/devel/binutils/files/patch-bfd_elf.c >@@ -0,0 +1,39 @@ >+--- bfd/elf.c.orig 2023-01-14 00:00:00 UTC >++++ bfd/elf.c >+@@ -3870,21 +3870,23 @@ assign_section_numbers (bfd *abfd, struct bfd_link_inf >+ { >+ case SHT_REL: >+ case SHT_RELA: >+- /* A reloc section which we are treating as a normal BFD >+- section. sh_link is the section index of the symbol >+- table. sh_info is the section index of the section to >+- which the relocation entries apply. We assume that an >+- allocated reloc section uses the dynamic symbol table >+- if there is one. Otherwise we guess the normal symbol >+- table. FIXME: How can we be sure? */ >+- if (d->this_hdr.sh_link == 0 && (sec->flags & SEC_ALLOC) != 0) >++ /* sh_link is the section index of the symbol table. >++ sh_info is the section index of the section to which the >++ relocation entries apply. */ >++ if (d->this_hdr.sh_link == 0) >+ { >+- s = bfd_get_section_by_name (abfd, ".dynsym"); >+- if (s != NULL) >+- d->this_hdr.sh_link = elf_section_data (s)->this_idx; >++ /* FIXME maybe: If this is a reloc section which we are >++ treating as a normal section then we likely should >++ not be assuming its sh_link is .dynsym or .symtab. */ >++ if ((sec->flags & SEC_ALLOC) != 0) >++ { >++ s = bfd_get_section_by_name (abfd, ".dynsym"); >++ if (s != NULL) >++ d->this_hdr.sh_link = elf_section_data (s)->this_idx; >++ } >++ else >++ d->this_hdr.sh_link = elf_onesymtab (abfd); >+ } >+- if (d->this_hdr.sh_link == 0) >+- d->this_hdr.sh_link = elf_onesymtab (abfd); >+ >+ s = elf_get_reloc_section (sec); >+ if (s != NULL)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 271061
: 241731