thakis added a comment.

In D109624#2998550 <https://reviews.llvm.org/D109624#2998550>, @saghir wrote:

> Hi, this change also breaks Power PC bots:
>
> 1. https://lab.llvm.org/buildbot/#/builders/19/builds/6451/steps/24/logs/stdio
> 2. https://lab.llvm.org/buildbot/#/builders/18/builds/2443/steps/23/logs/stdio
>
> It fails consistently on our bots. Can you please take a look?
>
> Thanks!

That's a more interesting failure. It fails because:

  clang-13: error: /wd4146: 'linker' input unused 
[-Werror,-Wunused-command-line-argument]
  clang-13: error: /wd4291: 'linker' input unused 
[-Werror,-Wunused-command-line-argument]
  clang-13: error: /wd4391: 'linker' input unused 
[-Werror,-Wunused-command-line-argument]
  clang-13: error: /wd4722: 'linker' input unused 
[-Werror,-Wunused-command-line-argument]
  clang-13: error: /wd4800: 'linker' input unused 
[-Werror,-Wunused-command-line-argument]

compiler-rt\cmake\config-ix.cmake does `check_cxx_compiler_flag(/wd4800 
COMPILER_RT_HAS_WD4800_FLAG)` etc. I suppose this patch does have the effect of 
making flags only warnings if no linking is happening:

  >out\gn\bin\clang-cl --driver-mode=gcc /wd1245 -c main.cc
  clang-cl: warning: /wd1245: 'linker' input unused 
[-Wunused-command-line-argument]

That breaks `check_cxx_compiler_flag()` since it doesn't do its checks with 
`-Werror`. I guess that's an argument to keeping this an error for the 
gcc-style driver. On the other hand, it's a bit weird to use 
`cmake:check_cxx_compiler_flag` to check for MSVC-style flags since MSVC itself 
only emits a warning on unknown flags. (On the third hand, this behavior 
between gcc and cl seems to be used to detect cl in practice :) ).

Just using `-wd...` instead of `/wd...` would inside `check_cxx_compiler_flag` 
would make things go, and we don't use this often currently:

  >git grep check_.*compiler_flag(\/
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/GR 
COMPILER_RT_HAS_GR_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/GS 
COMPILER_RT_HAS_GS_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/MT 
COMPILER_RT_HAS_MT_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/Oy 
COMPILER_RT_HAS_Oy_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/Zi 
COMPILER_RT_HAS_Zi_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/W4 
COMPILER_RT_HAS_W4_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/WX 
COMPILER_RT_HAS_WX_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4146 
COMPILER_RT_HAS_WD4146_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4291 
COMPILER_RT_HAS_WD4291_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4221 
COMPILER_RT_HAS_WD4221_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4391 
COMPILER_RT_HAS_WD4391_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4722 
COMPILER_RT_HAS_WD4722_FLAG)
  compiler-rt/cmake/config-ix.cmake:check_cxx_compiler_flag(/wd4800 
COMPILER_RT_HAS_WD4800_FLAG)
  openmp/runtime/cmake/config-ix.cmake:    check_cxx_compiler_flag(/EHsc 
LIBOMP_HAVE_EHSC_FLAG)
  openmp/runtime/cmake/config-ix.cmake:    check_cxx_compiler_flag(/GS 
LIBOMP_HAVE_GS_FLAG)
  openmp/runtime/cmake/config-ix.cmake:    check_cxx_compiler_flag(/Oy- 
LIBOMP_HAVE_Oy__FLAG)
  openmp/runtime/cmake/config-ix.cmake:    check_cxx_compiler_flag(/arch:SSE2 
LIBOMP_HAVE_ARCH_SSE2_FLAG)
  openmp/runtime/cmake/config-ix.cmake:    check_cxx_compiler_flag(/Qsafeseh 
LIBOMP_HAVE_QSAFESEH_FLAG)
  openmp/runtime/cmake/config-ix.cmake:  check_cxx_compiler_flag(/Qlong_double 
LIBOMP_HAVE_LONG_DOUBLE_FLAG)
  openmp/runtime/cmake/config-ix.cmake:  
check_cxx_compiler_flag(/Qdiag-disable:177 LIBOMP_HAVE_DIAG_DISABLE_177_FLAG)
  openmp/runtime/cmake/config-ix.cmake:  
check_cxx_compiler_flag(/Qinline-min-size=1 LIBOMP_HAVE_INLINE_MIN_SIZE_FLAG)

But I think it's better to undo this for the gcc-style driver instead. I'll 
land a change for that.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109624/new/

https://reviews.llvm.org/D109624

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to