mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-13 19:24:21 +00:00
[libcxx] Only add -GR- option to MSVC or clang-cl builds
Previously we added both `-GR-` and `-fno-rtti` if RTTI was disabled.
When building with clang 16.x, that caused this error in part of the build:
```
clang-16: error: argument unused during compilation: '-G R-' [-Werror,-Wunused-command-line-argument]
```
I think the strange message is because clang is seeing `R-` as the argument
to `-G`, which is a valid clang option.
`-GR-` is an alternate syntax for the `/GR-` option for MSVC
(the dash means disable RTTI):
https://learn.microsoft.com/en-us/cpp/build/reference/gr-enable-run-time-type-information?view=msvc-170
This error is sort of fixed by cd18efb61d
but not intentionally. Also, we'd have to wait for 17.x to benefit from that.
The proper fix here is to only add `-GR-` if we are building with MSVC
or the MSVC-like clang-cl, and add `-fno-rtti` if not.
Reviewed By: #libc, simon_tatham, michaelplatings, ldionne
Differential Revision: https://reviews.llvm.org/D154582
This commit is contained in:
parent
cb0f98e10b
commit
36df92dcd9
@ -569,8 +569,11 @@ endfunction()
|
||||
# RTTI flags ==================================================================
|
||||
function(cxx_add_rtti_flags target)
|
||||
if (NOT LIBCXX_ENABLE_RTTI)
|
||||
target_add_compile_flags_if_supported(${target} PUBLIC -GR-)
|
||||
target_add_compile_flags_if_supported(${target} PUBLIC -fno-rtti)
|
||||
if (LIBCXX_TARGETING_CLANG_CL OR LIBCXX_TARGETING_MSVC)
|
||||
target_add_compile_flags_if_supported(${target} PUBLIC -GR-)
|
||||
else()
|
||||
target_add_compile_flags_if_supported(${target} PUBLIC -fno-rtti)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user