Re: make --enable-depend the default

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: make --enable-depend the default
Date: 2013-08-01 14:06:08
Message-ID: 20130801140608.GL19053@alap2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2013-08-01 08:34:51 -0400, Tom Lane wrote:
> Andres Freund <andres(at)2ndquadrant(dot)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 && time make -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(at)sss1 pgsql]$ time make -s clean
>
> real 0m1.613s
> user 0m0.994s
> sys 0m0.254s
> [postgres(at)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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2013-08-01 14:17:04 Re: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])
Previous Message Andres Freund 2013-08-01 14:02:57 Re: Re: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])