-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Fix some compiler error on LLVM 21 #59946
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: master
Are you sure you want to change the base?
Conversation
|
For the remaining issues: Ref llvm/llvm-project@0bfa0bc and llvm/llvm-project@76d5a79#diff-889679ec233591bf43379efae9b68a4e901c003f4c3f5872c6e15bf261bc5572 |
|
For the eh frame registration issue, it seems that the ehframe register plugin doesn't have any customization hooks anymore so maybe we need to create our own plugin instead? For the ThreadSafeContext issue, I currently worked around it by patching llvm. The usage patter is more restricted with the new API and I'm not 100% sure yet if the new API covers all the needs here. |
30b9363 to
ca8ce88
Compare
c53adce to
2961412
Compare
|
EHFrame registrer should be fixed now and the only remaining issue is the API change for ThreadSafeContext. I'm convinced that it is not possible to support the new API as-is without getting rid of The comment suggests that |
|
Here's the LLVM patch I used to get julia and LLVM.jl to build/load JuliaLang/llvm-project#51 . |
|
Actually I take that back. The |
|
The early release of thread safe context in add_output is now fixed so this should be everything for dealing with C++ API change. The implementation could probably be cleaner with C++20 co_routine since this is more-or-less a manual implementation of it... |
22dec88 to
bdc92a9
Compare
|
I moved all the change that doesn't require a version check to other PR's. (#59965 is included due to otherwise merge conflict). I assume the first few changes should be reasonably clear and uncontroversial (those are part of the original PR). I can split that out if needed as well. |
We already need to manually create a C compatible function pointer and heap allocated data, might as well do so directly without another indirection through std::function.
Turn `add_output` into a manual co-routine so that we can get out of the caller scope mid-call to release the threadsafecontext lock early.
Remaining issues are the removal of EHFrameRegistrar class and manual locking interface for ThreadSafeContext. Some other deprecation warnings are also left as is for now.