-
Notifications
You must be signed in to change notification settings - Fork 162
Major refactor #723
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
Major refactor #723
Conversation
aa16cb9 to
43b2024
Compare
b71a557 to
f678379
Compare
f8bbbc9 to
8550a94
Compare
8550a94 to
57d01d6
Compare
| // These hypercalls are not executed in normal test workflows anyway | ||
| __builtin_debugtrap(); | ||
| break; | ||
| #else |
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.
I think this is okay based off the comments left in #625 but we are removing the explicit data dependencies. Without turning this into a naked block (which would be very brittle), not sure would could be done.
834a92c to
a413225
Compare
kyle-elliott-tob
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.
Thanks for all the hard work over the past few days, LGTM!
Waiting on @wizardengineer for review
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.
LGTM, thanks again!
2. For the **cxx-common-alternative** version of Remill, which version of XED does it correspond to?
I encountered an error, but when using the XED built from the **main** branch of *packages*, the following cases compile successfully:
case XED_ISA_SET_AVX512DQ_KOPB:
case XED_ISA_SET_AVX512DQ_KOPW:
4. ```
clang-17: warning: no such sysroot directory: '-m32' [-Wmissing-sysroot]
/Users/runner/work/remill/remill/lib/Arch/AArch32/Runtime/BasicBlock.cpp:17:10: fatal error: 'algorithm' file not found
17 | #include
```
Today, when I compiled packages on an Ubuntu Server platform, I unfortunately encountered a similar “cannot find However, when using the Although using |
This is not a supported configuration, so there is no reason to try this. There also is no |
a413225 to
0dfe75e
Compare
Can cxx-common currently run on the Windows platform ,Are there other ways to avoid relying on vcpkg |
Sorry, my English isn’t great, but I understand you now. |
|
cxx-common will not compile out of the box on windows. There's (currently) a few different issues, all of which our resolved by this commit. Instructions will eventually be updated in the main readme to reflect this after the merge. |
|
You can build the remill fully on Windows with the |
99ad47b to
3524cf3
Compare
3524cf3 to
3dd93c7
Compare
|
Thank you very much again @mrexodia, a truly herculean effort that is greatly appreciated! |



This is a huge refactor doing the following things:
cxx-commonimplementation as a superbuild project. You can find more information here: https://github.com/LLVMParty/packages/blob/main/dependencies.md. This is of course optional, but makes it much easier to users to build the dependencies necessary for remill.g++-multiliband-m32. The semantics are now compiled as-ffreestandingand just enough of the C++ standard library was implemented in a fake--sysrootto make it work.std::fetestexceptand directly useFE_XXXflags. This has now been decoupled properly so you can implement FPU exceptions however you want. It looks like Adding new type 'MV256W' and enabling AArch64 STP SIMD semantics. #636 was discussing similar bugs, all of which have been fixed (I think).sleighwithout a separate Ghidra fork for PPC-ffreestandingand test failures with later LLVM versions#ifdefs for LLVM versions, but I think it would be nice to widen the compatibility instead of only supporting LLVM 17. Due to bugs in LLVM JSON this required switching back to C++17, but the project uses no C++20 features, so I don't think this is an issue.-fsanitize(@fvrmatteo's work)Closes #678
Closes #718
Closes #663
Closes #573
Unfortunately splitting this up is going to be extremely tough. I can split the changes for LLVM15-21 compatibility, but the
-ffreestandingchanges are dependent on the FPU semantic changes and a bunch of CMake stuff. The sleigh "changes" (nothing actually changed) could be split out too, the diff just looks massive.Note: The CI failure is something I cannot reproduce locally with any LLVM version. I suspect it is specific to the LLVM fork used in
cxx-common. The docker images I use are official LLVM versions without changes, compiled with assertions enabled.