Skip to content

Conversation

@klemens-morgenstern
Copy link
Collaborator

No description provided.

klemens-morgenstern and others added 10 commits August 11, 2025 16:03
The `CXX_STANDARD_REQUIRED` property is a boolean, i.e. ON or OFF not a numeric value.
Make sure boost_cobalt_io_ssl library is built and installed by default when Boost as a whole or Boost.Cobalt is built (i.e. when the user runs b2 in libs/cobalt).
At least on Linux, constants such as AF_INET, SOCK_STREAM and
IPPROTO_TCP are implemented with unnamed enums, which makes these
constants have different types in different translation units.
This results in ODR violations as protocol_type struct ends up
defined differently in every TU.

Also, static_protocol that is being instantiated with these constants
also produces different types in each TU. While this by itself is not
an ODR violation, it may generate lots of code and data duplication.

Avoid all of the above by using fixed types for family, type and
protocol constants in protocol_type and static_protocol. Use int
for each of the types, following POSIX socket(2) signature.

Fixes #242.
@klemens-morgenstern klemens-morgenstern merged commit 7f433d8 into master Oct 22, 2025
46 of 48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants