-
Notifications
You must be signed in to change notification settings - Fork 567
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
CI: Amalgamation Linkage Test and Fixes #4307
CI: Amalgamation Linkage Test and Fixes #4307
Conversation
9c0e8c3
to
b123eaf
Compare
Let me add that there's value in building the amalgamation with boost enabled in and by itself. There's a good chance that we break the amalgamation in headers that require boost (e.g. the TLS adapter). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Thanks. A bit sad about the compiler pleasing in the examples, as it is potentially also incorporated into our handbook. But the alternative would be to lower the warning-levels for examples, which isn't desirable either, I guess? @randombit
3148791
to
39e543f
Compare
39e543f
to
120398b
Compare
Warnings like the one in #4303 or #4291 (comment) are currently not checked by our CI. This is because we do not test including Botan headers while the
BOTAN_IS_BEING_BUILT
macro is undefined. The only target that is compiled without this flag is examples.To fix this shortcoming, I propose adding the examples target to the amalgamation CI build and adding an example that includes Botan's amalgamation header. This has the following advantages:
BOTAN_IS_BEING_BUILT
are caught by CI (like the one in PR 4303)As you can see in this experimental CI run, the issue of #4303 is found with this setup (seems to be an exclusive MSVC "feature"). Also, I found a few other issues in the examples when using macOS. Since these are related to TLS, @reneme, could you check and verify my proposed fixes?
Here are the errors for the fixed code sections:
src/examples/tls_ssl_key_log_file.cpp:
CI log:
src/examples/tls_stream_coroutine_client.cpp:
CI log: