[Bug other/68873] New: excessive duplicate checking during build
dcb314 at hotmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Dec 12 10:36:00 GMT 2015
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.
More information about the Gcc-bugs
mailing list