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
sancov_cmp.c does not need to be written in C; we can port this to Rust to unify our codebase some.
Moreover, this addresses some strange linkage behaviour we've been seeing for some time that affects linkage against targets from a .a. I re-encountered this while building an example for #1904 which prevented some symbols from being globally visible when using LibAFL as a .so. Version scripts, visibility attributes, and other strategies did not resolve this, so I think Rust does something internally here to enforce that only Rust-defined symbols are globally visible.
Related, I think we can and should move the other C files in libafl_targets to Rust; most of this code is copied from historical versions of AFL++ and could be written more effectively/idiomatically for Rust.
The text was updated successfully, but these errors were encountered:
bump @domenukk, @andreafioraldi: can we consider converting all C sources to Rust for the major refactor, where possible/appropriate? There's a lot of legacy code hanging around that could be improved.
Yes, more Rust is better, be careful that many things are in C because of
weak symbols not supported in Rust
Il gio 28 mar 2024, 17:33 Addison Crump ***@***.***> ha
scritto:
sancov_cmp.c does not need to be written in C; we can port this to Rust to unify our codebase some.
Moreover, this addresses some strange linkage behaviour we've been seeing for some time that affects linkage against targets from a .a. I re-encountered this while building an example for #1904 which prevented some symbols from being globally visible when using LibAFL as a .so. Version scripts, visibility attributes, and other strategies did not resolve this, so I think Rust does something internally here to enforce that only Rust-defined symbols are globally visible.
Related, I think we can and should move the other C files in libafl_targets to Rust; most of this code is copied from historical versions of AFL++ and could be written more effectively/idiomatically for Rust.
The text was updated successfully, but these errors were encountered: