You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL][E2E] Stop CMAKE_CXX_FLAGS cache variable passing to clang++
Before #9075 the value of CMAKE_CXX_FLAGS was passed to SYCL E2E
compilations. In #9075 the variable was explicitly unset in
non-standalone (in-tree) builds of the tests. Unsetting a normal
variable however exposes the cmake cache variable of the same name.
I believe this was not the intent, rather the intent was to not pass
any CMAKE_CXX_FLAGS to the E2E tests in non-standalone builds. It is weird
to pass the user's CMAKE_CXX_FLAGS to the E2E tests, as these flags
are for the SYCL toolchain, not tests.
Passing `CMAKE_CXX_FLAGS` to the E2E tests can cause problems, for example
a test might wish to override options such as setting `-ffp-model=fast`, but this can
fails with a warning/error if `CMAKE_CXX_FLAGS` contains `-ffp-model=precise`:
`error: overriding '-ffp-model=precise' option with '-ffp-model=fast' [-Werror,-Woverriding-option]`.
While the error could be worked around in the test by appending `-Wno-overriding-option`
to the test flags, I don't believe this is the right solution.
It is possible that the user is running on a system where some flags
have to be passed to clang++ to make it produce working executables.
For this reason, allow setting `SYCL_E2E_CLANG_CXX_FLAGS` by the user
if needed in in-tree builds, but do not pass `CMAKE_CXX_FLAGS` by default.
Contains a drive-by fix to make sure `-Werror` is passed to clang++ even
when the c++ flags are overriden by the lit parameter `--param cxx_flags=...`
(it can still be disabled using `-Wno-error` explicitly).
0 commit comments