[llvm-commits] [Review request] test: Add the new feature "loadable_module"
geek4civic at gmail.com
Tue Nov 9 20:02:20 CST 2010
Good morning, Rafael.
Thank you to give me comments.
2010/11/10 Rafael Espíndola <rafael.espindola at gmail.com>:
> I think these patches are fine. Do the generated modules work on
> windows? I had the impression that on windowns plugins could not
> access symbols from the main executable.
"bugpoint -load BugpointPasses" works fine on Cygming.
And I used to build and test my passes as DLL, they worked ;)
Win32 DLL has restrictions (against elf.so)
- "Undefined" symbols are prohibited.
- To import entries, exporter's name (eg. bugpoint.exe) should be known.
In theory, PECOFF executable can export entries.
(unittests/JITTests.exe should do).
Consider bugpoint.exe exported some entries for BugpointPasses.dll.
BugpointPasses.dll would rely on bugpoint.exe and would not
unavailable with opt.exe.
Who would be happy? :)
Usually, when "loadable module" capability is needed on win32,
we can split exporter to the big DLL. eg. perl5*.dll, python2*.dll,
"loadable modules" can depend on those DLLs, not on main executables.
It is why ENABLE_SHARED is needed on win32 to be capable of loadable module.
ps. a few patches will be needed to pass test/bugpoint.
llvm*.dll is not on lib/ but on bin/. for convenience.
More information about the llvm-commits