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.

Reply via email to