[PATCH] D123517: [llvm-lib] Add /WX, warn by default on empty inputs, add opt-out

Nico Weber via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 11 08:07:45 PDT 2022


thakis created this revision.
thakis added a reviewer: hans.
Herald added a subscriber: hiraditya.
Herald added a project: All.
thakis requested review of this revision.
Herald added a project: LLVM.

lib.exe by default exits successfully without writing an output
file when no inputs are passed. llvm-lib has the same behavior,
for compatibility.

This behavior interacts poorly with build systems: If a static
library target had no inputs, llvm-lib would not produce an output
file, causing ninja (or make, or a similar system) to successfully
run that step, but then re-run it on the next build.

After this patch, llvm-lib emits a warning in this case, that with
/WX can be turned into an error. That way, ninja (or make, or...)
will mark the initial build as failed.

People who don't like the warning can use /ignore:emptyoutput to
suppress it.

The warning also points out the existing flag /llvmlibempty which
forces creation of an empty .lib file (this is an extension to lib.exe).


https://reviews.llvm.org/D123517

Files:
  lld/COFF/Options.td
  llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
  llvm/lib/ToolDrivers/llvm-lib/Options.td
  llvm/test/tools/llvm-lib/no-inputs.test

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123517.421934.patch
Type: text/x-patch
Size: 5166 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220411/5bdea6e1/attachment.bin>


More information about the llvm-commits mailing list