-
-
Notifications
You must be signed in to change notification settings - Fork 88
create meson build scripts #1546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Hey @rdmark Do we need to update the GHA workflow as well? It wasn't obvious to me (no experience with Meson Build, fwiw) why some dirs were suffixed with |
68e4baa to
f92e6c4
Compare
|
@nucleogenic good questions! I am still experimenting here, not all functionality replicated in meson yet. I also want to make sure that it's not slower or more unstable when building natively on old RPis. Once I get cross compiling working I will set up the GitHub CI workflows. Note for future reference: On the Zeros it's best to force clang++ and single-threaded builds, which requires you to run ninja directly and not through the meson wrapper (AFAICT). Example commands for building only piscsi and scsictl, skipping all the other binaries to save some time: Regarding the The build system is set up so that It seems the meson project has finally realized that this is a problem and are adding a build_subdir argument to executable() in v1.10.0, the upcoming bleeding edge version. But needless to say, we need to support older meson versions shipped with stable Raspbian releases for instance. But! As I was typing out this answer to you I had an epiphany. The reason f.e. a Only drawback is that we lose a bit of modularity. |
|
Right now I'm stuck at the unit tests. The suite crashes in |
248dd20 to
ed9b274
Compare
|
Actually, I found out now there are more tests that are failing when you randomize the execution order. The gtest library has built-in functionality for randomization: f.e. What I can consistently reproduce are both in StorageDeviceTest and, a sigabort when executing: |
|
Pushed a fix that does thorough cleanup between each StorageDeviceTest test. Now I don't get any more test failures when shuffling. Added the GTEST_SHUFFLE flag to the workflow now to catch future test isolation bugs earlier. I'm still quite suspicious that there are other tests that don't clean up after themselves and that the global state is inconsistent. |
Adds a suite of meson scripts for building the C++ project
|
nucleogenic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically just unblocking for merge :)
|
Thanks for the review! For the record, I'm holding off on this to do more testing with actual SCSI hosts. I'm a little paranoid since I don't fully understand some of those failures and why my fixes fixed them. ^^; |



Adds a suite of meson scripts for building the C++ project. Example commands:
Running the unit tests after being built with meson revealed a number of test isolation / atomicity bugs, leading to pointer dereference and buffer overflow bugs in piscsi proper, for which fixes are included.