Skip to content

[question] binary compatibility handling #28878

@Forbinn

Description

@Forbinn

What is your question?

Hello,

In one of my docker container, I wanted to install boost through conan and it needed to be built so the b2/5.3.3 package was also download as a tool requirement.
As this point everything worked as expected but problems started when conan tried to call b2. Here is the error that came back:

/home/conan/.conan2/p/b23c7190a2974f7/p/bin/b2: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/conan/.conan2/p/b23c7190a2974f7/p/bin/b2)

And indeed my docker container uses GCC 9 (9.5.0 to be specific) and the libstdc++ that comes with it is 3.4.28 hence why the 3.4.29 symbols aren't found.

So my question is not really about why it doesn't work (the answer is simply because the libstdc++ is too old and doesn't contain the right symbols) but more about why this situation happen in the first place?

Because I though that conan took the compiler version information into account by default specifically to avoid this kind of problems but here it looks like this information has been removed from the package id:

$ conan list -r conancenter b2/5.3.3:*
Connecting to remote 'conancenter' anonymously
conancenter
  b2
    b2/5.3.3
      revisions
        107c15377719889654eb9a162a673975 (2025-06-19 13:38:30 UTC)
          packages
            522dcea5982a3f8a5b624c16477e47195da2f84f
              info
                settings
                  arch: x86_64
                  os: Windows
            ef52fcb08b72f88cd87dade69f7b5e49a93b591a
              info
                settings
                  arch: x86_64,armv8
                  os: Macos
            63fead0844576fc02943e16909f08fcdddd6f44b
              info
                settings
                  arch: x86_64
                  os: Linux

Just to be clear, I'm not asking for some kind of fix to be applied on the b2 recipe (except of course if you think one is needed), I want to understand why the recipe is setup the way it is? And so if this kind of issue is expected? Does conancenter specify that the expected compiler to be used be the latest one / a specific version?

Also any best practice on the handling of application package_type would be appreciated.

Regards,

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions