Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue]: Tests fail to build #1455

Open
IMbackK opened this issue Dec 9, 2024 · 8 comments
Open

[Issue]: Tests fail to build #1455

IMbackK opened this issue Dec 9, 2024 · 8 comments

Comments

@IMbackK
Copy link

IMbackK commented Dec 9, 2024

Problem Description

This projects test fail to build as https://github.com/ROCm/rccl/blob/develop/test/common/TestBed.cpp uses std::setfill and std::setw Which are part of iomanip but iomanip is neither directly nor indirectly included.

gcc (GCC) 14.2.1 20240910

Operating System

any

CPU

any build issue

GPU

any build issue

ROCm Version

ROCm 6.3.0, ROCm 6.2.4

ROCm Component

rccl

Steps to Reproduce

build with -DBUILD_TESTS=ON

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

No response

@ppanchad-amd
Copy link

Hi @IMbackK. Internal ticket has been created to investigate your issue. Thanks!

@huanrwan-amd
Copy link

Hi @IMbackK , which build method you use? Manual build or docker?

@IMbackK
Copy link
Author

IMbackK commented Dec 10, 2024

hi @huanrwan-amd i did a manual build.
the issue is trivial to solve just add:
#include <iomanip>

Possibly this builds for you on other systems as iomanip is indirectly included by some system header, this however can not be relied on.

@huanrwan-amd
Copy link

huanrwan-amd commented Dec 10, 2024

Hi @IMbackK , thank you for your message. Since the "iomanip" header is part of the C++ Standard Library(https://en.cppreference.com/w/cpp/standard_library) . This is usually linked by development environment. Highly suggests using docker to build rccl. You can refer:

@IMbackK
Copy link
Author

IMbackK commented Dec 10, 2024

In c++ you must #include the header where the declaration of the function you want to use resides. Yes the iomanip header is part of the stl and you do link against libstdc++ so an implementation of std::setfill is available to the linker, however that dose not absolve you of the responsibility of #includeing the header.

pageing @nileshnegi @wenkaidu as code owners.

@huanrwan-amd
Copy link

Hi @IMbackK can you provide a detailed instruction on your manual build steps and error logs? I tried both manual and docker methods. It works OK on my side. Thanks.

@IMbackK
Copy link
Author

IMbackK commented Dec 11, 2024

@huanrwan-amd look this problem is trivial to understand from static analysis.

using gcc's -H option you can have gcc spit out all the headers that are directly and indriectly included

So for test/common/TestBed.cpp you can print a list of included headers like this:
g++ -H -D__HIP_PLATFORM_AMD__ -I build/include -I /opt/rocm/include -I src/include test/common/TestBed.cpp

for my system this looks like this:

. /usr/include/unistd.h
.. /usr/include/features.h
... /usr/include/features-time64.h
.... /usr/include/bits/wordsize.h
.... /usr/include/bits/timesize.h
..... /usr/include/bits/wordsize.h
... /usr/include/sys/cdefs.h
.... /usr/include/bits/wordsize.h
.... /usr/include/bits/long-double.h
... /usr/include/gnu/stubs.h
.... /usr/include/gnu/stubs-64.h
.. /usr/include/bits/posix_opt.h
.. /usr/include/bits/environments.h
... /usr/include/bits/wordsize.h
.. /usr/include/bits/types.h
... /usr/include/bits/wordsize.h
... /usr/include/bits/timesize.h
.... /usr/include/bits/wordsize.h
... /usr/include/bits/typesizes.h
... /usr/include/bits/time64.h
.. /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.. /usr/include/bits/confname.h
.. /usr/include/bits/getopt_posix.h
... /usr/include/bits/getopt_core.h
.. /usr/include/bits/unistd_ext.h
... /usr/include/linux/close_range.h
. test/common/TestBed.hpp
.. /usr/include/c++/14.2.1/map
... /usr/include/c++/14.2.1/bits/requires_hosted.h
.... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/c++config.h
..... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/os_defines.h
..... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h
..... /usr/include/c++/14.2.1/pstl/pstl_config.h
... /usr/include/c++/14.2.1/bits/stl_tree.h
.... /usr/include/c++/14.2.1/bits/stl_algobase.h
..... /usr/include/c++/14.2.1/bits/functexcept.h
...... /usr/include/c++/14.2.1/bits/exception_defines.h
..... /usr/include/c++/14.2.1/bits/cpp_type_traits.h
..... /usr/include/c++/14.2.1/ext/type_traits.h
..... /usr/include/c++/14.2.1/ext/numeric_traits.h
..... /usr/include/c++/14.2.1/bits/stl_pair.h
...... /usr/include/c++/14.2.1/type_traits
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/bits/move.h
...... /usr/include/c++/14.2.1/bits/utility.h
..... /usr/include/c++/14.2.1/bits/stl_iterator_base_types.h
..... /usr/include/c++/14.2.1/bits/stl_iterator_base_funcs.h
...... /usr/include/c++/14.2.1/bits/concept_check.h
...... /usr/include/c++/14.2.1/debug/assertions.h
..... /usr/include/c++/14.2.1/bits/stl_iterator.h
...... /usr/include/c++/14.2.1/bits/ptr_traits.h
..... /usr/include/c++/14.2.1/debug/debug.h
..... /usr/include/c++/14.2.1/bits/predefined_ops.h
..... /usr/include/c++/14.2.1/bit
...... /usr/include/c++/14.2.1/concepts
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/bits/allocator.h
..... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h
...... /usr/include/c++/14.2.1/bits/new_allocator.h
....... /usr/include/c++/14.2.1/new
........ /usr/include/c++/14.2.1/bits/exception.h
........ /usr/include/c++/14.2.1/bits/version.h
..... /usr/include/c++/14.2.1/bits/memoryfwd.h
.... /usr/include/c++/14.2.1/bits/stl_function.h
..... /usr/include/c++/14.2.1/backward/binders.h
.... /usr/include/c++/14.2.1/ext/alloc_traits.h
..... /usr/include/c++/14.2.1/bits/alloc_traits.h
...... /usr/include/c++/14.2.1/bits/stl_construct.h
.... /usr/include/c++/14.2.1/ext/aligned_buffer.h
.... /usr/include/c++/14.2.1/bits/node_handle.h
..... /usr/include/c++/14.2.1/bits/version.h
... /usr/include/c++/14.2.1/bits/stl_map.h
.... /usr/include/c++/14.2.1/initializer_list
.... /usr/include/c++/14.2.1/tuple
..... /usr/include/c++/14.2.1/bits/uses_allocator.h
..... /usr/include/c++/14.2.1/bits/invoke.h
..... /usr/include/c++/14.2.1/bits/version.h
... /usr/include/c++/14.2.1/bits/stl_multimap.h
... /usr/include/c++/14.2.1/bits/range_access.h
... /usr/include/c++/14.2.1/bits/erase_if.h
... /usr/include/c++/14.2.1/bits/version.h
... /usr/include/c++/14.2.1/bits/memory_resource.h
.... /usr/include/c++/14.2.1/cstddef
..... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
..... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/bits/uses_allocator_args.h
..... /usr/include/c++/14.2.1/bits/version.h
.. test/common/CollectiveArgs.hpp
... test/common/PtrUnion.hpp
.... test/common/ErrCode.hpp
..... /usr/include/c++/14.2.1/cstring
...... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/string.h
....... /usr/include/bits/libc-header-start.h
....... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
....... /usr/include/bits/types/locale_t.h
........ /usr/include/bits/types/__locale_t.h
....... /usr/include/strings.h
........ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.... build/include/rccl/rccl.h
..... /opt/rocm/include/hip/hip_runtime.h
...... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
....... /usr/include/stdint.h
........ /usr/include/bits/libc-header-start.h
........ /usr/include/bits/wchar.h
........ /usr/include/bits/wordsize.h
........ /usr/include/bits/stdint-intn.h
........ /usr/include/bits/stdint-uintn.h
........ /usr/include/bits/stdint-least.h
...... /usr/include/stdio.h
....... /usr/include/bits/libc-header-start.h
....... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
....... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h
....... /usr/include/bits/types/__fpos_t.h
........ /usr/include/bits/types/__mbstate_t.h
....... /usr/include/bits/types/__fpos64_t.h
....... /usr/include/bits/types/__FILE.h
....... /usr/include/bits/types/FILE.h
....... /usr/include/bits/types/struct_FILE.h
....... /usr/include/bits/types/cookie_io_functions_t.h
....... /usr/include/bits/stdio_lim.h
....... /usr/include/bits/floatn.h
........ /usr/include/bits/floatn-common.h
......... /usr/include/bits/long-double.h
...... /usr/include/c++/14.2.1/stdlib.h
....... /usr/include/c++/14.2.1/cstdlib
........ /usr/include/stdlib.h
......... /usr/include/bits/libc-header-start.h
......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
......... /usr/include/bits/waitflags.h
......... /usr/include/bits/waitstatus.h
......... /usr/include/sys/types.h
.......... /usr/include/bits/types/clock_t.h
.......... /usr/include/bits/types/clockid_t.h
.......... /usr/include/bits/types/time_t.h
.......... /usr/include/bits/types/timer_t.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.......... /usr/include/endian.h
........... /usr/include/bits/endian.h
............ /usr/include/bits/endianness.h
........... /usr/include/bits/byteswap.h
........... /usr/include/bits/uintn-identity.h
.......... /usr/include/sys/select.h
........... /usr/include/bits/select.h
........... /usr/include/bits/types/sigset_t.h
............ /usr/include/bits/types/__sigset_t.h
........... /usr/include/bits/types/struct_timeval.h
........... /usr/include/bits/types/struct_timespec.h
.......... /usr/include/bits/pthreadtypes.h
........... /usr/include/bits/thread-shared-types.h
............ /usr/include/bits/pthreadtypes-arch.h
............. /usr/include/bits/wordsize.h
............ /usr/include/bits/atomic_wide_counter.h
............ /usr/include/bits/struct_mutex.h
............ /usr/include/bits/struct_rwlock.h
......... /usr/include/alloca.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
......... /usr/include/bits/stdlib-float.h
........ /usr/include/c++/14.2.1/bits/std_abs.h
...... /usr/include/assert.h
...... /usr/include/c++/14.2.1/thread
....... /usr/include/c++/14.2.1/bits/std_thread.h
........ /usr/include/c++/14.2.1/iosfwd
......... /usr/include/c++/14.2.1/bits/stringfwd.h
......... /usr/include/c++/14.2.1/bits/postypes.h
.......... /usr/include/c++/14.2.1/cwchar
........... /usr/include/wchar.h
............ /usr/include/bits/libc-header-start.h
............ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
............ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h
............ /usr/include/bits/types/wint_t.h
............ /usr/include/bits/types/mbstate_t.h
........ /usr/include/c++/14.2.1/bits/functional_hash.h
......... /usr/include/c++/14.2.1/bits/hash_bytes.h
........ /usr/include/c++/14.2.1/bits/refwrap.h
........ /usr/include/c++/14.2.1/bits/unique_ptr.h
........ /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/gthr.h
......... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h
.......... /usr/include/pthread.h
........... /usr/include/sched.h
............ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
............ /usr/include/bits/sched.h
............. /usr/include/bits/types/struct_sched_param.h
............ /usr/include/bits/cpu-set.h
........... /usr/include/time.h
............ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
............ /usr/include/bits/time.h
............. /usr/include/bits/timex.h
............ /usr/include/bits/types/struct_tm.h
............ /usr/include/bits/types/struct_itimerspec.h
........... /usr/include/bits/setjmp.h
............ /usr/include/bits/wordsize.h
........... /usr/include/bits/wordsize.h
........... /usr/include/bits/types/struct___jmp_buf_tag.h
........... /usr/include/bits/pthread_stack_min-dynamic.h
....... /usr/include/c++/14.2.1/bits/this_thread_sleep.h
........ /usr/include/c++/14.2.1/bits/chrono.h
......... /usr/include/c++/14.2.1/ratio
.......... /usr/include/c++/14.2.1/cstdint
.......... /usr/include/c++/14.2.1/bits/version.h
......... /usr/include/c++/14.2.1/limits
......... /usr/include/c++/14.2.1/ctime
......... /usr/include/c++/14.2.1/bits/parse_numbers.h
......... /usr/include/c++/14.2.1/bits/version.h
........ /usr/include/c++/14.2.1/cerrno
......... /usr/include/errno.h
.......... /usr/include/bits/errno.h
........... /usr/include/linux/errno.h
............ /usr/include/asm/errno.h
............. /usr/include/asm-generic/errno.h
.............. /usr/include/asm-generic/errno-base.h
.......... /usr/include/bits/types/error_t.h
....... /usr/include/c++/14.2.1/bits/version.h
...... /opt/rocm/include/hip/hip_version.h
...... /opt/rocm/include/hip/hip_common.h
...... /opt/rocm/include/hip/amd_detail/amd_hip_runtime.h
....... /opt/rocm/include/hip/amd_detail/amd_hip_common.h
....... /usr/include/c++/14.2.1/cmath
........ /usr/include/math.h
......... /usr/include/bits/libc-header-start.h
......... /usr/include/bits/math-vector.h
.......... /usr/include/bits/libm-simd-decl-stubs.h
......... /usr/include/bits/flt-eval-method.h
......... /usr/include/bits/fp-logb.h
......... /usr/include/bits/fp-fast.h
......... /usr/include/bits/mathcalls-helper-functions.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls-helper-functions.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls-helper-functions.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls-helper-functions.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/mathcalls-narrow.h
......... /usr/include/bits/iscanonical.h
........ /usr/include/c++/14.2.1/bits/version.h
........ /usr/include/c++/14.2.1/bits/specfun.h
......... /usr/include/c++/14.2.1/bits/version.h
......... /usr/include/c++/14.2.1/tr1/gamma.tcc
.......... /usr/include/c++/14.2.1/tr1/special_function_util.h
......... /usr/include/c++/14.2.1/tr1/bessel_function.tcc
......... /usr/include/c++/14.2.1/tr1/beta_function.tcc
......... /usr/include/c++/14.2.1/tr1/ell_integral.tcc
......... /usr/include/c++/14.2.1/tr1/exp_integral.tcc
......... /usr/include/c++/14.2.1/tr1/hypergeometric.tcc
......... /usr/include/c++/14.2.1/tr1/legendre_function.tcc
......... /usr/include/c++/14.2.1/tr1/modified_bessel_func.tcc
......... /usr/include/c++/14.2.1/tr1/poly_hermite.tcc
......... /usr/include/c++/14.2.1/tr1/poly_laguerre.tcc
......... /usr/include/c++/14.2.1/tr1/riemann_zeta.tcc
...... /opt/rocm/include/hip/hip_runtime_api.h
....... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
....... /opt/rocm/include/hip/amd_detail/host_defines.h
....... /opt/rocm/include/hip/driver_types.h
....... /opt/rocm/include/hip/texture_types.h
........ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h
......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h
........... /usr/include/limits.h
............ /usr/include/bits/libc-header-start.h
............ /usr/include/bits/posix1_lim.h
............. /usr/include/bits/wordsize.h
............. /usr/include/bits/local_lim.h
.............. /usr/include/linux/limits.h
............ /usr/include/bits/posix2_lim.h
............ /usr/include/bits/xopen_lim.h
............. /usr/include/bits/uio_lim.h
........ /opt/rocm/include/hip/channel_descriptor.h
......... /opt/rocm/include/hip/amd_detail/amd_channel_descriptor.h
.......... /opt/rocm/include/hip/amd_detail/amd_hip_vector_types.h
........... /usr/include/c++/14.2.1/array
............ /usr/include/c++/14.2.1/compare
............. /usr/include/c++/14.2.1/bits/version.h
............ /usr/include/c++/14.2.1/bits/version.h
....... /opt/rocm/include/hip/surface_types.h
....... /opt/rocm/include/hip/amd_detail/amd_hip_runtime_pt_api.h
...... /opt/rocm/include/hip/library_types.h
...... /opt/rocm/include/hip/hip_vector_types.h
..... /opt/rocm/include/hip/hip_fp16.h
...... /opt/rocm/include/hip/amd_detail/amd_hip_fp16.h
....... /usr/include/assert.h
....... /usr/include/c++/14.2.1/algorithm
........ /usr/include/c++/14.2.1/bits/stl_algo.h
......... /usr/include/c++/14.2.1/bits/algorithmfwd.h
......... /usr/include/c++/14.2.1/bits/stl_heap.h
......... /usr/include/c++/14.2.1/bits/uniform_int_dist.h
......... /usr/include/c++/14.2.1/bits/stl_tempbuf.h
......... /usr/include/c++/14.2.1/cstdlib
........ /usr/include/c++/14.2.1/bits/version.h
........ /usr/include/c++/14.2.1/pstl/glue_algorithm_defs.h
......... /usr/include/c++/14.2.1/pstl/execution_defs.h
....... /usr/include/c++/14.2.1/utility
........ /usr/include/c++/14.2.1/bits/stl_relops.h
........ /usr/include/c++/14.2.1/bits/version.h
....... /opt/rocm/include/hip/amd_detail/hip_fp16_gcc.h
........ /usr/include/c++/14.2.1/cstring
......... /usr/include/c++/14.2.1/bits/version.h
..... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h
.... src/include/rccl_float8.h
.... /opt/rocm/include/hip/hip_bfloat16.h
..... /opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h
...... /opt/rocm/include/hip/amd_detail/host_defines.h
... test/common/PrepDataFuncs.hpp
.. test/common/TestBedChild.hpp
... /usr/include/c++/14.2.1/vector
.... /usr/include/c++/14.2.1/bits/stl_uninitialized.h
.... /usr/include/c++/14.2.1/bits/stl_vector.h
.... /usr/include/c++/14.2.1/bits/stl_bvector.h
.... /usr/include/c++/14.2.1/bits/vector.tcc
.... /usr/include/c++/14.2.1/bits/version.h
.. test/common/EnvVars.hpp
... /opt/rocm/include/hsa/hsa.h
.... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.. /usr/include/gtest/gtest.h
... /usr/include/c++/14.2.1/memory
.... /usr/include/c++/14.2.1/bits/stl_raw_storage_iter.h
.... /usr/include/c++/14.2.1/bits/align.h
..... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/bits/shared_ptr.h
..... /usr/include/c++/14.2.1/bits/shared_ptr_base.h
...... /usr/include/c++/14.2.1/typeinfo
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/bits/allocated_ptr.h
...... /usr/include/c++/14.2.1/ext/atomicity.h
....... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h
....... /usr/include/sys/single_threaded.h
...... /usr/include/c++/14.2.1/ext/concurrence.h
....... /usr/include/c++/14.2.1/exception
........ /usr/include/c++/14.2.1/bits/version.h
........ /usr/include/c++/14.2.1/bits/exception_ptr.h
......... /usr/include/c++/14.2.1/bits/cxxabi_init_exception.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
........ /usr/include/c++/14.2.1/bits/nested_exception.h
.... /usr/include/c++/14.2.1/bits/shared_ptr_atomic.h
..... /usr/include/c++/14.2.1/bits/atomic_base.h
...... /usr/include/c++/14.2.1/bits/atomic_lockfree_defines.h
...... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/backward/auto_ptr.h
.... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/pstl/glue_memory_defs.h
... /usr/include/c++/14.2.1/ostream
.... /usr/include/c++/14.2.1/ios
..... /usr/include/c++/14.2.1/bits/char_traits.h
...... /usr/include/c++/14.2.1/cwchar
..... /usr/include/c++/14.2.1/bits/localefwd.h
...... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/c++locale.h
....... /usr/include/c++/14.2.1/clocale
........ /usr/include/locale.h
......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
......... /usr/include/bits/locale.h
...... /usr/include/c++/14.2.1/cctype
....... /usr/include/ctype.h
..... /usr/include/c++/14.2.1/bits/ios_base.h
...... /usr/include/c++/14.2.1/bits/locale_classes.h
....... /usr/include/c++/14.2.1/string
........ /usr/include/c++/14.2.1/bits/ostream_insert.h
......... /usr/include/c++/14.2.1/bits/cxxabi_forced.h
........ /usr/include/c++/14.2.1/bits/basic_string.h
......... /usr/include/c++/14.2.1/string_view
.......... /usr/include/c++/14.2.1/bits/version.h
.......... /usr/include/c++/14.2.1/bits/string_view.tcc
......... /usr/include/c++/14.2.1/bits/version.h
......... /usr/include/c++/14.2.1/ext/string_conversions.h
.......... /usr/include/c++/14.2.1/cstdlib
.......... /usr/include/c++/14.2.1/cwchar
.......... /usr/include/c++/14.2.1/cstdio
.......... /usr/include/c++/14.2.1/cerrno
......... /usr/include/c++/14.2.1/bits/charconv.h
........ /usr/include/c++/14.2.1/bits/basic_string.tcc
........ /usr/include/c++/14.2.1/bits/version.h
....... /usr/include/c++/14.2.1/bits/locale_classes.tcc
...... /usr/include/c++/14.2.1/system_error
....... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/error_constants.h
........ /usr/include/c++/14.2.1/cerrno
....... /usr/include/c++/14.2.1/stdexcept
..... /usr/include/c++/14.2.1/streambuf
...... /usr/include/c++/14.2.1/bits/streambuf.tcc
..... /usr/include/c++/14.2.1/bits/basic_ios.h
...... /usr/include/c++/14.2.1/bits/locale_facets.h
....... /usr/include/c++/14.2.1/cwctype
........ /usr/include/wctype.h
......... /usr/include/bits/wctype-wchar.h
....... /usr/include/c++/14.2.1/cctype
....... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h
....... /usr/include/c++/14.2.1/bits/streambuf_iterator.h
....... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h
....... /usr/include/c++/14.2.1/bits/locale_facets.tcc
...... /usr/include/c++/14.2.1/bits/basic_ios.tcc
..... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/c++/14.2.1/bits/ostream.tcc
... /usr/include/c++/14.2.1/set
.... /usr/include/c++/14.2.1/bits/stl_set.h
.... /usr/include/c++/14.2.1/bits/stl_multiset.h
.... /usr/include/c++/14.2.1/bits/version.h
... /usr/include/c++/14.2.1/sstream
.... /usr/include/c++/14.2.1/istream
..... /usr/include/c++/14.2.1/bits/istream.tcc
.... /usr/include/c++/14.2.1/bits/sstream.tcc
... /usr/include/gtest/gtest-assertion-result.h
.... /usr/include/gtest/gtest-message.h
..... /usr/include/gtest/internal/gtest-port.h
...... /usr/include/c++/14.2.1/ciso646
...... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
...... /usr/include/c++/14.2.1/stdlib.h
...... /usr/include/c++/14.2.1/cerrno
...... /usr/include/c++/14.2.1/iostream
...... /usr/include/c++/14.2.1/locale
....... /usr/include/c++/14.2.1/bits/locale_facets_nonio.h
........ /usr/include/c++/14.2.1/ctime
........ /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/time_members.h
........ /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/messages_members.h
......... /usr/include/libintl.h
........ /usr/include/c++/14.2.1/bits/codecvt.h
........ /usr/include/c++/14.2.1/bits/locale_facets_nonio.tcc
....... /usr/include/c++/14.2.1/bits/locale_conv.h
...... /usr/include/sys/stat.h
....... /usr/include/bits/stat.h
........ /usr/include/bits/struct_stat.h
....... /usr/include/bits/statx.h
........ /usr/include/linux/stat.h
......... /usr/include/linux/types.h
.......... /usr/include/asm/types.h
........... /usr/include/asm-generic/types.h
............ /usr/include/asm-generic/int-ll64.h
............. /usr/include/asm/bitsperlong.h
.............. /usr/include/asm-generic/bitsperlong.h
.......... /usr/include/linux/posix_types.h
........... /usr/include/linux/stddef.h
........... /usr/include/asm/posix_types.h
............ /usr/include/asm/posix_types_64.h
............. /usr/include/asm-generic/posix_types.h
........ /usr/include/bits/statx-generic.h
......... /usr/include/bits/types/struct_statx_timestamp.h
......... /usr/include/bits/types/struct_statx.h
...... /usr/include/gtest/internal/custom/gtest-port.h
...... /usr/include/gtest/internal/gtest-port-arch.h
...... /usr/include/regex.h
...... /usr/include/c++/14.2.1/condition_variable
....... /usr/include/c++/14.2.1/bits/std_mutex.h
....... /usr/include/c++/14.2.1/bits/unique_lock.h
...... /usr/include/c++/14.2.1/mutex
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/any
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/optional
....... /usr/include/c++/14.2.1/bits/version.h
....... /usr/include/c++/14.2.1/bits/enable_special_members.h
...... /usr/include/c++/14.2.1/variant
....... /usr/include/c++/14.2.1/bits/version.h
... /usr/include/gtest/gtest-death-test.h
.... /usr/include/gtest/internal/gtest-death-test-internal.h
..... /usr/include/gtest/gtest-matchers.h
...... /usr/include/c++/14.2.1/atomic
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/c++/14.2.1/functional
....... /usr/include/c++/14.2.1/bits/std_function.h
....... /usr/include/c++/14.2.1/unordered_map
........ /usr/include/c++/14.2.1/bits/unordered_map.h
......... /usr/include/c++/14.2.1/bits/hashtable.h
.......... /usr/include/c++/14.2.1/bits/hashtable_policy.h
........ /usr/include/c++/14.2.1/bits/version.h
....... /usr/include/c++/14.2.1/bits/version.h
...... /usr/include/gtest/gtest-printers.h
....... /usr/include/gtest/internal/gtest-internal.h
........ /usr/include/c++/14.2.1/stdlib.h
........ /usr/include/sys/wait.h
......... /usr/include/signal.h
.......... /usr/include/bits/signum-generic.h
........... /usr/include/bits/signum-arch.h
.......... /usr/include/bits/types/sig_atomic_t.h
.......... /usr/include/bits/types/siginfo_t.h
........... /usr/include/bits/wordsize.h
........... /usr/include/bits/types/__sigval_t.h
........... /usr/include/bits/siginfo-arch.h
.......... /usr/include/bits/siginfo-consts.h
........... /usr/include/bits/siginfo-consts-arch.h
.......... /usr/include/bits/types/sigval_t.h
.......... /usr/include/bits/types/sigevent_t.h
........... /usr/include/bits/wordsize.h
.......... /usr/include/bits/sigevent-consts.h
.......... /usr/include/bits/sigaction.h
.......... /usr/include/bits/sigcontext.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.......... /usr/include/bits/types/stack_t.h
........... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.......... /usr/include/sys/ucontext.h
.......... /usr/include/bits/sigstack.h
.......... /usr/include/bits/sigstksz.h
.......... /usr/include/bits/ss_flags.h
.......... /usr/include/bits/types/struct_sigstack.h
.......... /usr/include/bits/sigthread.h
.......... /usr/include/bits/signal_ext.h
......... /usr/include/bits/types/idtype_t.h
........ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/float.h
........ /usr/include/gtest/internal/gtest-filepath.h
......... /usr/include/gtest/internal/gtest-string.h
........ /usr/include/gtest/internal/gtest-type-util.h
......... /usr/include/c++/14.2.1/cxxabi.h
.......... /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
.......... /usr/include/c++/14.2.1/x86_64-pc-linux-gnu/bits/cxxabi_tweaks.h
....... /usr/include/gtest/internal/custom/gtest-printers.h
... /usr/include/gtest/gtest-param-test.h
.... /usr/include/c++/14.2.1/iterator
..... /usr/include/c++/14.2.1/bits/stream_iterator.h
..... /usr/include/c++/14.2.1/bits/version.h
.... /usr/include/gtest/internal/gtest-param-util.h
..... /usr/include/c++/14.2.1/cassert
...... /usr/include/assert.h
..... /usr/include/gtest/gtest-test-part.h
... /usr/include/gtest/gtest-typed-test.h
... /usr/include/gtest/gtest_pred_impl.h
... /usr/include/gtest/gtest_prod.h

as you can see there is no iomanip

in the docker image it looks like this

. /usr/include/unistd.h
.. /usr/include/features.h
... /usr/include/features-time64.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/bits/timesize.h
..... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/sys/cdefs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/bits/long-double.h
... /usr/include/x86_64-linux-gnu/gnu/stubs.h
.... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
.. /usr/include/x86_64-linux-gnu/bits/posix_opt.h
.. /usr/include/x86_64-linux-gnu/bits/environments.h
... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.. /usr/include/x86_64-linux-gnu/bits/types.h
... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/bits/timesize.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/bits/typesizes.h
... /usr/include/x86_64-linux-gnu/bits/time64.h
.. /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.. /usr/include/x86_64-linux-gnu/bits/confname.h
.. /usr/include/x86_64-linux-gnu/bits/getopt_posix.h
... /usr/include/x86_64-linux-gnu/bits/getopt_core.h
.. /usr/include/x86_64-linux-gnu/bits/unistd_ext.h
... /usr/include/linux/close_range.h
. test/common/TestBed.hpp
.. /usr/include/c++/12/map
... /usr/include/c++/12/bits/stl_tree.h
.... /usr/include/c++/12/bits/stl_algobase.h
..... /usr/include/x86_64-linux-gnu/c++/12/bits/c++config.h
...... /usr/include/x86_64-linux-gnu/c++/12/bits/os_defines.h
...... /usr/include/x86_64-linux-gnu/c++/12/bits/cpu_defines.h
...... /usr/include/c++/12/pstl/pstl_config.h
..... /usr/include/c++/12/bits/functexcept.h
...... /usr/include/c++/12/bits/exception_defines.h
..... /usr/include/c++/12/bits/cpp_type_traits.h
..... /usr/include/c++/12/ext/type_traits.h
..... /usr/include/c++/12/ext/numeric_traits.h
..... /usr/include/c++/12/bits/stl_pair.h
...... /usr/include/c++/12/type_traits
...... /usr/include/c++/12/bits/move.h
...... /usr/include/c++/12/bits/utility.h
..... /usr/include/c++/12/bits/stl_iterator_base_types.h
..... /usr/include/c++/12/bits/stl_iterator_base_funcs.h
...... /usr/include/c++/12/bits/concept_check.h
...... /usr/include/c++/12/debug/assertions.h
..... /usr/include/c++/12/bits/stl_iterator.h
...... /usr/include/c++/12/bits/ptr_traits.h
..... /usr/include/c++/12/debug/debug.h
..... /usr/include/c++/12/bits/predefined_ops.h
.... /usr/include/c++/12/bits/allocator.h
..... /usr/include/x86_64-linux-gnu/c++/12/bits/c++allocator.h
...... /usr/include/c++/12/bits/new_allocator.h
....... /usr/include/c++/12/new
........ /usr/include/c++/12/bits/exception.h
..... /usr/include/c++/12/bits/memoryfwd.h
.... /usr/include/c++/12/bits/stl_function.h
..... /usr/include/c++/12/backward/binders.h
.... /usr/include/c++/12/ext/alloc_traits.h
..... /usr/include/c++/12/bits/alloc_traits.h
...... /usr/include/c++/12/bits/stl_construct.h
.... /usr/include/c++/12/ext/aligned_buffer.h
.... /usr/include/c++/12/bits/node_handle.h
... /usr/include/c++/12/bits/stl_map.h
.... /usr/include/c++/12/initializer_list
.... /usr/include/c++/12/tuple
..... /usr/include/c++/12/bits/uses_allocator.h
..... /usr/include/c++/12/bits/invoke.h
... /usr/include/c++/12/bits/stl_multimap.h
... /usr/include/c++/12/bits/range_access.h
... /usr/include/c++/12/bits/erase_if.h
.. test/common/CollectiveArgs.hpp
... test/common/PtrUnion.hpp
.... test/common/ErrCode.hpp
..... /usr/include/c++/12/cstring
...... /usr/include/string.h
....... /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
....... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
....... /usr/include/x86_64-linux-gnu/bits/types/locale_t.h
........ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
....... /usr/include/strings.h
........ /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.... build/include/rccl/rccl.h
..... build/include/include/hip/hip_runtime.h
...... /usr/lib/gcc/x86_64-linux-gnu/12/include/stdint.h
....... /usr/include/stdint.h
........ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
........ /usr/include/x86_64-linux-gnu/bits/wchar.h
........ /usr/include/x86_64-linux-gnu/bits/wordsize.h
........ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h
........ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
...... /usr/include/stdio.h
....... /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
....... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
....... /usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h
....... /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
........ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
....... /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
....... /usr/include/x86_64-linux-gnu/bits/types/__FILE.h
....... /usr/include/x86_64-linux-gnu/bits/types/FILE.h
....... /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
....... /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
....... /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
....... /usr/include/x86_64-linux-gnu/bits/floatn.h
........ /usr/include/x86_64-linux-gnu/bits/floatn-common.h
......... /usr/include/x86_64-linux-gnu/bits/long-double.h
...... /usr/include/c++/12/stdlib.h
....... /usr/include/c++/12/cstdlib
........ /usr/include/stdlib.h
......... /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
......... /usr/include/x86_64-linux-gnu/bits/waitflags.h
......... /usr/include/x86_64-linux-gnu/bits/waitstatus.h
......... /usr/include/x86_64-linux-gnu/sys/types.h
.......... /usr/include/x86_64-linux-gnu/bits/types/clock_t.h
.......... /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
.......... /usr/include/x86_64-linux-gnu/bits/types/time_t.h
.......... /usr/include/x86_64-linux-gnu/bits/types/timer_t.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.......... /usr/include/endian.h
........... /usr/include/x86_64-linux-gnu/bits/endian.h
............ /usr/include/x86_64-linux-gnu/bits/endianness.h
........... /usr/include/x86_64-linux-gnu/bits/byteswap.h
........... /usr/include/x86_64-linux-gnu/bits/uintn-identity.h
.......... /usr/include/x86_64-linux-gnu/sys/select.h
........... /usr/include/x86_64-linux-gnu/bits/select.h
........... /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
............ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
........... /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
........... /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
.......... /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
........... /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
............ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
............. /usr/include/x86_64-linux-gnu/bits/wordsize.h
............ /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h
............ /usr/include/x86_64-linux-gnu/bits/struct_mutex.h
............ /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
......... /usr/include/alloca.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
......... /usr/include/x86_64-linux-gnu/bits/stdlib-float.h
........ /usr/include/c++/12/bits/std_abs.h
...... /usr/include/assert.h
...... /usr/include/c++/12/thread
....... /usr/include/c++/12/bits/std_thread.h
........ /usr/include/c++/12/iosfwd
......... /usr/include/c++/12/bits/stringfwd.h
......... /usr/include/c++/12/bits/postypes.h
.......... /usr/include/c++/12/cwchar
........... /usr/include/wchar.h
............ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
............ /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
............ /usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h
............ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h
............ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
........ /usr/include/c++/12/bits/functional_hash.h
......... /usr/include/c++/12/bits/hash_bytes.h
........ /usr/include/c++/12/bits/refwrap.h
........ /usr/include/c++/12/bits/unique_ptr.h
........ /usr/include/x86_64-linux-gnu/c++/12/bits/gthr.h
......... /usr/include/x86_64-linux-gnu/c++/12/bits/gthr-default.h
.......... /usr/include/pthread.h
........... /usr/include/sched.h
............ /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
............ /usr/include/x86_64-linux-gnu/bits/sched.h
............. /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
............ /usr/include/x86_64-linux-gnu/bits/cpu-set.h
........... /usr/include/time.h
............ /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
............ /usr/include/x86_64-linux-gnu/bits/time.h
............. /usr/include/x86_64-linux-gnu/bits/timex.h
............ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
............ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
........... /usr/include/x86_64-linux-gnu/bits/setjmp.h
............ /usr/include/x86_64-linux-gnu/bits/wordsize.h
........... /usr/include/x86_64-linux-gnu/bits/wordsize.h
........... /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h
........... /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h
....... /usr/include/c++/12/bits/this_thread_sleep.h
........ /usr/include/c++/12/bits/chrono.h
......... /usr/include/c++/12/ratio
.......... /usr/include/c++/12/cstdint
......... /usr/include/c++/12/limits
......... /usr/include/c++/12/ctime
......... /usr/include/c++/12/bits/parse_numbers.h
........ /usr/include/c++/12/cerrno
......... /usr/include/errno.h
.......... /usr/include/x86_64-linux-gnu/bits/errno.h
........... /usr/include/linux/errno.h
............ /usr/include/x86_64-linux-gnu/asm/errno.h
............. /usr/include/asm-generic/errno.h
.............. /usr/include/asm-generic/errno-base.h
.......... /usr/include/x86_64-linux-gnu/bits/types/error_t.h
...... build/include/include/hip/hip_version.h
...... build/include/include/hip/hip_common.h
...... build/include/include/hip/amd_detail/amd_hip_runtime.h
....... build/include/include/hip/amd_detail/amd_hip_common.h
....... /usr/include/c++/12/cstddef
........ /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
....... /usr/include/c++/12/cmath
........ /usr/include/math.h
......... /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
......... /usr/include/x86_64-linux-gnu/bits/math-vector.h
.......... /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
......... /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
......... /usr/include/x86_64-linux-gnu/bits/fp-logb.h
......... /usr/include/x86_64-linux-gnu/bits/fp-fast.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
......... /usr/include/x86_64-linux-gnu/bits/iscanonical.h
........ /usr/include/c++/12/bits/specfun.h
......... /usr/include/c++/12/tr1/gamma.tcc
.......... /usr/include/c++/12/tr1/special_function_util.h
......... /usr/include/c++/12/tr1/bessel_function.tcc
......... /usr/include/c++/12/tr1/beta_function.tcc
......... /usr/include/c++/12/tr1/ell_integral.tcc
......... /usr/include/c++/12/tr1/exp_integral.tcc
......... /usr/include/c++/12/tr1/hypergeometric.tcc
......... /usr/include/c++/12/tr1/legendre_function.tcc
......... /usr/include/c++/12/tr1/modified_bessel_func.tcc
......... /usr/include/c++/12/tr1/poly_hermite.tcc
......... /usr/include/c++/12/tr1/poly_laguerre.tcc
......... /usr/include/c++/12/tr1/riemann_zeta.tcc
...... build/include/include/hip/hip_runtime_api.h
....... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
....... build/include/include/hip/amd_detail/host_defines.h
....... build/include/include/hip/driver_types.h
....... build/include/include/hip/texture_types.h
........ /usr/lib/gcc/x86_64-linux-gnu/12/include/limits.h
......... /usr/lib/gcc/x86_64-linux-gnu/12/include/syslimits.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/limits.h
........... /usr/include/limits.h
............ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
............ /usr/include/x86_64-linux-gnu/bits/posix1_lim.h
............. /usr/include/x86_64-linux-gnu/bits/wordsize.h
............. /usr/include/x86_64-linux-gnu/bits/local_lim.h
.............. /usr/include/linux/limits.h
............ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h
............ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h
............. /usr/include/x86_64-linux-gnu/bits/uio_lim.h
........ build/include/include/hip/channel_descriptor.h
......... build/include/include/hip/amd_detail/amd_channel_descriptor.h
.......... build/include/include/hip/amd_detail/amd_hip_vector_types.h
........... /usr/include/c++/12/array
............ /usr/include/c++/12/compare
....... build/include/include/hip/surface_types.h
....... build/include/include/hip/amd_detail/amd_hip_runtime_pt_api.h
...... build/include/include/hip/library_types.h
...... build/include/include/hip/hip_vector_types.h
..... build/include/include/hip/hip_fp16.h
...... build/include/include/hip/amd_detail/amd_hip_fp16.h
....... /usr/include/assert.h
....... /usr/include/c++/12/algorithm
........ /usr/include/c++/12/bits/stl_algo.h
......... /usr/include/c++/12/bits/algorithmfwd.h
......... /usr/include/c++/12/bits/stl_heap.h
......... /usr/include/c++/12/bits/stl_tempbuf.h
......... /usr/include/c++/12/bits/uniform_int_dist.h
......... /usr/include/c++/12/cstdlib
........ /usr/include/c++/12/pstl/glue_algorithm_defs.h
......... /usr/include/c++/12/pstl/execution_defs.h
....... /usr/include/c++/12/utility
........ /usr/include/c++/12/bits/stl_relops.h
....... build/include/include/hip/amd_detail/hip_fp16_gcc.h
........ /usr/include/c++/12/cstring
..... /usr/lib/gcc/x86_64-linux-gnu/12/include/limits.h
.... src/include/rccl_float8.h
.... build/include/include/hip/hip_bfloat16.h
..... build/include/include/hip/amd_detail/amd_hip_bfloat16.h
...... build/include/include/hip/amd_detail/host_defines.h
... test/common/PrepDataFuncs.hpp
.. test/common/TestBedChild.hpp
... /usr/include/c++/12/vector
.... /usr/include/c++/12/bits/stl_uninitialized.h
.... /usr/include/c++/12/bits/stl_vector.h
.... /usr/include/c++/12/bits/stl_bvector.h
.... /usr/include/c++/12/bits/vector.tcc
.. test/common/EnvVars.hpp
... build/include/include/hsa/hsa.h
.... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.. /usr/include/gtest/gtest.h
... /usr/include/c++/12/memory
.... /usr/include/c++/12/bits/stl_raw_storage_iter.h
.... /usr/include/c++/12/bits/align.h
..... /usr/include/c++/12/bit
.... /usr/include/c++/12/bits/shared_ptr.h
..... /usr/include/c++/12/bits/shared_ptr_base.h
...... /usr/include/c++/12/typeinfo
...... /usr/include/c++/12/bits/allocated_ptr.h
...... /usr/include/c++/12/ext/atomicity.h
....... /usr/include/x86_64-linux-gnu/c++/12/bits/atomic_word.h
....... /usr/include/x86_64-linux-gnu/sys/single_threaded.h
...... /usr/include/c++/12/ext/concurrence.h
....... /usr/include/c++/12/exception
........ /usr/include/c++/12/bits/exception_ptr.h
......... /usr/include/c++/12/bits/cxxabi_init_exception.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
........ /usr/include/c++/12/bits/nested_exception.h
.... /usr/include/c++/12/bits/shared_ptr_atomic.h
..... /usr/include/c++/12/bits/atomic_base.h
...... /usr/include/c++/12/bits/atomic_lockfree_defines.h
.... /usr/include/c++/12/backward/auto_ptr.h
.... /usr/include/c++/12/pstl/glue_memory_defs.h
... /usr/include/c++/12/ostream
.... /usr/include/c++/12/ios
..... /usr/include/c++/12/bits/char_traits.h
...... /usr/include/c++/12/cwchar
..... /usr/include/c++/12/bits/localefwd.h
...... /usr/include/x86_64-linux-gnu/c++/12/bits/c++locale.h
....... /usr/include/c++/12/clocale
........ /usr/include/locale.h
......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
......... /usr/include/x86_64-linux-gnu/bits/locale.h
...... /usr/include/c++/12/cctype
....... /usr/include/ctype.h
..... /usr/include/c++/12/bits/ios_base.h
...... /usr/include/c++/12/bits/locale_classes.h
....... /usr/include/c++/12/string
........ /usr/include/c++/12/bits/ostream_insert.h
......... /usr/include/c++/12/bits/cxxabi_forced.h
........ /usr/include/c++/12/bits/basic_string.h
......... /usr/include/c++/12/string_view
.......... /usr/include/c++/12/bits/string_view.tcc
......... /usr/include/c++/12/ext/string_conversions.h
.......... /usr/include/c++/12/cstdlib
.......... /usr/include/c++/12/cwchar
.......... /usr/include/c++/12/cstdio
.......... /usr/include/c++/12/cerrno
......... /usr/include/c++/12/bits/charconv.h
........ /usr/include/c++/12/bits/basic_string.tcc
....... /usr/include/c++/12/bits/locale_classes.tcc
...... /usr/include/c++/12/system_error
....... /usr/include/x86_64-linux-gnu/c++/12/bits/error_constants.h
........ /usr/include/c++/12/cerrno
....... /usr/include/c++/12/stdexcept
..... /usr/include/c++/12/streambuf
...... /usr/include/c++/12/bits/streambuf.tcc
..... /usr/include/c++/12/bits/basic_ios.h
...... /usr/include/c++/12/bits/locale_facets.h
....... /usr/include/c++/12/cwctype
........ /usr/include/wctype.h
......... /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h
....... /usr/include/c++/12/cctype
....... /usr/include/x86_64-linux-gnu/c++/12/bits/ctype_base.h
....... /usr/include/c++/12/bits/streambuf_iterator.h
....... /usr/include/x86_64-linux-gnu/c++/12/bits/ctype_inline.h
....... /usr/include/c++/12/bits/locale_facets.tcc
...... /usr/include/c++/12/bits/basic_ios.tcc
.... /usr/include/c++/12/bits/ostream.tcc
... /usr/include/gtest/gtest-assertion-result.h
.... /usr/include/gtest/gtest-message.h
..... /usr/include/c++/12/sstream
...... /usr/include/c++/12/istream
....... /usr/include/c++/12/bits/istream.tcc
...... /usr/include/c++/12/bits/sstream.tcc
..... /usr/include/gtest/internal/gtest-port.h
...... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
...... /usr/include/c++/12/stdlib.h
...... /usr/include/c++/12/cerrno
...... /usr/include/c++/12/iostream
...... /usr/include/c++/12/locale
....... /usr/include/c++/12/bits/locale_facets_nonio.h
........ /usr/include/c++/12/ctime
........ /usr/include/x86_64-linux-gnu/c++/12/bits/time_members.h
........ /usr/include/x86_64-linux-gnu/c++/12/bits/messages_members.h
......... /usr/include/libintl.h
........ /usr/include/c++/12/bits/codecvt.h
........ /usr/include/c++/12/bits/locale_facets_nonio.tcc
....... /usr/include/c++/12/bits/locale_conv.h
...... /usr/include/x86_64-linux-gnu/sys/stat.h
....... /usr/include/x86_64-linux-gnu/bits/stat.h
........ /usr/include/x86_64-linux-gnu/bits/struct_stat.h
....... /usr/include/x86_64-linux-gnu/bits/statx.h
........ /usr/include/linux/stat.h
......... /usr/include/linux/types.h
.......... /usr/include/x86_64-linux-gnu/asm/types.h
........... /usr/include/asm-generic/types.h
............ /usr/include/asm-generic/int-ll64.h
............. /usr/include/x86_64-linux-gnu/asm/bitsperlong.h
.............. /usr/include/asm-generic/bitsperlong.h
.......... /usr/include/linux/posix_types.h
........... /usr/include/linux/stddef.h
........... /usr/include/x86_64-linux-gnu/asm/posix_types.h
............ /usr/include/x86_64-linux-gnu/asm/posix_types_64.h
............. /usr/include/asm-generic/posix_types.h
........ /usr/include/x86_64-linux-gnu/bits/statx-generic.h
......... /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h
......... /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h
...... /usr/include/gtest/internal/custom/gtest-port.h
...... /usr/include/gtest/internal/gtest-port-arch.h
...... /usr/include/regex.h
...... /usr/include/c++/12/condition_variable
....... /usr/include/c++/12/bits/std_mutex.h
....... /usr/include/c++/12/bits/unique_lock.h
...... /usr/include/c++/12/mutex
...... /usr/include/c++/12/any
...... /usr/include/c++/12/optional
....... /usr/include/c++/12/bits/enable_special_members.h
...... /usr/include/c++/12/variant
... /usr/include/gtest/gtest-death-test.h
.... /usr/include/gtest/internal/gtest-death-test-internal.h
..... /usr/include/gtest/gtest-matchers.h
...... /usr/include/c++/12/atomic
...... /usr/include/gtest/gtest-printers.h
....... /usr/include/c++/12/functional
........ /usr/include/c++/12/bits/std_function.h
........ /usr/include/c++/12/unordered_map
......... /usr/include/c++/12/bits/hashtable.h
.......... /usr/include/c++/12/bits/hashtable_policy.h
......... /usr/include/c++/12/bits/unordered_map.h
....... /usr/include/gtest/internal/gtest-internal.h
........ /usr/include/c++/12/stdlib.h
........ /usr/include/x86_64-linux-gnu/sys/wait.h
......... /usr/include/signal.h
.......... /usr/include/x86_64-linux-gnu/bits/signum-generic.h
........... /usr/include/x86_64-linux-gnu/bits/signum-arch.h
.......... /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h
.......... /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h
........... /usr/include/x86_64-linux-gnu/bits/wordsize.h
........... /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
........... /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
.......... /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h
........... /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h
.......... /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h
.......... /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
........... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.......... /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h
.......... /usr/include/x86_64-linux-gnu/bits/sigaction.h
.......... /usr/include/x86_64-linux-gnu/bits/sigcontext.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.......... /usr/include/x86_64-linux-gnu/bits/types/stack_t.h
........... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.......... /usr/include/x86_64-linux-gnu/sys/ucontext.h
.......... /usr/include/x86_64-linux-gnu/bits/sigstack.h
.......... /usr/include/x86_64-linux-gnu/bits/sigstksz.h
.......... /usr/include/x86_64-linux-gnu/bits/ss_flags.h
.......... /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h
.......... /usr/include/x86_64-linux-gnu/bits/sigthread.h
.......... /usr/include/x86_64-linux-gnu/bits/signal_ext.h
......... /usr/include/x86_64-linux-gnu/bits/types/idtype_t.h
........ /usr/lib/gcc/x86_64-linux-gnu/12/include/float.h
........ /usr/include/c++/12/iomanip
......... /usr/include/c++/12/bits/quoted_string.h
........ /usr/include/c++/12/set
......... /usr/include/c++/12/bits/stl_set.h
......... /usr/include/c++/12/bits/stl_multiset.h
........ /usr/include/gtest/internal/gtest-filepath.h
......... /usr/include/gtest/internal/gtest-string.h
........ /usr/include/gtest/internal/gtest-type-util.h
......... /usr/include/c++/12/cxxabi.h
.......... /usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h
.......... /usr/include/x86_64-linux-gnu/c++/12/bits/cxxabi_tweaks.h
....... /usr/include/gtest/internal/custom/gtest-printers.h
... /usr/include/gtest/gtest-param-test.h
.... /usr/include/c++/12/iterator
..... /usr/include/c++/12/bits/stream_iterator.h
.... /usr/include/gtest/internal/gtest-param-util.h
..... /usr/include/c++/12/cassert
...... /usr/include/assert.h
..... /usr/include/gtest/gtest-test-part.h
... /usr/include/gtest/gtest-typed-test.h
... /usr/include/gtest/gtest_pred_impl.h
... /usr/include/gtest/gtest_prod.h

As you can see iomanip is included because /usr/include/gtest/gtest.h is included which includes /usr/include/gtest/internal/gtest-internal.h which in turn includes /usr/include/c++/12/iomanip

The reason for this works for you but not for me is that between gtest 1.12 and gtest 1.15 the iomanip include was removed from gtest-internal.h.

But this allways was a bug you cant rely on some internal header of some libary includeing iomanip for you

@AngryLoki
Copy link

Hi, we encountered the same issue (compilation works with gtest 1.14, fails with gtest 1.15.2) and indeed proposed fix solved the issue:

--- a/test/common/TestBed.cpp
+++ b/test/common/TestBed.cpp
@@ -4,6 +4,7 @@
  * See LICENSE.txt for license information
  ************************************************************************/
 #include <unistd.h>
+#include <iomanip>
 #include "TestBed.hpp"
 #include <rccl/rccl.h>
 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants