Skip to content

SYCL compiler can not be installed in system default location #5142

Open
@alexbatashev

Description

@alexbatashev

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions