Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 43899 Build 40787: arc lint + arc unit
Event Timeline
lib/libclang_rt/Makefile | ||
---|---|---|
42 | Hmm, I don't really like to have these blocks, but putting more ifdeffery in the first #ifdef block isn't too nice either. In other cases we typically do this with intermediate variables... |
There are two ways we can do it.
- Having lists of available sanitizers for each architecture (present behaviour).
- Having lists of architectures for each sanitizers.
Do you prefer to switch to 2.?
Anyway, the point of this review is to add support for riscv64, not refactor that code.
Also, there's only so much that we can add in that Makefile, once https://reviews.llvm.org/D116867 I plan to add support for powerpc*, then maybe ARM people will add their and that's it.
lib/libclang_rt/Makefile | ||
---|---|---|
42 | I'd almost commented the same thing, but I thought I'd defer *that* until we can chunk this into things like "HAS_UBSAN" "HAS_ASAN" "HAS_XRAY" or something like "SUPPORTS=asan ubsan" or "SUPPORTS=asan cfi safestack stats ubsan fuzzer msan tsan xrat" or possibly "SUPPORTS.amd64=" "SUPPORTS.riscv=". Not sure the best model, but am leaning towards the latter. |
On this I agree. It's hard to generalize from only a couple of cases. And we've often been worse for it in the past and had to refactor again
Yea, if these events are on the foreseeable horizon, we should wait til we get through them all to refactor.
As for powerpc*, depends on how soon my patch gets reviewed.
As for ARM, I don't have any plans to implement it. I only meant that it should be possible to add some sanitizers for ARM (not only aarch64, but also armv7 and maybe armv6).
What does this enable? Is it required to build world WITH_ASAN=y/WITH_UBSAN=y ? Or just adds the necessary bits so that one could compile and link a program with sanitizers enabled?
This enables the build of the indicated runtime support libraries, which go into /usr/lib/clang/x.y.z/lib/freebsd, and are linked in whenever you turn on these sanitizers on the compiler command line.
Is it required to build world WITH_ASAN=y/WITH_UBSAN=y ? Or just adds the necessary bits so that one could compile and link a program with sanitizers enabled?
Both. Well, without the runtime libraries you can't link programs, so WITH_ASAN would appear to work, until you'd run into a link error.