[llvm-bugs] [Bug 28722] New: Larger ARM/COFF binaries linked by lld fail to load

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jul 26 12:43:43 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=28722

            Bug ID: 28722
           Summary: Larger ARM/COFF binaries linked by lld fail to load
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: COFF
          Assignee: unassignedbugs at nondot.org
          Reporter: martin at martin.st
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

When linking ARM/COFF binaries (for windows) with lld, the linked binaries fail
to load once the binary reaches a certain size.

In a very rough test, a produced exe starts failing when it reaches around 6.2
MB (although the symbol distances that cause the issue probably is less than
that).


When testing the linked binaries by running them in wine on ARM, the symptoms
can either be that the binary fails to even reach the main() function, e.g.
like this:

$ wine avconv.exe
wine: Unhandled page fault on write access to 0x00000000 at address 0x10241aa
(thread 004c), starting debugger...

Or it can fail randomly later:

$ wine avconv.exe
avconv version v12_dev0-3048-g100fb0d, Copyright (c) 2000-2016 the Libav
developers
  built on Jul 26 2016 22:33:38 with clang version 4.0.0
(http://llvm.org/git/clang d7ce71572703901a5d7368bc770be92680b24107)
(http://llvm.org/git/llvm bda089c623a22b5cd6958d0fd82447b4000ee93a)
wine: Unhandled page fault on read access to 0x00000011 at address 0xc22d60
(thread 0048), starting debugger...

Or fail in an even more creative way:

$ wine avconv.exe
avconv version v12_dev0-3048-g100fb0d, Copyright (c) 2000-2016 the Libav
developers
  built on Jul 26 2016 22:33:38 with clang version 4.0.0
(http://llvm.org/git/clang d7ce71572703901a5d7368bc770be92680b24107)
(http://llvm.org/git/llvm bda089c623a22b5cd6958d0fd82447b4000ee93a)
wine: Unhandled illegal instruction at address 0xc19f1c (thread 0044), starting
debugger...

The failure types can be varied by linking in more or less content into the
resulting exe. Needless to say, the corresponding binaries that are produced by
using MS link.exe instead of lld-link work flawlessly in the same test setup.


I'd be happy to help debugging the matter further if there are suggestions on
what I can look at and investigate, to provide more clues about what happens.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160726/2054d0a7/attachment.html>


More information about the llvm-bugs mailing list