Package: gcc-11 Version: 11.2.0-4 Severity: normal X-Debbugs-Cc: j...@joshtriplett.org
The GCC program search dirs contain many duplicated directories. Every time GCC has to search for a file, it's doing the same searches repeatedly, and this adds up. $ gcc-11 -print-search-dirs | grep '^programs:' programs: =/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/bin/ The first five entries of this are: /usr/lib/gcc/x86_64-linux-gnu/11/ /usr/lib/gcc/x86_64-linux-gnu/11/ /usr/lib/gcc/x86_64-linux-gnu/ /usr/lib/gcc/x86_64-linux-gnu/11/ /usr/lib/gcc/x86_64-linux-gnu/ Net result, as seen in strace from just one gcc invocation: 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/x86_64-linux-gnu-as", 0x7ffe844509a0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/as", 0x7ffe844509f0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/x86_64-linux-gnu-as", 0x7ffe844509a0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/as", 0x7ffe844509f0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/x86_64-linux-gnu-as", 0x7ffe844509a0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffe844509f0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/x86_64-linux-gnu-as", 0x7ffe844509a0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/11/as", 0x7ffe844509f0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/x86_64-linux-gnu-as", 0x7ffe844509a0) = -1 ENOENT (No such file or directory) 24060 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffe844509f0) = -1 ENOENT (No such file or directory) ... 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/real-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/real-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/real-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/real-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/real-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/collect-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/collect-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/collect-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/collect-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/collect-ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/ld", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) ... 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gnm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gnm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/gnm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gnm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/gnm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) ... 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/nm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/nm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/nm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/nm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/nm", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) ... 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gstrip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gstrip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/gstrip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/gstrip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/gstrip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) ... 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/strip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/strip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/strip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/11/strip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) 24063 stat("/usr/lib/gcc/x86_64-linux-gnu/strip", 0x7ffd16d67830) = -1 ENOENT (No such file or directory) Removing the duplicate directories from the search path would eliminate these duplicate searches, which add up over the course of a large build. -- System Information: Debian Release: bookworm/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'testing'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: arm64 Kernel: Linux 5.13.0-trunk-amd64 (SMP w/8 CPU threads) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages gcc-11 depends on: ii binutils 2.37-5 ii cpp-11 11.2.0-4 ii gcc-11-base 11.2.0-4 ii libc6 2.31-17 ii libcc1-0 11.2.0-4 ii libgcc-11-dev 11.2.0-4 ii libgcc-s1 11.2.0-4 ii libgmp10 2:6.2.1+dfsg-1 ii libisl23 0.23-1 ii libmpc3 1.2.0-1 ii libmpfr6 4.1.0-3 ii libstdc++6 11.2.0-4 ii libzstd1 1.4.8+dfsg-2.1 ii zlib1g 1:1.2.11.dfsg-2 Versions of packages gcc-11 recommends: ii libc6-dev 2.31-17 Versions of packages gcc-11 suggests: pn gcc-11-doc <none> pn gcc-11-locales <none> pn gcc-11-multilib <none> -- no debconf information