Skip to content

Changes in Protobuf C++ versions and their implications on OSI #871

@doganulus

Description

@doganulus

Realized that Google's official Protobuf implementation depends on libabsl, their Abseil C++ Library after Protobuf v22. Not only a dependency, but also they expose absl types at the public API. Now this has some consequences as follows.

  1. This creates an ODR violation risk for statically linked applications. For example, if an OSI application has another dependency on a project using absl statically. Then, it will cause an ODR.
  2. Hence, Google's Protobuf implementation after v22 is safely usable as a shared object only.

I wonder what the OSI project's recommendation is for this situation, where the project still uses pre-v22 versions and recommends static linkage in the documentation.

Some related issues and PRs:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions