← All tasks
cppOneflow-Inc/oneflow #10091Not a task: not reproduced

Build failure caused by mismatch types in std::max

envgap__Oneflow-Inc__oneflow-10091

01 / FAILURE SIGNATURE

As reported upstream

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: error: no matching function for call to ‘max(long int, int)’
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
d1983e60ffa93fa8a44ed1a7674276cc73632328
Manifest
CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

Oneflow-Inc/oneflow #10091 · read the original issue
## Summary



Can't build oneflow in my WSL2 (ubuntu22) with clang++ 14 compiler



## Code to reproduce bug

```

git clone https://github.com/Oneflow-Inc/oneflow --depth=1

cd oneflow

mkdir build && cd build

cmake .. -C ../cmake/caches/cn/cpu.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=YES

ninja

```



Errors:

```

[28/1629] Performing build step for 'absl'

FAILED: absl/src/absl-stamp/absl-build third_party_install/absl/lib/libabsl_spinlock_wait.a third_party_install/absl/lib/libabsl_dynamic_annotations.a third_party_install/absl/lib/libabsl_malloc_internal.a third_party_install/absl/lib/libabsl_throw_delegate.a third_party_install/absl/lib/libabsl_int128.a third_party_install/absl/lib/libabsl_strings.a third_party_install/absl/lib/libabsl_str_format_internal.a third_party_install/absl/lib/libabsl_time.a third_party_install/absl/lib/libabsl_bad_optional_access.a third_party_install/absl/lib/libabsl_base.a /home/jun/dev/oneflow/build/absl/src/absl-stamp/absl-build /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_spinlock_wait.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_dynamic_annotations.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_malloc_internal.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_throw_delegate.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_int128.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_strings.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_str_format_internal.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_time.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_bad_optional_access.a /home/jun/dev/oneflow/build/third_party_install/absl/lib/libabsl_base.a

cd /home/jun/dev/oneflow/build/absl/src/absl-build && /usr/bin/cmake --build . && /usr/bin/cmake -E touch /home/jun/dev/oneflow/build/absl/src/absl-stamp/absl-build

[1/55] Linking CXX static library absl/numeric/libabsl_int128.a

[2/55] Linking CXX static library absl/strings/libabsl_strings_internal.a

[3/55] Linking CXX static library absl/strings/libabsl_strings.a

[4/55] Building CXX object absl/strings/CMakeFiles/str_format_internal.dir/internal/str_format/extension.cc.o

[5/55] Building CXX object absl/synchronization/CMakeFiles/synchronization.dir/barrier.cc.o

[6/55] Building CXX object absl/debugging/CMakeFiles/failure_signal_handler.dir/failure_signal_handler.cc.o

FAILED: absl/debugging/CMakeFiles/failure_signal_handler.dir/failure_signal_handler.cc.o

/usr/bin/c++ -D__CLANG_SUPPORT_DYN_ANNOTATION__ -I/home/jun/dev/oneflow/build/absl/src/absl -g -fPIC -Wall -Wextra -Wcast-qual -Wconversion-null -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -Wno-missing-field-initializers -Wno-sign-compare -std=gnu++11 -MD -MT absl/debugging/CMakeFiles/failure_signal_handler.dir/failure_signal_handler.cc.o -MF absl/debugging/CMakeFiles/failure_signal_handler.dir/failure_signal_handler.cc.o.d -o absl/debugging/CMakeFiles/failure_signal_handler.dir/failure_signal_handler.cc.o -c /home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc: In function ‘bool absl::SetupAlternateStackOnce()’:

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: error: no matching function for call to ‘max(long int, int)’

  127 |   size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~

In file included from /usr/include/c++/11/algorithm:61,

                 from /home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:31:

/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’

  254 |     max(const _Tp& __a, const _Tp& __b)

      |     ^~~

/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long int’ and ‘int’)

  127 |   size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~

In file included from /usr/include/c++/11/algorithm:61,

                 from /home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:31:

/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’

  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)

      |     ^~~

/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long int’ and ‘int’)

  127 |   size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~

In file included from /usr/include/c++/11/algorithm:62,

                 from /home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:31:

/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: ‘template<class _Tp> _Tp std::max(std::initializer_list<_Tp>)’

 3461 |     max(initializer_list<_Tp> __l)

      |     ^~~

/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘long int’

  127 |   size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~

In file included from /usr/include/c++/11/algorithm:62,

                 from /home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:31:

/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare)’

 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)

      |     ^~~

/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:

/home/jun/dev/oneflow/build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘long int’

  127 |   size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~

```



The compile error is from abseil. More specific: `build/absl/src/absl/absl/debugging/failure_signal_handler.cc:127:32`

```

size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;

```



The current workaround is to cast both operands to size_t.



Note this seems to be fixed in upstream: 



https://github.com/abseil/abseil-cpp/blob/1a72ea7bb8ba27679dd8b179a4671d7d9b099d4b/absl/debugging/failure_signal_handler.cc#L140-L142



https://github.com/abseil/abseil-cpp/commit/f073fe8ee5dcb0aa18c893198747062f2f51ab59#diff-f8c3d5f5f08c7c6acbb7bec88ab5f2e4d86bb8c2a0e2f25c27e23ef2e3ee1173



OS:

```

❯ uname -a

Linux Diana 5.15.90.1-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

```

Compiler:

```

❯ clang --version

Ubuntu clang version 14.0.0-1ubuntu1

Target: x86_64-pc-linux-gnu

Thread model: posix

InstalledDir: /usr/bin

```

Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]