LibAFL-legacy icon indicating copy to clipboard operation
LibAFL-legacy copied to clipboard

Build system

Open andreafioraldi opened this issue 5 years ago • 6 comments

If libafl has to be multi platform, we cannot really use just GNU makefiles.

I propose meson as it was recently adopted by QEMU it and seems a sane build system, more than cmake for sure.

We can maintain both meson files and raw makefiles for linux/bsd if needed.

andreafioraldi avatar Oct 05 '20 20:10 andreafioraldi

In addition, meson supports C C++ and Rust so we can use the same build system to build all the bindings.

andreafioraldi avatar Oct 05 '20 20:10 andreafioraldi

Personally only used cmake, and makefiles, but I cannot wait to move on to something better 👍 Meson sounds good to me.

We may still want to use cargo for rust btw, meson seems odd for this (https://github.com/mesonbuild/meson/issues/2173) /edit: I don't want to use external crates, just wondering how mature meson as rust build system could be, when everybody else uses cargo

domenukk avatar Oct 05 '20 20:10 domenukk

And what about ninja and others? We are not in a hurry so I would propose we take time to see what features we need and which solution works best for us. We can use this issue to trace this. So:

Support Linux, bsd (Mac, open, firefly, etc). Solaris? What else?

Support building c,c++,rust. What else?

vanhauser-thc avatar Oct 06 '20 05:10 vanhauser-thc

Support Linux, bsd (Mac, open, firefly, etc). Solaris? What else?

Windows for sure, Linux kernel maybe

Support building c,c++,rust. What else?

Scripting languages, but they don't need a build system

andreafioraldi avatar Oct 06 '20 07:10 andreafioraldi

On the other hand https://www.rojtberg.net/1481/do-not-use-meson/

andreafioraldi avatar Oct 06 '20 07:10 andreafioraldi

On the other hand https://www.rojtberg.net/1481/do-not-use-meson/

This is two years old, in the meantime qemu and others switched to meson. It seems sane. Here's a reddit post https://www.reddit.com/r/cpp/comments/eppqhj/cmake_vs_meson_vs_bazel/ Buck and Bazel and others are too enterprisey I think. Ninja isn't really the same thing, we would still write cmake or some other frontend and let it do the lifting.

For me qemu is the largest reason for us to switch to meson, less build systems is better.

domenukk avatar Oct 06 '20 08:10 domenukk