Re: make --enable-depend the default - Mailing list pgsql-hackers

From Andres Freund
Subject Re: make --enable-depend the default
Date
Msg-id 20130801140608.GL19053@alap2.anarazel.de
Whole thread Raw
In response to Re: make --enable-depend the default  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 2013-08-01 08:34:51 -0400, Tom Lane wrote:
> Andres Freund <andres@2ndquadrant.com> writes:
> > People, including me, every now and then forget to pass --enable-depend
> > to configure (when not using my own environment). Which then leads to
> > strange errors that cost time to track down...
> 
> > Thus I'd like to enable dependency tracking by default. Given todays
> > computing powers there doesn't seem to be much reason not to do so.
> 
> > Any arguments against?
> 
> Yes: it's a waste of resources for one-shot builds, which is what most
> people not reading this list do (and by asking here, you're biasing
> your poll).

I think the difference is resource usage is minimal enough for those
cases to not really matter. We only seem to support gcc's in-line
generation, so there's no separate gcc invocation for dependency
generation.

rm -rf /tmp/pgbuild/* && mkdir -p /tmp/pgbuild/ && cd /tmp/pgbuild && \  ~/src/postgresql/configure --enable-depend &&
timemake -j3 -s
 

All of PostgreSQL successfully made. Ready to install.
real   2m33.248s
user   3m58.657s
sys    0m26.282s

Without --enable-depend:
All of PostgreSQL successfully made. Ready to install.

real   2m32.853s
user   3m57.639s
sys    0m25.741s

ccached, fully cached:

make clean && time make -j3 -s:
real    0m7.394s
user    0m8.446s
sys     0m3.800s

without dependencies:
real    0m6.484s
user    0m7.824s
sys     0m3.278s

So if anything, that's the painpoint.

> Personally I always do "make clean", if not "make distclean", after a git
> pull.  If you're using ccache it's incredibly cheap to just rebuild the
> whole tree every time, and I trust the results a lot more than I do
> --enable-depend.

Funnily I repeatedly had problems that could only be solved by clearing
ccache's cache... I am not really worried about rebuilds after a pull,
but more about iterative rebuilds while writing code. Including header
changes.

> [postgres@sss1 pgsql]$ time make -s clean
> 
> real    0m1.613s
> user    0m0.994s
> sys     0m0.254s
> [postgres@sss1 pgsql]$ time make -s -j8  
> In file included from gram.y:13635:
> scan.c: In function 'yy_try_NUL_trans':
> scan.c:10167: warning: unused variable 'yyg'
> All of PostgreSQL successfully made. Ready to install.
> 
> real    0m2.483s
> user    0m6.693s
> sys     0m2.123s
> 
> (make installcheck-parallel takes 13.6 seconds on this machine...)

Hrmpf. It takes longer than that for me. I need a new laptop...

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Re: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])
Next
From: Greg Stark
Date:
Subject: Re: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])