Document limits on static and dynamic linking for HPE NonStop platforms.#19952
Document limits on static and dynamic linking for HPE NonStop platforms.#19952rsbeckerca wants to merge 1 commit intoopenssl:openssl-3.1from
Conversation
NOTES-NONSTOP.md
Outdated
| libraries and dynamically load OpenSSL DLLs concurrently. If this is done, | ||
| there is a high probability of encountering a SIGSEGV condition relating to | ||
| `atexit()` processing when the DLL is unloaded and when the program terminates. | ||
| This limitation applies to all OpenSSL DLL components. |
There was a problem hiding this comment.
I'd replace DLL with shared library as the DLL is kind of Windows-specific acronym.
There was a problem hiding this comment.
Will make that change imminently.
|
This should be merged to master, 3.0, and 3.1 branches. |
Documentation is necessary as static and dynamic linking cause SIGSEGV during atexit() processing on the platform. Fixes: 19951 Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
492f3f1 to
f50ac7f
Compare
Do you need separate PRs for that? |
No, I assume this will cherry-pick cleanly. |
It should. I have not mucked with that file since early 3.0. |
|
I think this description is incomplete and does not reflect the reason why openssl/test/recipes/90-test_shlibload.t Line 23 in 43a9e68 as far as I understand the issue, a crash will also happen if the application does NOT link to libcrypto.so and loads a library that links to libcrypto.so |
|
24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set. Please review the updates and set the label manually. |
|
Before merging I am waiting on @rsbeckerca to respond to Bernd's comment above. |
|
To be noted is that this is potentially not a NonStop problem alone... |
The ordinals for entry points in DLLs do not line up on NonStop with the Linux linker based when this test failed in the 3.0.0 series. The requirement to have a consistent set of ordinals seems to be architecture-specific and not necessary, in my opinion. I can document this in a separate PR, if requested, but I think |
|
Hmm, I don't understand at all. |
The following is what happens now when I enable the test, and what happened when I reported this originally: |
|
Okay, now this is what happens 4 times: 139 is not the normal result code of shlibloadtest, which is 0 = ok, or 1 = "normal" error the atexit callback was not called when expected. But 2 test cases are passed: exactly the only test case with So to me this looks like exactly the same issue. |
The 139 is typically a SIGSEGV. I guess it is the same issue in that case. Do you want the two tests mentioned in the updated documentation as a result? |
|
I have no idea how to properly describe this mess :-( |
|
I am giving an option to put hold on this PR if somebody does it before tomorrow. Otherwise I'll merge it as it is better than nothing. |
|
Merged to master, 3.1, and 3.0 branches. Thank you for your contribution. Anybody is welcome to submit a PR that improves the text further. |
Documentation is necessary as static and dynamic linking cause SIGSEGV during atexit() processing on the platform. Fixes: 19951 Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from #19952)
Documentation is necessary as static and dynamic linking cause SIGSEGV during atexit() processing on the platform. Fixes: 19951 Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from #19952) (cherry picked from commit e80518d)
Documentation is necessary as static and dynamic linking cause SIGSEGV during atexit() processing on the platform. Fixes: 19951 Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from #19952) (cherry picked from commit e80518d)
Documentation is necessary as static and dynamic linking cause SIGSEGV during atexit() processing on the platform.
Fixes: #19951
Signed-off-by: Randall S. Becker randall.becker@nexbridge.ca
Checklist