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
In file included from /usr/include/c++/13.2.1/bits/stl_algo.h:71,
from /usr/include/c++/13.2.1/algorithm:61,
from cpp/oneapi/dal/algo/logistic_regression/parameters/cpu/train_parameters.cpp:17:
/usr/include/c++/13.2.1/cstdlib:79:15: fatal error: stdlib.h: No such file or directory
79 | #include_next <stdlib.h>
| ^~~~~~~~~~
compilation terminated.
To Reproduce
Steps to reproduce the behavior:
cd src/oneDAL-2024.1.0
./dev/download_micromkl.sh
LIBRARY_PATH=/usr/lib \
LD_LIBRARY_PATH=/usr/lib \
TBBROOT=/usr \
make -f makefile daal oneapi_c -j10 COMPILER=gnu PLAT=lnx32e REQCPU="avx2 avx512"
Expected behavior
It should build successfully
Diagnosis and Fix
The problem first occurs at this step:
/usr/include/c++/13.2.1/cstdlib:79:15: fatal error: stdlib.h: No such file or directory
79 | #include_next <stdlib.h>
| ^~~~~~~~~~
In context, that line in /usr/include/c++/13.2.1/cstdlib is:
// Need to ensure this finds the C library's <stdlib.h> not a libstdc++
// wrapper that might already be installed later in the include search path.
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#include_next <stdlib.h>
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
What should happen is that stdlib.h is included from /usr/include. However since /usr/include precedes /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1 in the above #include <...> search paths, it doesn't find it, resulting in the error.
The source of how these #include <...> search paths got mixed up is from @./__work_gnu/md/lnx32e/oneapi_dynamic/inc_y_folders.txt which is in the above g++ command:
Note the last parameter -isystem/usr/include. By simply excluding this from the inc_a_folders.txt and inc_y_folders.txt generated files fixes the problem. Making this change results in /usr/include coming correctly after /usr/include/c++/13.2.1 in the #include <...> search paths.
Environment:
OS: Arch Linux (2024 April 2)
Compiler: gcc (GCC) 13.2.1 20230801
Version: 2024.1.0
The text was updated successfully, but these errors were encountered:
We've tried to reproduce the issue with all the software versions as reported except Arch Linux though with no luck. Did you have any progress on your side meanwhile?
I haven't tracked down where the /usr/include entry is coming from that appears in the intermediate inc_[ay]_folders.txt files but I think this would be fixed if they were omitted. I'm not sure why they need to be included, as they seem to mess up
Describe the bug
Fatal error when building:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should build successfully
Diagnosis and Fix
The problem first occurs at this step:
which results in the above
fatal error
. We can see the reason for this by adding-v
to theg++
command. It reports:From the error message:
In context, that line in
/usr/include/c++/13.2.1/cstdlib
is:What should happen is that
stdlib.h
is included from/usr/include
. However since/usr/include
precedes/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1
in the above#include <...> search
paths, it doesn't find it, resulting in the error.The source of how these
#include <...> search
paths got mixed up is from@./__work_gnu/md/lnx32e/oneapi_dynamic/inc_y_folders.txt
which is in the aboveg++
command:Note the last parameter
-isystem/usr/include
. By simply excluding this from theinc_a_folders.txt
andinc_y_folders.txt
generated files fixes the problem. Making this change results in/usr/include
coming correctly after/usr/include/c++/13.2.1
in the#include <...> search
paths.Environment:
The text was updated successfully, but these errors were encountered: