Skip to content

Conversation

@hmelder
Copy link

@hmelder hmelder commented Oct 24, 2025

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.

BLOCK_EXPORT expands to 'extern' or 'extern "C"'.
NSConcrete* globals need to be exported for runtime integration
(libobjc2 for example).
Copy link
Member

@compnerd compnerd left a 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?

@hmelder
Copy link
Author

hmelder commented Oct 31, 2025

@compnerd do you know when the change in LLVM was made? I would like to add it to the commit message.

@compnerd
Copy link
Member

@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.

@compnerd
Copy link
Member

This looks pretty close to perfect. The only thing that is missing is just testing the build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants