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

Reply via email to