trailofbits / ruzzy

A coverage-guided fuzzer for pure Ruby code and Ruby C extensions
GNU Affero General Public License v3.0
69 stars 3 forks source link

Bump LLVM version to 18 #13

Closed AdvenamTacet closed 3 months ago

AdvenamTacet commented 4 months ago

This commit changes clang installed directly from apt to clang installed by an install LLVM apt script. It installs LLVM18 (not reproducible).

To make it work easily, it was necessary to change Debian to Ubuntu.


Reasoning behind using LLVM18:

Currently, ASAN will only work correctly when using a recent head build of LLVM/Clang - it requires this bugfix related to multithreaded fork, which is not yet in any released version. See here for instructions on how to build LLVM/Clang from source (note you will need at least the clang and compiler-rt projects enabled). Then, you will need to replace CC=clang in the instructions with an explicit path to your built Clang binary.

https://github.com/ruby/ruby/blob/master/doc/contributing/building_ruby.md#building-with-address-sanitizer

mschwager commented 3 months ago

I think https://github.com/trailofbits/ruzzy/pull/16 should support this use-case, and also choosing different versions using the LLVM_VERSION build arg