This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CODECOMPOSER: ti-cgt-armllvm 4.0.x C++ headers missing

Part Number: CODECOMPOSER

Tool/software:

Hello,

I wanted to switch toolchain version from ti-cgt-armllvm_3.2.2.LTS to ti-cgt-armllvm_4.0.3.LTS but fails to compile the same code which was working with 3.2.2.

In the 4.0.x compilation fails with following error:

/opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/cctype:43:5: error: <cctype> tried including <ctype.h> but didn't find libc++'s <ctype.h> header.           This usually means that your header search paths are not configured properly.            The header search paths should contain the C++ Standard Library headers before           any C Standard Library.
   43 | #   error <cctype> tried including <ctype.h> but didn't find libc++'s <ctype.h> header. \
      |     ^
In file included from main.cpp:4:
In file included from <some header path>.hpp:6:
In file included from <some header path>.hpp:7:
In file included from <some header path>.hpp:8:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/functional:526:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__functional/boyer_moore_searcher.h:27:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/vector:325:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__format/formatter_bool.h:20:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__format/formatter_integral.h:13:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__charconv/to_chars_integral.h:17:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__charconv/to_chars_result.h:14:
In file included from /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/__system_error/errc.h:104:
/opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1/cerrno:31:5: error: <cerrno> tried including <errno.h> but didn't find libc++'s <errno.h> header.           This usually means that your header search paths are not configured properly.           The header search paths should contain the C++ Standard Library headers before           any C Standard Library, and you are probably using compiler flags that make that           not be the case.
   31 | #   error <cerrno> tried including <errno.h> but didn't find libc++'s <errno.h> header. \
      |     ^
2 errors generated.


It seems like the problem is caused by too many include paths.  I've checked the include path used for compilation by calling /opt/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang with -E -v. It seems like headers shall be visible as in the compile output I can see:

ignoring duplicate directory "/opt/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include"
#include "..." search starts here:
#include <...> search starts here:

my include paths....

 /opt/ti-cgt-armllvm_4.0.0.LTS/include/armv7r-ti-none-eabihf/c++/v1
 /opt/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1
 /opt/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include
 /opt/ti-cgt-armllvm_4.0.0.LTS/include/c

The problem is gone when I limit number of include paths used for compilation.

Problem also occurs in  4.0.3

Is there any known limitation of number of the include paths number? Could you please solve me this issue? 

Best Regards,
Slawomir