-
Notifications
You must be signed in to change notification settings - Fork 20
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
Error when running GenMC Persevere mode for the tutorial example #65
Comments
Hi, Persevere has been disabled for a while (see CHANGELOG, v0.10.0). We will likely reinstate some functionality to check for persistency properties in the future, though not necessarily in the context of filesystems. If you want to run the examples in the manual, you can roll back to an older version. |
Thank you for the explanation! I am able to run the example in the manual on GenMC v0.9. I am currently trying to see if GenMC can be used to test for crash-consistency bugs in database applications. I am trying to run a LevelDB workload using GenMC persevere mode. I compile the workload using the command However, it seems that GenMC does not support taking additional static libraries as input, as I get the following warning and runtime error.
Do you know if there is an easy way to fix this? Thanks a lot! |
Hi GenMC developers, Any guidance or feedback you could provide would be greatly appreciated for this. Thanks in advance! |
Unfortunately, GenMC does not work with external libraries, as it first compiles the code to LLVM-IR before verifying it. |
Hi GenMC developers, Thank you for your clarifications! We see that the GenMC tool has a developer option to accept a bitcode file as input. Therefore, we have been trying to compile our LevelDB workload along with the LevelDB library into a whole program bitcode file and supply it as the input. However, we are getting multiple errors in the compiling and linking stage. We are able to solve some of them by disabling some optional LLVM passes but there are still errors regarding symbols used in C++ standard library. We tried to compile C++ standard library from scratch using clang/wllvm but that did not work either. Is it true that GenMC does not fully support testing C++ programs, at least for Persevere mode? |
This switch is mostly for debugging and assumes that the code has been compiled using GenMC's headers and compiler flags.
Yes, GenMC does not work with arbitrary C/C++ code as it has to capture and model various types of operations such as shared-memory reads/writes, memory allocation, etc. (This is why GenMC compiles code using custom headers.) STL is not supported either. |
Hi GenMC developers,
I am trying to run the Persevere example in this tutorial. I used the command
./genmc --persevere pers.c
. However, it is giving me the following error.Do you have any idea how to fix this? I tried both building from the source and running in the Docker but encountered the same error.
The text was updated successfully, but these errors were encountered: