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
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]) |