Test: link drbgtest statically against libcrypto#7462
Test: link drbgtest statically against libcrypto#7462mspncp wants to merge 3 commits intoopenssl:masterfrom
Conversation
|
Ups, wrong PR ;-) |
|
Pauli, AppVeyer CI is not ready yet, but my personal AppVeyer CI notified me of a build failure, which I a can reproduce on my windows machine: With my change from shared to static, the windows build now fails as follows: Resetting to HEAD~, the build succeeds because the file is generated by perl: Can you please tell me where and how I have to enter the missing dependency? |
|
See https://ci.appveyor.com/project/mspncp/openssl/builds/19693883 (I hope this link is accessible without login) |
|
Outside my areas of experience unfortunately. @levitte any idea? |
|
Yeah, you're trying with a trick that isn't quite supported. It so happens to work on Unix platforms, but that's luck more than anything else. Also, on Windows, you can't have static libraries when building with configuration option The An alternative would be to have all static libraries for installation renamed |
|
Richard, there are a lot of other tests which currently link against ~/src/openssl$ grep 'DEPEND.*libcrypto.a' test/build.info
DEPEND[drbgtest]=../libcrypto.a libtestutil.a
DEPEND[poly1305_internal_test]=../libcrypto.a libtestutil.a
DEPEND[chacha_internal_test]=../libcrypto.a libtestutil.a
DEPEND[asn1_internal_test]=../libcrypto.a libtestutil.a
DEPEND[modes_internal_test]=../libcrypto.a libtestutil.a
DEPEND[x509_internal_test]=../libcrypto.a libtestutil.a
DEPEND[ctype_internal_test]=../libcrypto.a libtestutil.a
DEPEND[siphash_internal_test]=../libcrypto.a libtestutil.a
DEPEND[sm2_internal_test]=../libcrypto.a libtestutil.a
DEPEND[sm4_internal_test]=../libcrypto.a libtestutil.a
DEPEND[curve448_internal_test]=../libcrypto.a libtestutil.a
DEPEND[rdrand_sanitytest]=../libcrypto.a libtestutil.aAnyhow, I don't need It seemed to be the least evil solution to me, but @paulidale suggested to link the test statically instead, see the outdated comment. Maybe you can propose an alternative solution? Refactoring the static builds is not an option, because I would like to cherry-pick the tests to 1.1.1. |
|
Why I answer things just before going to bed, I wonder... You're right, we're already utilizing this "trick". However, that is under some explicit conditions... those instances that you grepped for, they're all within this condition (cited with comment): So if you want to link a program with plan skip_all => "This test is unsupported in a shared library build on Windows"
if $^O eq 'MSWin32' && !disabled("shared"); |
|
Ok, that makes sense. Thank you for the explanation! |
|
BTW: if you ever wondered how to get these nice little inline code windows instead of just a link: The trick is to use links which contain no branch references, but only commit hashes instead. GitHub has a cool keyboard shortcut for converting the former into the latter: To try it out, just go to the above link and then press the 'y' key. (To see all shortcuts, type '?' instead of 'y'.) This will convert the symbolic references in the url by a commit hash (like openssl/test/recipes/03-test_internal_poly1305.t Lines 16 to 17 in 97b0b71 Note: an important advantage of the latter type is that it's target is immutable and doesn't evolve in time. |
|
Another thought comes to my mind:
Instead of renaming the installed libraries, which would be a rather intrusive ABI change, you could build additional static libraries (on windows only) to make the "static tests" available on windows even if shared builds are configured. You don't even have to rename the static libraries, just place them in a separate location (e.g. |
|
If building two library versions is undesired on this notoriously slow platform, then one could add a |
... iiiinteresting. As for having static libcrypto and libssl in build that won't be installed is an idea, of course... I'll consider it. |
|
Postponed until issue #7492 is resolved. |
345081d to
a7278fc
Compare
|
Rebased this pull request on top of #7496. |
|
Rebased onto master. |
a7278fc to
b037061
Compare
|
Shouldn't the Hold label be removed? |
|
As soon as I tested. Windows is still building ;-). BTW: Why was there no CI running on your #7496? |
|
Wasn't there? Hard to see now... |
|
Ok, now it gets interesting... all internal tests were still disabled in the recipes. |
|
Correction: s/enabled/enable/ in commit message |
ba04008 to
9fad65e
Compare
Ok... never noticed before that the ci box disappears eventually. Does this happen when the pr gets closed? |
and remove duplicate rand_drbg_seedlen() implementation again.
9fad65e to
45d6524
Compare
|
@levitte I rebased without squashing and added a fixup commit which removes the duplicate rand_drbg_seedlen() implementation again. (The original reason for fixing the internal tests.) Please re-review. |
|
Side note: The |
|
ping |
and remove duplicate rand_drbg_seedlen() implementation again. Reviewed-by: Richard Levitte <[email protected]> (Merged from #7462)
Reviewed-by: Richard Levitte <[email protected]> (Merged from #7462)
and remove duplicate rand_drbg_seedlen() implementation again. Reviewed-by: Richard Levitte <[email protected]> (Merged from #7462) (cherry picked from commit 1c615e4)
Reviewed-by: Richard Levitte <[email protected]> (Merged from #7462) (cherry picked from commit 1901516)
Preparation for #7456, as suggested by @paulidale: https://github.com/openssl/openssl/pull/7456/files#r226880669
I ran the drbgtest several time in random order