-
Notifications
You must be signed in to change notification settings - Fork 3
BlocksRuntime: Export all NSConcrete* globals on Win32 #7
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: main
Are you sure you want to change the base?
Conversation
BLOCK_EXPORT expands to 'extern' or 'extern "C"'.
NSConcrete* globals need to be exported for runtime integration (libobjc2 for example).
compnerd
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 cleaning this up. Do you know where the code generation occurs for the newly added isa pointers?
|
@compnerd do you know when the change in LLVM was made? I would like to add it to the commit message. |
llvm/llvm-project#125384 is what added the static runtime support; llvm/llvm-project@442b88b added the original support for PE/COFF support in the Blocks CG. |
|
This looks pretty close to perfect. The only thing that is missing is just testing the build. |
The libobjc2 runtime supports integration with an external blocks runtime. For this to work, it needs access to the NSConcrete* globals. Some of them are already exported in the def file.
I have also removed an unused CMakeLists and fixed compilation on Windows.