Commit 60c5f6f
committed
make: use SYCLCXX as linker for libceed.so when SYCL is enabled
When CC=gcc (as on Aurora), SYCL_FLAG is empty so the libceed.so link
step was using g++ without -fsycl. g++ does not merge SYCL fat binary
device sections from .sycl.cpp objects, leaving libceed.so with only
host-side SYCL stubs. At runtime, the SYCL backend threw
"No kernel named ..." for every kernel, including CeedVectorNorm_Sycl.
Fix: when SYCL_LIB_DIR is detected, switch the libceed.so linker to
$(SYCLCXX) (icpx) and add -fsycl/-fno-sycl-id-queries-fit-in-int to
CEED_LDFLAGS so icpx merges the device images into the shared library.
Also fix PKG_LIBS: use $(filter -fsycl ...,$(SYCLFLAGS)) instead of
$(SYCL_FLAG) so the .pc file carries -fsycl regardless of CC vendor.1 parent e85e3fb commit 60c5f6f
1 file changed
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
597 | 597 | | |
598 | 598 | | |
599 | 599 | | |
600 | | - | |
| 600 | + | |
601 | 601 | | |
602 | 602 | | |
603 | 603 | | |
| |||
658 | 658 | | |
659 | 659 | | |
660 | 660 | | |
661 | | - | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
662 | 667 | | |
663 | 668 | | |
664 | 669 | | |
| |||
0 commit comments