You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running ninja -t cleandead, ninja will remove file which are dynamic outputs of the build (files registered in dyndep files as implicit outputs), but those dynamic outputs should not be considered dead. For instance in my example below, input1.o and input2.o are removed by ninja -t cleandead.
I have looked at CleanDead implementation and I have noticed it was never calling LoadDyndeps() during its initialization.
Below the experience I made the reproduce the issue:
my_tool.py read list.txt, which contains a list of file to concatenate. The concatenation written in output.txt. To to experiment dynamic outputs, it also output one .o for every .txt contain in list.txt (in my example list.txt contains input1.txt input2.txt). When run with --dyndep the script only generate the dyndep corresponding to the expected action.
There's a known ninja bug
(ninja-build/ninja#1952) that running this
with dyndeps will result in Ninja deleting implicit outputs from the
dyndeps, leading to pointless rebuilds. For reference, this is what
CMake does as well.
dcbaker
added a commit
to dcbaker/meson
that referenced
this issue
Mar 29, 2024
There's a known ninja bug
(ninja-build/ninja#1952) that running this
with dyndeps will result in Ninja deleting implicit outputs from the
dyndeps, leading to pointless rebuilds. For reference, this is what
CMake does as well.
When running
ninja -t cleandead
, ninja will remove file which are dynamic outputs of the build (files registered in dyndep files as implicit outputs), but those dynamic outputs should not be considered dead. For instance in my example below, input1.o and input2.o are removed byninja -t cleandead
.I have looked at CleanDead implementation and I have noticed it was never calling
LoadDyndeps()
during its initialization.Below the experience I made the reproduce the issue:
my_tool.py
readlist.txt
, which contains a list of file to concatenate. The concatenation written inoutput.txt
. To to experiment dynamic outputs, it also output one .o for every .txt contain in list.txt (in my example list.txt contains input1.txt input2.txt). When run with--dyndep
the script only generate the dyndep corresponding to the expected action.output.txt.dyndep
The text was updated successfully, but these errors were encountered: