bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/24981] Hit assertion failure in ld/ldlang.c:7504


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/24981] Hit assertion failure in ld/ldlang.c:7504
Date: Thu, 19 Sep 2019 03:08:30 +0000

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

--- Comment #8 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The binutils-2_33-branch branch has been updated by Alan Modra
<address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=722b823106e7e3b7ac6eed71d52a748bc4cd4d4f

commit 722b823106e7e3b7ac6eed71d52a748bc4cd4d4f
Author: Alan Modra <address@hidden>
Date:   Thu Sep 12 17:25:46 2019 +0930

    PR24981, Hit assertion failure in ld/ldlang.c:7504

    This fixes a problem with commit 128bf1fe608, a patch I made
    2019-08-06.   Apparently it is possible to trigger the assertion I
    added during an LTO bootstrap, something I haven't reproduced.
    However, I did find a case triggered by an odd linker script feature
    that allows a file to be loaded from the script without specifying
    that file on the command line.  Regarding input sections:
      "When you use a file name which is not an archive:file specifier
       and does not contain any wild card characters, the linker will
       first see if you also specified the file name on the linker command
       line or in an INPUT command.  If you did not, the linker will
       attempt to open the file as an input file, as though it appeared on
       the command line."

    So putting
      .foo : { foo.a(*) }
    into a script supposedly extracts foo.a into .foo.  Except it doesn't,
    since this feature is meant for object files only.  Well anyway,
    assuming --whole-archive was given on the command line, foo.a contains
    a -flto object and no other objects involved were -flto then we'll hit
    the assert due to files added like foo.a here *not* having their input
    statement put on the general statement list.  Why these are not put on
    the statement list isn't obvious but it has been that way since commit
    193c5f93a17 in 1994.

        PR 24981
        * ldlang.c (lang_process): Remove assertion.  Comment.

    (cherry picked from commit a19826f4c41219be6fb1adb528fe5fd3a3dc4130)

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