Open
Description
Steps to reproduce:
Build SYCL toolchain as described in Get Started Guide
Deploy to /usr
echo "#include <iostream> " > test.cpp"
clang++ test.cpp
clang++ -fsycl test.cpp
The last command will fail with the message like below:
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/cstdlib:75:15: fatal error: 'stdlib.h' file not found
#include_next <stdlib.h>
Here's the search order for normal mode:
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward
/usr/lib/clang/14.0.0/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
And here's the search order with -fsycl
enabled:
/usr/bin/../include/sycl
/usr/bin/../include
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward
/usr/lib/clang/14.0.0/include
/usr/local/include
/usr/include/x86_64-linux-gnu
Apparently, -fsycl
moves /usr/include
to the top of the list, which breaks include_next
directive.