Public bug reported:
Building with clang++ searches /usr/lib/gcc/x86_64-linux-gnu/14/ which
causes clang++ to not be able to find the standard library headers let
alone link. This is because clang seems to just pick the newest looking
installed version based on what paths it sees. The /14/ directory exists
because I have installed emacs-pgtk which pulls in libgccjit0 which
pulls in libgcc-14-dev which causes all the headache. I ran into this on
22.04 with pulling in libgccjit0 to build emacs manually, which I worked
around by using a different library version.
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
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
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/14
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj
-mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend
-disable-llvm-verifier -discard-value-names -main-file-name main.cpp
-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 -debugger-tuning=gdb
-fdebug-compilation-dir=/home/ubuntu/dumbtest -v
-fcoverage-compilation-dir=/home/ubuntu/dumbtest -resource-dir
/usr/lib/llvm-18/lib/clang/18 -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-18/lib/clang/18/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 -ferror-limit 19 -fgnuc-version=4.2.1
-fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics
-faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-92a14c.o -x c++ main.cpp
clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target
x86_64-pc-linux-gnu
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/backward"
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++
/usr/lib/llvm-18/lib/clang/18/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
main.cpp:1:10: fatal error: 'iostream' file not found
1 | #include <iostream>
| ^~~~~~~~~~
1 error generated.
When not including the standard template library the following bit after
"End of search list." differs as per below.
"/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m
elf_x86_64 -pie -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-18/bin/../lib -L/lib -L/usr/lib
/tmp/main-2fcfb2.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
/usr/bin/ld: cannot find -lstdc++: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
I am on WSL but I doubt that would make a difference.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: clang 1:18.0-59~exp2
Uname: Linux 5.15.153.1-microsoft-standard-WSL2 x86_64
ApportVersion: 2.28.1-0ubuntu3.1
Architecture: amd64
CasperMD5CheckResult: unknown
CloudArchitecture: x86_64
CloudID: none
CloudName: none
CloudPlatform: none
CloudSubPlatform: config
Date: Thu Aug 15 18:42:03 2024
ProcEnviron:
LANG=en_US.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=xterm-256color
XDG_RUNTIME_DIR=<set>
SourcePackage: llvm-defaults
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: llvm-defaults (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug noble wayland-session
** Summary changed:
- Unable to link any executable using libstdc++
+ libgcc-14-dev breaks clang++ build and link
** Description changed:
Building with clang++ searches /usr/lib/gcc/x86_64-linux-gnu/14/ which
causes clang++ to not be able to find the standard library headers let
alone link. This is because clang seems to just pick the newest looking
installed version based on what paths it sees. The /14/ directory exists
because I have installed emacs-pgtk which pulls in libgccjit0 which
pulls in libgcc-14-dev which causes all the headache. I ran into this on
22.04 with pulling in libgccjit0 to build emacs manually, which I worked
around by using a different library version.
-
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
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
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/14
Candidate multilib: .;@m64
Selected multilib: .;@m64
- "/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj
-mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend
-disable-llvm-verifier -discard-value-names -main-file-name main.cpp
-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 -debugger-tuning=gdb
-fdebug-compilation-dir=/home/ubuntu/dumbtest -v
-fcoverage-compilation-dir=/home/ubuntu/dumbtest -resource-dir
/usr/lib/llvm-18/lib/clang/18 -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-18/lib/clang/18/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 -ferror-limit 19 -fgnuc-version=4.2.1
-fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics
-faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-92a14c.o -x c++ main.cpp
+ "/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj
-mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend
-disable-llvm-verifier -discard-value-names -main-file-name main.cpp
-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 -debugger-tuning=gdb
-fdebug-compilation-dir=/home/ubuntu/dumbtest -v
-fcoverage-compilation-dir=/home/ubuntu/dumbtest -resource-dir
/usr/lib/llvm-18/lib/clang/18 -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-18/lib/clang/18/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 -ferror-limit 19 -fgnuc-version=4.2.1
-fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics
-faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-92a14c.o -x c++ main.cpp
clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target
x86_64-pc-linux-gnu
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/backward"
ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
- /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++
- /usr/lib/llvm-18/lib/clang/18/include
- /usr/local/include
- /usr/include/x86_64-linux-gnu
- /usr/include
+ /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++
+ /usr/lib/llvm-18/lib/clang/18/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
End of search list.
main.cpp:1:10: fatal error: 'iostream' file not found
- 1 | #include <iostream>
- | ^~~~~~~~~~
+ 1 | #include <iostream>
+ | ^~~~~~~~~~
1 error generated.
When not including the standard template library the following bit after
"End of search list." differs as per below.
- "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m
elf_x86_64 -pie -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-18/bin/../lib -L/lib -L/usr/lib
/tmp/main-2fcfb2.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
+ "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m
elf_x86_64 -pie -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-18/bin/../lib -L/lib -L/usr/lib
/tmp/main-2fcfb2.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
/usr/bin/ld: cannot find -lstdc++: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
- Release information:
-
- No LSB modules are available.
- Description: Ubuntu 24.04 LTS
- Release: 24.04
+ I am on WSL but I doubt that would make a difference.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: clang 1:18.0-59~exp2
Uname: Linux 5.15.153.1-microsoft-standard-WSL2 x86_64
ApportVersion: 2.28.1-0ubuntu3.1
Architecture: amd64
CasperMD5CheckResult: unknown
CloudArchitecture: x86_64
CloudID: none
CloudName: none
CloudPlatform: none
CloudSubPlatform: config
Date: Thu Aug 15 18:42:03 2024
ProcEnviron:
- LANG=en_US.UTF-8
- PATH=(custom, no user)
- SHELL=/bin/bash
- TERM=xterm-256color
- XDG_RUNTIME_DIR=<set>
+ LANG=en_US.UTF-8
+ PATH=(custom, no user)
+ SHELL=/bin/bash
+ TERM=xterm-256color
+ XDG_RUNTIME_DIR=<set>
SourcePackage: llvm-defaults
UpgradeStatus: No upgrade log present (probably fresh install)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2077130
Title:
libgcc-14-dev breaks clang++ build and link
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/llvm-defaults/+bug/2077130/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs