bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/29389] Failed assertions in bfd/cofflink.c and bfd/coff-x8


From: luca.bacci at outlook dot com
Subject: [Bug binutils/29389] Failed assertions in bfd/cofflink.c and bfd/coff-x86_64.c during the linking stage (MSYS2 MinGW64)
Date: Sat, 30 Jul 2022 13:27:54 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=29389

--- Comment #10 from Luca Bacci <luca.bacci at outlook dot com> ---
The code that repeatedly calls _bfd_coff_link_input_bfd() is in
_bfd_coff_final_link():
https://github.com/bminor/binutils-gdb/blob/binutils-2_38/bfd/cofflink.c#L856

    for (o = abfd->sections; o != NULL; o = o->next)
      {
        for (p = o->map_head.link_order; p != NULL; p = p->next)
          {
            if (p->type == bfd_indirect_link_order
                && bfd_family_coff (p->u.indirect.section->owner))
              {
                sub = p->u.indirect.section->owner;
                if (! bfd_coff_link_output_has_begun (sub, & flaginfo))
                  {
                    if (! _bfd_coff_link_input_bfd (&flaginfo, sub))
                      goto error_return;
                    sub->output_has_begun = true;
                  }
              }
            else if (p->type == bfd_section_reloc_link_order
                     || p->type == bfd_symbol_reloc_link_order)
              {
                if (! _bfd_coff_reloc_link_order (abfd, &flaginfo, o, p))
                  goto error_return;
              }
            else
              {
                if (! _bfd_default_link_order (abfd, info, o, p))
                  goto error_return;
              }
          }
      }

But I don't quite know where the needed memory is freed. I see that hash maps
are used, could it be that some hash maps are indexed by filenames?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]