Skip to content

ToString breaks build in Frontier container #4637

@BenWibking

Description

@BenWibking

This commit 4851be6 breaks our CI that runs in a Frontier container (https://docs.olcf.ornl.gov/software/containers_on_frontier.html#olcf-base-images-apptainer-modules).

It looks like the issue is compatibility with GCC libstdc++ headers with gcc 7:

In file included from /data/mash/cche/azp-agent-in-docker-moth/azp-agent-moth/_work/1/s/extern/amrex/Src/Base/AMReX_GpuError.H:5:
/data/mash/cche/azp-agent-in-docker-moth/azp-agent-moth/_work/1/s/extern/amrex/Src/Base/AMReX_Utility.H:244:45: error: chosen constructor is explicit in copy-initialization
  244 |                          std::ostringstream ss = {});
      |                                             ^    ~~
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/sstream:560:7: note: explicit constructor declared here
  560 |       basic_ostringstream(ios_base::openmode __mode = ios_base::out)
      |       ^
/data/mash/cche/azp-agent-in-docker-moth/azp-agent-moth/_work/1/s/extern/amrex/Src/Base/AMReX_Utility.H:244:45: note: passing argument to parameter 'ss' here
  244 |                          std::ostringstream ss = {});
      |                                             ^
/data/mash/cche/azp-agent-in-docker-moth/azp-agent-moth/_work/1/s/extern/amrex/Src/Base/AMReX_Utility.H:515:20: error: out-of-line definition of 'ToString' does not match any declaration in namespace 'amrex'
  515 | std::string amrex::ToString(const T& t, const char* symbol_begin, const char* symbol_delim,
      |                    ^~~~~~~~
1 warning generated when compiling for gfx90a.

Full build log here: https://dev.azure.com/quokka-code/quokka-CI/_build/results?buildId=12591&view=logs&j=0410d313-00ef-550d-37c8-facbf7a1cb10&t=92b48015-7541-5454-a218-b39ae718c1ca

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions