37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
diff -rupN --no-dereference binutils-2.32/bfd/coffgen.c binutils-2.32-new/bfd/coffgen.c
|
|
--- binutils-2.32/bfd/coffgen.c 2019-11-19 20:47:08.571628378 +0100
|
|
+++ binutils-2.32-new/bfd/coffgen.c 2019-11-19 20:47:17.460680520 +0100
|
|
@@ -2639,6 +2639,9 @@ _bfd_coff_section_already_linked (bfd *a
|
|
struct bfd_section_already_linked_hash_entry *already_linked_list;
|
|
struct coff_comdat_info *s_comdat;
|
|
|
|
+ if (sec->output_section == bfd_abs_section_ptr)
|
|
+ return FALSE;
|
|
+
|
|
flags = sec->flags;
|
|
if ((flags & SEC_LINK_ONCE) == 0)
|
|
return FALSE;
|
|
diff -rupN --no-dereference binutils-2.32/bfd/cofflink.c binutils-2.32-new/bfd/cofflink.c
|
|
--- binutils-2.32/bfd/cofflink.c 2019-01-19 17:01:32.000000000 +0100
|
|
+++ binutils-2.32-new/bfd/cofflink.c 2019-11-19 20:47:17.460680520 +0100
|
|
@@ -310,7 +310,9 @@ coff_link_add_symbols (bfd *abfd,
|
|
case COFF_SYMBOL_GLOBAL:
|
|
flags = BSF_EXPORT | BSF_GLOBAL;
|
|
section = coff_section_from_bfd_index (abfd, sym.n_scnum);
|
|
- if (! obj_pe (abfd))
|
|
+ if (discarded_section (section))
|
|
+ section = bfd_und_section_ptr;
|
|
+ else if (! obj_pe (abfd))
|
|
value -= section->vma;
|
|
break;
|
|
|
|
@@ -327,6 +329,8 @@ coff_link_add_symbols (bfd *abfd,
|
|
case COFF_SYMBOL_PE_SECTION:
|
|
flags = BSF_SECTION_SYM | BSF_GLOBAL;
|
|
section = coff_section_from_bfd_index (abfd, sym.n_scnum);
|
|
+ if (discarded_section (section))
|
|
+ section = bfd_und_section_ptr;
|
|
break;
|
|
}
|
|
|