Thread: Re: [COMMITTERS] pgsql: Have dtrace depend on object files directly, not objfiles.txt

Robert Haas <rhaas@postgresql.org> writes:
> Have dtrace depend on object files directly, not objfiles.txt

This patch appears to have broken parallel builds.  I get this:

$ make -j8 -s
cat: access/objfiles.txt: No such file or directory
cat: bootstrap/objfiles.txt: No such file or directory
cat: catalog/objfiles.txt: No such file or directory
cat: parser/objfiles.txt: No such file or directory
cat: commands/objfiles.txt: No such file or directory
cat: executor/objfiles.txt: No such file or directory
... lots more omitted ...
cat: storage/objfiles.txt: No such file or directory
cat: tcop/objfiles.txt: No such file or directory
cat: tsearch/objfiles.txt: No such file or directory
cat: utils/objfiles.txt: No such file or directory
In file included from gram.y:14919:
scan.c: In function 'yy_try_NUL_trans':
scan.c:10307: warning: unused variable 'yyg'
All of PostgreSQL successfully made. Ready to install.

and this:

$ make -s clean
cat: ../../src/timezone/objfiles.txt: No such file or directory

despite the fact that I'm not using dtrace.  I imagine this
comes from gmake trying to evaluate the dependencies for
utils/probes.o before all the subdirectories have been built.

Please fix or revert.
        regards, tom lane



On Thu, Oct 15, 2015 at 1:01 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <rhaas@postgresql.org> writes:
>> Have dtrace depend on object files directly, not objfiles.txt
>
> This patch appears to have broken parallel builds.  I get this:
>
> $ make -j8 -s
> cat: access/objfiles.txt: No such file or directory
> cat: bootstrap/objfiles.txt: No such file or directory
> cat: catalog/objfiles.txt: No such file or directory
> cat: parser/objfiles.txt: No such file or directory
> cat: commands/objfiles.txt: No such file or directory
> cat: executor/objfiles.txt: No such file or directory
> ... lots more omitted ...
> cat: storage/objfiles.txt: No such file or directory
> cat: tcop/objfiles.txt: No such file or directory
> cat: tsearch/objfiles.txt: No such file or directory
> cat: utils/objfiles.txt: No such file or directory
> In file included from gram.y:14919:
> scan.c: In function 'yy_try_NUL_trans':
> scan.c:10307: warning: unused variable 'yyg'
> All of PostgreSQL successfully made. Ready to install.
>
> and this:
>
> $ make -s clean
> cat: ../../src/timezone/objfiles.txt: No such file or directory
>
> despite the fact that I'm not using dtrace.  I imagine this
> comes from gmake trying to evaluate the dependencies for
> utils/probes.o before all the subdirectories have been built.
>
> Please fix or revert.

Thanks for the report.  I have reverted the patch.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Robert Haas <robertmhaas@gmail.com> writes:
> On Thu, Oct 15, 2015 at 1:01 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> This patch appears to have broken parallel builds.  I get this:

> Thanks for the report.  I have reverted the patch.

Problem's gone, so it definitely was that patch and not something else.

Curious that you didn't see something similar.  Perhaps it depends on
make version?  But I spot-checked a couple of buildfarm critters and
they both showed similar noise in the make step.
        regards, tom lane



On Thu, Oct 15, 2015 at 1:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Thu, Oct 15, 2015 at 1:01 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> This patch appears to have broken parallel builds.  I get this:
>
>> Thanks for the report.  I have reverted the patch.
>
> Problem's gone, so it definitely was that patch and not something else.
>
> Curious that you didn't see something similar.  Perhaps it depends on
> make version?  But I spot-checked a couple of buildfarm critters and
> they both showed similar noise in the make step.

Yeah, I did to a parallel make just today, on a version that included
that patch, and it did not fail.  I have:

[rhaas pgsql]$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Robert Haas <robertmhaas@gmail.com> writes:
> On Thu, Oct 15, 2015 at 1:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Curious that you didn't see something similar.  Perhaps it depends on
>> make version?  But I spot-checked a couple of buildfarm critters and
>> they both showed similar noise in the make step.

> Yeah, I did to a parallel make just today, on a version that included
> that patch, and it did not fail.  I have:

> [rhaas pgsql]$ make --version
> GNU Make 3.81
> Copyright (C) 2006  Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.

> This program built for i386-apple-darwin11.3.0

Interesting.  I have

$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu

so it's fundamentally the same gmake version.  However, this being
RHEL6, I don't doubt that Red Hat is carrying a bunch of back-ported
patches from later versions.
        regards, tom lane