https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102233
Bug ID: 102233 Summary: Compiling a smallish binary with -fanalyzer seems to cause very very long compile times Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: rjones at redhat dot com Target Milestone: --- This is not so simple to reproduce. It starts with checking out: https://github.com/libguestfs/libguestfs and compiling it. On Fedora, following the instructions here: https://libguestfs.org/guestfs-building.1.html#short-cut-for-fedora-or-red-hat-enterprise-linux-rhel-users # dnf builddep libguestfs # dnf install autoconf automake libtool gettext-devel $ git clone https://github.com/libguestfs/libguestfs $ git submodule update --init $ autoreconf -i $ ./configure CFLAGS=-fPIC $ make The thing which fails to compile is a unit test in lib/: $ make -C lib clean $ make -C lib $ make -C lib unit-tests CFLAGS="-O2 -g -fanalyzer" V=1 For me this takes a very long time linking the unit-tests binary: gcc -DHAVE_CONFIG_H -I. -I.. -I../gnulib/lib -I../gnulib/lib -I../common/utils -I../common/utils -I../common/structs -I../common/structs -I../lib -I../include -I. -Wall -Werror -I/usr/include/tirpc -O2 -g -fanalyzer -MT unit_tests-unit-tests.o -MD -MP -MF .deps/unit_tests-unit-tests.Tpo -c -o unit_tests-unit-tests.o `test -f 'unit-tests.c' || echo './'`unit-tests.c mv -f .deps/unit_tests-unit-tests.Tpo .deps/unit_tests-unit-tests.Po bash ../libtool-kill-dependency_libs.sh ../libtool --tag=CC --mode=link gcc -Wall -Werror -I/usr/include/tirpc -O2 -g -fanalyzer -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o unit-tests unit_tests-unit-tests.o ../common/structs/libstructs.la ../common/utils/libutils.la libguestfs_la-actions-0.lo libguestfs_la-actions-1.lo libguestfs_la-actions-2.lo libguestfs_la-actions-3.lo libguestfs_la-actions-4.lo libguestfs_la-actions-5.lo libguestfs_la-actions-6.lo libguestfs_la-actions-support.lo libguestfs_la-actions-variants.lo libguestfs_la-alloc.lo libguestfs_la-appliance.lo libguestfs_la-appliance-cpu.lo libguestfs_la-appliance-kcmdline.lo libguestfs_la-appliance-uefi.lo libguestfs_la-available.lo libguestfs_la-bindtests.lo libguestfs_la-canonical-name.lo libguestfs_la-command.lo libguestfs_la-conn-socket.lo libguestfs_la-copy-in-out.lo libguestfs_la-create.lo libguestfs_la-drives.lo libguestfs_la-errors.lo libguestfs_la-event-string.lo libguestfs_la-events.lo libguestfs_la-file.lo libguestfs_la-fuse.lo libguestfs_la-guid.lo libguestfs_la-handle.lo libguestfs_la-info.lo libguestfs_la-inspect-apps.lo libguestfs_la-inspect-icon.lo libguestfs_la-inspect-osinfo.lo libguestfs_la-journal.lo libguestfs_la-launch.lo libguestfs_la-launch-direct.lo libguestfs_la-launch-libvirt.lo libguestfs_la-launch-uml.lo libguestfs_la-launch-unix.lo libguestfs_la-libvirt-auth.lo libguestfs_la-libvirt-domain.lo libguestfs_la-lpj.lo libguestfs_la-match.lo libguestfs_la-mountable.lo libguestfs_la-private-data.lo libguestfs_la-proto.lo libguestfs_la-qemu.lo libguestfs_la-rescue.lo libguestfs_la-stringsbuf.lo libguestfs_la-structs-compare.lo libguestfs_la-structs-copy.lo libguestfs_la-structs-free.lo libguestfs_la-tmpdirs.lo libguestfs_la-tsk.lo libguestfs_la-uefi.lo libguestfs_la-umask.lo libguestfs_la-version.lo libguestfs_la-wait.lo libguestfs_la-whole-file.lo libguestfs_la-yara.lo ../common/errnostring/liberrnostring.la ../common/protocol/libprotocol.la ../common/qemuopts/libqemuopts.la ../common/structs/libstructs.la ../common/utils/libutils.la -lpcre2-8 -lvirt -lxml2 -lselinux -ljansson ../gnulib/lib/libgnu.la -ltirpc -lfuse -pthread libtool: link: gcc -Wall -Werror -I/usr/include/tirpc -O2 -g -fanalyzer -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o unit-tests unit_tests-unit-tests.o .libs/libguestfs_la-actions-0.o .libs/libguestfs_la-actions-1.o .libs/libguestfs_la-actions-2.o .libs/libguestfs_la-actions-3.o .libs/libguestfs_la-actions-4.o .libs/libguestfs_la-actions-5.o .libs/libguestfs_la-actions-6.o .libs/libguestfs_la-actions-support.o .libs/libguestfs_la-actions-variants.o .libs/libguestfs_la-alloc.o .libs/libguestfs_la-appliance.o .libs/libguestfs_la-appliance-cpu.o .libs/libguestfs_la-appliance-kcmdline.o .libs/libguestfs_la-appliance-uefi.o .libs/libguestfs_la-available.o .libs/libguestfs_la-bindtests.o .libs/libguestfs_la-canonical-name.o .libs/libguestfs_la-command.o .libs/libguestfs_la-conn-socket.o .libs/libguestfs_la-copy-in-out.o .libs/libguestfs_la-create.o .libs/libguestfs_la-drives.o .libs/libguestfs_la-errors.o .libs/libguestfs_la-event-string.o .libs/libguestfs_la-events.o .libs/libguestfs_la-file.o .libs/libguestfs_la-fuse.o .libs/libguestfs_la-guid.o .libs/libguestfs_la-handle.o .libs/libguestfs_la-info.o .libs/libguestfs_la-inspect-apps.o .libs/libguestfs_la-inspect-icon.o .libs/libguestfs_la-inspect-osinfo.o .libs/libguestfs_la-journal.o .libs/libguestfs_la-launch.o .libs/libguestfs_la-launch-direct.o .libs/libguestfs_la-launch-libvirt.o .libs/libguestfs_la-launch-uml.o .libs/libguestfs_la-launch-unix.o .libs/libguestfs_la-libvirt-auth.o .libs/libguestfs_la-libvirt-domain.o .libs/libguestfs_la-lpj.o .libs/libguestfs_la-match.o .libs/libguestfs_la-mountable.o .libs/libguestfs_la-private-data.o .libs/libguestfs_la-proto.o .libs/libguestfs_la-qemu.o .libs/libguestfs_la-rescue.o .libs/libguestfs_la-stringsbuf.o .libs/libguestfs_la-structs-compare.o .libs/libguestfs_la-structs-copy.o .libs/libguestfs_la-structs-free.o .libs/libguestfs_la-tmpdirs.o .libs/libguestfs_la-tsk.o .libs/libguestfs_la-uefi.o .libs/libguestfs_la-umask.o .libs/libguestfs_la-version.o .libs/libguestfs_la-wait.o .libs/libguestfs_la-whole-file.o .libs/libguestfs_la-yara.o -pthread ../common/errnostring/.libs/liberrnostring.a ../common/protocol/.libs/libprotocol.a ../common/qemuopts/.libs/libqemuopts.a ../common/structs/.libs/libstructs.a ../common/utils/.libs/libutils.a -lpcre2-8 -lvirt -lxml2 -lselinux -ljansson ../gnulib/lib/.libs/libgnu.a -ltirpc -lfuse -pthread