pgsql: Have dtrace depend on object files directly, not objfiles.txt

Started by Robert Haasabout 10 years ago6 messages
#1Robert Haas
rhaas@postgresql.org

Have dtrace depend on object files directly, not objfiles.txt

Per Mark Johnston, this resolves a build error on FreeBSD related
to the fact that dtrace is modifying the generated object files
under the hood. Consequently, without this, dtrace gets reinvoked
at install time because the object files have been updated. This
is a pretty hacky fix, but it shouldn't hurt anything, and it's
not clear that it's worth expending any more effort for a feature
that not too many people are using.

Patch by Mark Johnston. This is arguably back-patchable as a bug
fix to the build system, but I'm not certain enough of the
consequences to try that. Let's see what the buildfarm (and
our packagers) think of this change on master first.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/73537828537239923a0f827a92b20502a3efa52d

Modified Files
--------------
src/backend/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#1)
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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#2)
Re: [COMMITTERS] pgsql: Have dtrace depend on object files directly, not objfiles.txt

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#3)
Re: [COMMITTERS] pgsql: Have dtrace depend on object files directly, not objfiles.txt

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#4)
Re: [COMMITTERS] pgsql: Have dtrace depend on object files directly, not objfiles.txt

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#5)
Re: Re: [COMMITTERS] pgsql: Have dtrace depend on object files directly, not objfiles.txt

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers