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++ (intel#20039)
Before intel#9075 the value of CMAKE_CXX_FLAGS was passed to SYCL E2E
compilations. In intel#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 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