Inhibit versioning of generated .so files as #68
Merged
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.
Xamarin refuses to load .so files with a version if these files are listed as NEEDED in dependent .so files.
Example: Had to adapt https://github.com/herumi/msoffice to be consumable by Android Xamarin app. When building msoffice, it depends on libcrypto.so so used "-L[path] -lcrypto" using stock openssl_for_ios_and_android Android build. However, this failed to load at runtime because NEEDED section in the created msoffice.so file referenced "libcrypto.so.1.1" (versioned) due to setting SONAME in the generated libcrypto.so output. "Fixed" by inhibiting version...
Note: because native libs are sandboxed on iOS and Android there should not be a need for versioning unless there existed situation where different native libs actually required different versions of dependent .so. (Example: If one native lib requires v1.0c of libcrypto while another native lib requires v1.1.) However, this should be the rarest edge condition and I don't think the openssl_for_ios_and_android out-of-the-box build should account for it.