-
Notifications
You must be signed in to change notification settings - Fork 15
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
Attempt plugin load from global symbol table #15
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…oint symbol is already pre-loaded.
… with LIBFUNC_DETAIL_EP_DECORATION. Also updated LoadPluginLibdl.h to use dlsym(RTLD_DEFAULT, ...) in its attempt to check if the symbol is loaded into the global symbol table. This makes it now work on Android.
…gross cast involved.
Looks reasonable to me. Grabbed it locally to my Linux VM, and I made a few changes (basically just factoring out common code) - if you could just test it again on your desired platform and Windows (just to be paranoid since we touched shared headers), to verify I didn't break what you wanted out of this patch, you're welcome to merge when you're ready. |
Needed so we get entry points that look like libfunc_ep_com_sensics_libfunc_tests_dummyplugin (as before/expected) and not like this (with an unexpanded macro in it) LIBFUNC_DETAIL_EP_PREFIXcom_sensics_libfunc_tests_dummyplugin
…hat is only currently implemented in the libdl path.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change first exports the plugin's unique entry point so it can be loaded with dlsym, and also changes
loadPluginByName
to make an attempt to load a plugin's unique entry point symbol from the global symbol table before attempting to load the plugin file itself. This allows the function to work in places where the plugin is pre-loaded into the application (either statically linked or the .so is explicitly loaded beforehand, as on Android).