bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/30079] Mingw ld : linking against an import lib causes ld to abo


From: matz at suse dot de
Subject: [Bug ld/30079] Mingw ld : linking against an import lib causes ld to abort() at compare_section in ldlang.c
Date: Tue, 07 Feb 2023 17:10:33 +0000

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

--- Comment #3 from Michael Matz <matz at suse dot de> ---
The guards are supposed to be moved only, not removed:

  if (!wild->filenames_sorted
      && (sec == NULL || sec->spec.sorted == none
          || sec->spec.sorted == by_none))
    {
      return wild->rightmost;
    }
  ...
  while (*tree) {
    if (wild->filenames_sorted) {
      ...
      if (i > 0) ... continue; else if (i < 0) ... continue;
      if (fa || la) {
        ...
        if (i > 0) ... continue else if (i < 0) ... continue;
      }
    }
    ...
    compare_section (sec->spec.sorted, section, (*tree)->section) < 0)
  ...

So it could only get to calling compare_section() (with sec->spec.sorted being
none or by_none) when ->filename_sorted _and_ it falls through the compare
based on these names (i.e. if filenames are equal and containing archives (if
they exist) are equal).

I probably convinced myself that this situation is not supposed to happen,
and as testcases were totally missing I didn't notice otherwise.

If you can tar up the object files I can take a look myself (I don't have 
cross compilers here, but cross binutils).  Or you add the guard
back again and see how that goes.

-- 
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]