[PATCH] D63109: lld-link: Reject more than one resource .obj file

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 25 14:47:52 PDT 2019


mstorsjo added a comment.

In D63109#1557242 <https://reviews.llvm.org/D63109#1557242>, @thakis wrote:

> I think all four combinations of {llvm-cvtres,cvtres.exe} x {llvm-link,link.exe} should have the same behavior. What does link.exe say to two windres outputs? What does GNU ld do with two cvtres.exe inputs?


After a bit more testing, I have the following result matrix:

             windres .o    cvtres .obj      llvm-cvtres.obj     .res
  GNU ld     Both          First            First               not supported
  link.exe   First         Error            Error               Both
  lld-link   None          Error            Error               Both

Noted oddities:

- When lld-link produces an error in these cases (faced with two resource obj files), the output exe file is still present on disk though, contrary to link.exe
- lld-link seems to fail to use resources packaged by windres into object files. Will look into why.
- lld-link also seems to have issues with object files produces by cvtres (tested with cvtres from both MSVC 2019 and MSVC2015), the resources aren't located at runtime - even when only given one single file, while files from llvm-cvtres works fine. Will also look into why for this case.

Thus, for lld-link, neither windres nor cvtres object files work at the moment, only llvm-cvtres (and plain .res files).


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63109/new/

https://reviews.llvm.org/D63109





More information about the llvm-commits mailing list