https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68873
Bug ID: 68873 Summary: excessive duplicate checking during build Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- I just did a non-bootstrap build of gcc trunk. Configure line used was ../src/trunk/configure --prefix=/home/dcb/gcc/results \ --disable-bootstrap \ --disable-multilib \ --disable-werror \ --enable-checking=yes \ --enable-languages=c,c++,fortran I also did sed 's/-O2/-O3 -march=native -Wlogical-op/' < Makefile > Makefile.tmp mv Makefile.tmp Makefile and I collected the results of the build into a file called mk.out $ (date;ulimit -t 1200;make -j 2;date) > mk.out 2>&1 & Then I did $ grep "^checking" mk.out | sort | uniq -c | sort -rn > /tmp/00 $ head /tmp/00 26 checking how to hardcode library paths into programs... immediate 24 checking whether we are cross compiling... no 23 checking whether the C compiler works... yes 23 checking for x86_64-pc-linux-gnu-ranlib... ranlib 23 checking for egrep... /usr/bin/grep -E 21 checking whether to enable maintainer-specific portions of Makefiles... no 21 checking for a BSD-compatible install... /usr/bin/install -c 19 checking whether to build shared libraries... yes 19 checking whether ln -s works... yes 19 checking for x86_64-pc-linux-gnu-ar... ar $ which means that a non-bootstrap build checks 26 times how to hardcode library paths into programs, checks 24 times if we are cross compiling etc Seems like a lot of pointless duplication to me. I can only assume a bootstrap build would have bigger duplication. I suspect a small shell or perl script could collect this information into a file once at the start, and various parts of the build could interrogate the data file when they need to.