Jay Foad
2014-Dec-01 12:15 UTC
[LLVMdev] non-x86 sanitizer buildbots: no rule to make target check-lsan etc.
Hi, Currently the first stage ("run sanitizer tests in gcc build") of the sanitizer-ppc64-linux1 buildbot is only failing because of: + cd clang_build + make -j16 check-lsan make: *** No rule to make target `check-lsan'. Stop. + echo @@@STEP_FAILURE@@@ @@@STEP_FAILURE@@@ + cd clang_build + make -j16 check-msan make: *** No rule to make target `check-msan'. Stop. + echo @@@STEP_FAILURE@@@ @@@STEP_FAILURE@@@ + cd clang_build + make -j16 check-tsan make: *** No rule to make target `check-tsan'. Stop. + echo @@@STEP_FAILURE@@@ @@@STEP_FAILURE@@@ + cd clang_build + make -j16 check-ubsan make: *** No rule to make target `check-ubsan'. Stop. + echo @@@STEP_WARNINGS@@@ @@@STEP_WARNINGS@@@ + cd clang_build + make -j16 check-dfsan make: *** No rule to make target `check-dfsan'. Stop. + echo @@@STEP_WARNINGS@@@ @@@STEP_WARNINGS@@@ The problem is that the buildbot script (zorg/buildbot/builders/sanitizers/buildbot_cmake.sh) explicitly lists all the sanitizer check-* targets, but only some of them are supported on non-x86 configurations. It seems silly for the buildbot script to duplicate all the logic from compiler-rt's cmake/config-ix.cmake about which sanitizers are supported on which targets. Maybe compiler-rt could have a new check-all-compiler-rt target, which runs the checks for all supported sanitizers? Is it possible to implement this (it would be a lit target that subsumes a bunch of other lit targets)? Any other ideas? Thanks, Jay.
Evgeniy Stepanov
2014-Dec-01 12:58 UTC
[LLVMdev] non-x86 sanitizer buildbots: no rule to make target check-lsan etc.
I think check-all-compiler-rt target would be useful on its own, but on a buildbot it would result in a single "step" instead of multiple smaller "steps", and even less informative messages. I don't really mind, "run sanitizer tests in gcc build" is a single step anyway. I would not want that to happen to the following "check-asan", "check-msan", etc steps though. With ninja, we could filter against "ninja -t targets". On Mon Dec 01 2014 at 3:15:27 PM Jay Foad <jay.foad at gmail.com> wrote:> Hi, > > Currently the first stage ("run sanitizer tests in gcc build") of the > sanitizer-ppc64-linux1 buildbot is only failing because of: > > + cd clang_build > + make -j16 check-lsan > make: *** No rule to make target `check-lsan'. Stop. > + echo @@@STEP_FAILURE@@@ > @@@STEP_FAILURE@@@ > + cd clang_build > + make -j16 check-msan > make: *** No rule to make target `check-msan'. Stop. > + echo @@@STEP_FAILURE@@@ > @@@STEP_FAILURE@@@ > + cd clang_build > + make -j16 check-tsan > make: *** No rule to make target `check-tsan'. Stop. > + echo @@@STEP_FAILURE@@@ > @@@STEP_FAILURE@@@ > + cd clang_build > + make -j16 check-ubsan > make: *** No rule to make target `check-ubsan'. Stop. > + echo @@@STEP_WARNINGS@@@ > @@@STEP_WARNINGS@@@ > + cd clang_build > + make -j16 check-dfsan > make: *** No rule to make target `check-dfsan'. Stop. > + echo @@@STEP_WARNINGS@@@ > @@@STEP_WARNINGS@@@ > > The problem is that the buildbot script > (zorg/buildbot/builders/sanitizers/buildbot_cmake.sh) explicitly lists > all the sanitizer check-* targets, but only some of them are supported > on non-x86 configurations. It seems silly for the buildbot script to > duplicate all the logic from compiler-rt's cmake/config-ix.cmake about > which sanitizers are supported on which targets. > > Maybe compiler-rt could have a new check-all-compiler-rt target, which > runs the checks for all supported sanitizers? Is it possible to > implement this (it would be a lit target that subsumes a bunch of > other lit targets)? > > Any other ideas? > > Thanks, > Jay. >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141201/a4017e08/attachment.html>
Jay Foad
2014-Dec-22 10:03 UTC
[LLVMdev] non-x86 sanitizer buildbots: no rule to make target check-lsan etc.
How about tweaking the compiler-rt cmakefiles so that if lsan is not supported, the target check-lsan still exists but does nothing? I've attached a patch that does this. (I don't know much about cmake so there might be a better way of doing it.) Alternatively, can I change the zorg build script so that "run sanitizer tests in gcc build" doesn't try to run check-lsan etc unless we're on x86-64? I've attached a patch for this too. I can submit either of these patches via phabricator if you'd prefer. Thanks, Jay. On 1 December 2014 at 12:58, Evgeniy Stepanov <eugenis at google.com> wrote:> I think check-all-compiler-rt target would be useful on its own, but on a > buildbot it would result in a single "step" instead of multiple smaller > "steps", and even less informative messages. I don't really mind, "run > sanitizer tests in gcc build" is a single step anyway. I would not want that > to happen to the following "check-asan", "check-msan", etc steps though. > > With ninja, we could filter against "ninja -t targets". > > > > On Mon Dec 01 2014 at 3:15:27 PM Jay Foad <jay.foad at gmail.com> wrote: >> >> Hi, >> >> Currently the first stage ("run sanitizer tests in gcc build") of the >> sanitizer-ppc64-linux1 buildbot is only failing because of: >> >> + cd clang_build >> + make -j16 check-lsan >> make: *** No rule to make target `check-lsan'. Stop. >> + echo @@@STEP_FAILURE@@@ >> @@@STEP_FAILURE@@@ >> + cd clang_build >> + make -j16 check-msan >> make: *** No rule to make target `check-msan'. Stop. >> + echo @@@STEP_FAILURE@@@ >> @@@STEP_FAILURE@@@ >> + cd clang_build >> + make -j16 check-tsan >> make: *** No rule to make target `check-tsan'. Stop. >> + echo @@@STEP_FAILURE@@@ >> @@@STEP_FAILURE@@@ >> + cd clang_build >> + make -j16 check-ubsan >> make: *** No rule to make target `check-ubsan'. Stop. >> + echo @@@STEP_WARNINGS@@@ >> @@@STEP_WARNINGS@@@ >> + cd clang_build >> + make -j16 check-dfsan >> make: *** No rule to make target `check-dfsan'. Stop. >> + echo @@@STEP_WARNINGS@@@ >> @@@STEP_WARNINGS@@@ >> >> The problem is that the buildbot script >> (zorg/buildbot/builders/sanitizers/buildbot_cmake.sh) explicitly lists >> all the sanitizer check-* targets, but only some of them are supported >> on non-x86 configurations. It seems silly for the buildbot script to >> duplicate all the logic from compiler-rt's cmake/config-ix.cmake about >> which sanitizers are supported on which targets. >> >> Maybe compiler-rt could have a new check-all-compiler-rt target, which >> runs the checks for all supported sanitizers? Is it possible to >> implement this (it would be a lit target that subsumes a bunch of >> other lit targets)? >> >> Any other ideas? >> >> Thanks, >> Jay.-------------- next part -------------- A non-text attachment was scrubbed... Name: dummy-check-targets Type: application/octet-stream Size: 1132 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141222/da31d234/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: zorg-check-lsan-x86-64 Type: application/octet-stream Size: 1331 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141222/da31d234/attachment-0001.obj>
Apparently Analagous Threads
- [LLVMdev] non-x86 sanitizer buildbots: no rule to make target check-lsan etc.
- How to use mainline clang/llvm with CMake
- [LLVMdev] [cfe-dev] lsan for LLVM bootstrap; leaks in TableGen
- [LLVMdev] [RFC] Parsing runtime flags in sanitizers (ASan/LSan/UBSan)
- [LLVMdev] [RFC] Parsing runtime flags in sanitizers (ASan/LSan/UBSan)