Bug#1061716: clang-16: unable to find standard headers like <cassert>

Nick Lewycky nicholas at mxc.ca
Mon Jan 29 03:06:14 GMT 2024


Subject: clang-16: unable to find standard headers like <cassert>
Package: clang-16
Version: 1:16.0.6-19
Severity: normal

This broke recently:

```
$ echo '#include <cassert>' > cassert.cc
$ c++ cassert.cc
cassert.cc:1:10: fatal error: 'cassert' file not found
#include <cassert>
          ^~~~~~~~~
1 error generated.
```

My c++ is an /etc/alternatives pointer to /usr/bin/clang++ which is a 
symlink to /usr/lib/llvm-16/bin/clang++ .

```
$ c++ -v
Debian clang version 16.0.6 (19)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i586-linux-gnu/4.7
Found candidate GCC installation: /usr/bin/../lib/gcc/i586-linux-gnu/4.7.4
Found candidate GCC installation: /usr/bin/../lib/gcc/i586-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/i586-linux-gnu/4.8.5
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/14
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.4.6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.4.7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.6.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/14
Candidate multilib: .;@m64
Selected multilib: .;@m64
```

Here's the clang -cc1 invocation, this shows the results of the driver 
search:

```
$ c++ -### cassert.cc
Debian clang version 16.0.6 (19)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
  "/usr/lib/llvm-16/bin/clang" "-cc1" "-triple" "x86_64-pc-linux-gnu" 
"-emit-obj" "-mrelax-all" "-disable-free" "-clear-ast-before-backend" 
"-disable-llvm-verifier" "-discard-value-names" "-main-file-name" 
"cassert.cc" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" 
"-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" 
"-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" 
"-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" 
"-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" 
"-fcoverage-compilation-dir=/home/nicholas" "-resource-dir" 
"/usr/lib/llvm-16/lib/clang/16" "-internal-isystem" 
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++" 
"-internal-isystem" 
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/x86_64-linux-gnu" 
"-internal-isystem" 
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/backward" 
"-internal-isystem" "/usr/lib/llvm-16/lib/clang/16/include" 
"-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-fdeprecated-macro" 
"-fdebug-compilation-dir=/home/nicholas" "-ferror-limit" "19" 
"-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" 
"-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" 
"/tmp/cassert-0fb9fc.o" "-x" "c++" "cassert.cc"
  "/usr/bin/ld" "-pie" "--hash-style=gnu" "--build-id" "--eh-frame-hdr" 
"-m" "elf_x86_64" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-o" 
"a.out" "/lib/x86_64-linux-gnu/Scrt1.o" "/lib/x86_64-linux-gnu/crti.o" 
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/crtbeginS.o" 
"-L/usr/bin/../lib/gcc/x86_64-linux-gnu/14" 
"-L/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../lib64" 
"-L/lib/x86_64-linux-gnu" "-L/lib/../lib64" 
"-L/usr/lib/x86_64-linux-gnu" "-L/usr/lib/../lib64" 
"-L/usr/lib/llvm-16/bin/../lib" "-L/lib" "-L/usr/lib" 
"/tmp/cassert-0fb9fc.o" "-lstdc++" "-lm" "-lgcc_s" "-lgcc" "-lc" 
"-lgcc_s" "-lgcc" "/usr/bin/../lib/gcc/x86_64-linux-gnu/14/crtendS.o" 
"/lib/x86_64-linux-gnu/crtn.o"
```

Simplifying the paths, I see:
   -internal-isystem /usr/include/c++
   -internal-isystem /usr/include/c++/x86_64-linux-gnu
   -internal-isystem /usr/include/c++/backward
   -internal-isystem /usr/lib/llvm-16/lib/clang/16/include
   -internal-isystem /usr/local/include
   -internal-isystem /usr/x86_64-linux-gnu/include
   -internal-externc-isystem /usr/include/x86_64-linux-gnu
   -internal-externc-isystem /include
   -internal-externc-isystem /usr/include

```
$ dpkg -S cassert | grep /cassert$
libstdc++-5-dev:amd64: /usr/include/c++/5/cassert
libcu++-dev: /usr/include/cuda/std/detail/libcxx/include/cassert
libcu++-dev: /usr/include/cuda/std/cassert
libstdc++-11-dev:amd64: /usr/include/c++/11/cassert
libstdc++-12-dev:amd64: /usr/include/c++/12/cassert
libstdc++-8-dev:amd64: /usr/include/c++/8/cassert
libboost1.83-dev:amd64: 
/usr/include/boost/compatibility/cpp_c_headers/cassert
libstdc++6-4.4-dev: /usr/include/c++/4.4/cassert
libstdc++-6-dev:amd64: /usr/include/c++/6/cassert
libc++-16-dev:amd64: /usr/lib/llvm-16/include/c++/v1/cassert
libstdc++6-4.6-dev: /usr/include/c++/4.6/cassert
libstdc++-4.9-dev:amd64: /usr/include/c++/4.9/cassert
libstdc++-9-dev:amd64: /usr/include/c++/9/cassert
libstdc++-4.8-dev:amd64: /usr/include/c++/4.8/cassert
g++-mingw-w64-i686-posix: 
/usr/lib/gcc/i686-w64-mingw32/13-posix/include/c++/cassert
libstdc++6-4.5-dev: /usr/include/c++/4.5/cassert
g++-mingw-w64-i686-win32: 
/usr/lib/gcc/i686-w64-mingw32/13-win32/include/c++/cassert
libstdc++-13-dev:amd64: /usr/include/c++/13/cassert
libstdc++-9-dev-arm64-cross: /usr/aarch64-linux-gnu/include/c++/9/cassert
libstdc++-10-dev:amd64: /usr/include/c++/10/cassert
libstdc++6-4.7-dev:amd64: /usr/include/c++/4.7/cassert
```

Nick

-- System Information:
Debian Release: trixie/sid
   APT prefers unstable-debug
   APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 
'testing'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.6.13-amd64 (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_CA.utf8, LC_CTYPE=en_CA.utf8 (charmap=UTF-8), LANGUAGE 
not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: SELinux: enabled - Mode: Permissive - Policy name: default

Versions of packages clang-16 depends on:
ii  binutils                2.41.90.20240122-1
ii  libc6                   2.37-14
ii  libc6-dev               2.37-14
ii  libclang-common-16-dev  1:16.0.6-19
ii  libclang-cpp16          1:16.0.6-19
ii  libclang1-16            1:16.0.6-19
ii  libgcc-13-dev           13.2.0-12
ii  libgcc-s1               14-20240127-1
ii  libllvm16               1:16.0.6-19
ii  libobjc-13-dev          13.2.0-12
ii  libstdc++-13-dev        13.2.0-12
ii  libstdc++6              14-20240127-1
ii  llvm-16-linker-tools    1:16.0.6-19

Versions of packages clang-16 recommends:
ii  llvm-16-dev  1:16.0.6-19
ii  python3      3.11.6-1

Versions of packages clang-16 suggests:
pn  clang-16-doc  <none>
pn  wasi-libc     <none>

-- debconf-show failed



More information about the Pkg-llvm-team mailing list