Skip to content

Different Boost features between x86_64 and non x86_64 builds #1280

@Neves-P

Description

@Neves-P

When ingesting Boost.MPI from #1279 we noticed that the x86_64 builds have 16 more files than the aarch64 builds.

@bedroge checked the tarballs and compared them with each other and found:

< lib/libboost_stacktrace_basic-a64.a
< lib/libboost_stacktrace_basic-a64.so
< lib/libboost_stacktrace_basic-a64.so.1.88.0
< lib/libboost_stacktrace_basic-mt-a64.a
< lib/libboost_stacktrace_basic-mt-a64.so
< lib/libboost_stacktrace_basic-mt-a64.so.1.88.0
---
> lib/libboost_stacktrace_basic-mt-x64.a
> lib/libboost_stacktrace_basic-mt-x64.so
> lib/libboost_stacktrace_basic-mt-x64.so.1.88.0
17933a17938,17949
> lib/libboost_stacktrace_basic-x64.a
> lib/libboost_stacktrace_basic-x64.so
> lib/libboost_stacktrace_basic-x64.so.1.88.0
> lib/libboost_stacktrace_from_exception.a
> lib/libboost_stacktrace_from_exception-mt-x64.a
> lib/libboost_stacktrace_from_exception-mt-x64.so
> lib/libboost_stacktrace_from_exception-mt-x64.so.1.88.0
> lib/libboost_stacktrace_from_exception.so
> lib/libboost_stacktrace_from_exception.so.1.88.0
> lib/libboost_stacktrace_from_exception-x64.a
> lib/libboost_stacktrace_from_exception-x64.so
> lib/libboost_stacktrace_from_exception-x64.so.1.88.0

The build process doesn't try to handle these installations differently depending on architecture, so this is unintended behaviour. The libboost_stacktrace_* files for this feature are not present in aarch64 builds, and the build logs confirm that this is switched off at build time. Note that it appears that this can switched on for aarch64, but it has to be done so explicitly.

If left with default options the x86 builds switch this on while non x86 don't. This is also described and identified in another project: conan-io/conan-center-index#25295 cfr. https://github.com/boostorg/stacktrace/blob/boost-1.86.0/build/Jamfile.v2#L148

We should consider rebuilding Boost and Boost.MPI installations in EESSI where this occurs with the feature turned on because we want the builds to act the same among architectures where possible.

To add, Gentoo goes in the opposite direction, that is, they disable this for all architectures: https://github.com/gentoo/gentoo/blob/master/dev-libs/boost/boost-1.88.0-r1.ebuild#L186

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions