-
Notifications
You must be signed in to change notification settings - Fork 803
[SYCL][E2E] Stop CMAKE_CXX_FLAGS cache variable passing to clang++ #20039
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: sycl
Are you sure you want to change the base?
[SYCL][E2E] Stop CMAKE_CXX_FLAGS cache variable passing to clang++ #20039
Conversation
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 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).
run_prebuilt_e2e_tests (Intel Battlemage Graphics, ["Linux", "bmg"]
I believe the USM failures are unrelated, they are tracked by #19749 The other errors seem to be due to
Which is possibly a driver problem? I'll update the branch and try again, but I don't expect these to be related to the changes here. |
…xx_flags_cache_to_sycl_e2e
@intel/llvm-gatekeepers this is ready to merge :) |
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 fails with a warning/error ifCMAKE_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 passCMAKE_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).