-
Notifications
You must be signed in to change notification settings - Fork 45
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
SymCC Runtime Integration #55
Conversation
* Removed options to located symcc. * Automatic building of symcc-rt. * Clean integration with meson using dependencies. * Option to change symcc rt backend. * Option to compile symcc rt statically and dynamically.
6ea6517
to
5af4c68
Compare
@@ -1,5 +1,5 @@ | |||
project('qemu', ['c'], meson_version: '>=0.63.0', | |||
default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto', | |||
default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++17', 'b_colorout=auto', |
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.
Is it ok to keep this? I couldn't get rid of this modification in the end
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.
Is it required because the SymCC runtime uses C++17? Fine for me to keep it 🤷♂️
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.
It should not be necessary in theory.
Subprojects in meson should not rely on the options of the root project by default. I suspect the parsing of cmake by meson is doing something wrong, I will check
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.
After investigation, I don't think we can do much about this.
Apparently, a few things are being hardcoded in the default options of the meson file generated from the cmake project that cannot be avoided (https://github.com/mesonbuild/meson/blob/master/mesonbuild/cmake/interpreter.py).
Maybe I missed something. If someone finds a way, we can change. Otherwise, I'll keep things that way.
.gitmodules
Outdated
[submodule "subprojects/symcc-rt"] | ||
path = subprojects/symcc-rt | ||
url = https://github.com/eurecom-s3/symcc-rt.git | ||
branch = export_symcc_runtime |
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.
Should this be main
?
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.
Once merged I guess yes.
@@ -1,5 +1,5 @@ | |||
project('qemu', ['c'], meson_version: '>=0.63.0', | |||
default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto', | |||
default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++17', 'b_colorout=auto', |
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.
Is it required because the SymCC runtime uses C++17? Fine for me to keep it 🤷♂️
Co-authored-by: Sebastian Poeplau <[email protected]>
Also test Versions 14 and 15 in GH Action
LLVM 18 not currently working... this should be fixed
minor
minor
Now that SymCC and Symcc Runtime are being decorrelated, we can get rid of the SymCC dependency and replace it with SymCC Runtime.
It comes with nice side features, like the automatic building of
symcc-rt
with meson / cmake and the full integration with the dependency system of meson, removing some ugly building code.There is also:
symcc-rt
's backend.symcc-rt
statically or dynamically.What remains to fix:
symcc-rt
. It must come fromsymcc-rt
not declaring correctly some dependencies in the correspondingCMakeLists.txt
, the solution should not be too hard to fix.Compagnon PRs: SymCC PR, SymCC Runtime PR