Discussion:
[1003.1(2013)/Issue7+TC1 0000857]: Make rules which do not create the target file or do unexpected things with its timestamp
Austin Group Bug Tracker
2014-09-11 16:18:40 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2351
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-11 16:18 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002376) geoffclare (manager) - 2014-09-11 16:18
http://austingroupbugs.net/view.php?id=857#c2376
----------------------------------------------------------------------
On page 2937 line 97106 section make, change from:

A target is considered out-of-date if it is older than any of its
prerequisites or if it does not exist.

to:

A target is considered out-of-date if it does not exist, any of its
prerequisites do not exist and have not been made up-to-date by the current
invocation of <i>make</i>, it is older than any of its existing
prerequisites, or if any of its existing prerequisites are out-of-date. A
target may also be considered out-of-date when it has the same timestamp as
any of its prerequisites that have not been made up-to-date by the current
invocation of <i>make</i>.

On page 2937 line 97112 section make, change from:

If there are no commands listed for the target, the target shall be treated
as up-to-date.

to:

If there are no commands listed for the target entry, the target shall be
treated as up-to-date. If a file corresponding to the target does not
exist after the target has been successfully brought up-to-date, the target
shall be treated as being newer than any target for which it is a
prerequisite.

When no rule matches a target for which a corresponding file exists, the
target shall be treated as up-to-date. It shall be an error if <i>make</i>
attempts to bring a target up-to-date, the target does not exist, and there
is neither a target rule nor an inference rule for that target.

On page 2948 line 97603 add a new paragraph to the APPLICATION USAGE:

Shell command sequences like "make; cp original copy; make" may have
problems on filesystems where the timestamp resolution is the minimum (1
second) required by the standard and where make considers identical
timestamps to be up to date. Conversely, rules like "copy: original; cp
-p original copy" will result in redundant work on make implementations
that consider identical timestamps to be out of date.

On page 2954 line 97847 add a new paragraph to the RATIONALE:

On most historic systems, the <i>make</i> utility considered a target with
a prerequisite that had an identical timestamp up-to-date. The HP-UX
implementation of make treated it as out-of-date. The standard now allows
either behavior, but implementations are encouraged to follow the example
set by HP-UX. This is especially important on filesystems where the
timestamp resolution is the minimum (1 second) required by the standard.
All implementations of make should make full use of the finest timestamp
resolution available on the filesystems holding targets and prerequisites
to ensure that targets are up-to-date even for prerequisite files with
timestamps that were updated within the same second.

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
======================================================================
Austin Group Bug Tracker
2014-09-11 16:20:36 UTC
Permalink
The following issue has been UPDATED.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-11 16:20 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
======================================================================
Austin Group Bug Tracker
2014-09-12 06:31:05 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2351
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-11 16:18 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002376) geoffclare (manager) - 2014-09-11 16:18
http://austingroupbugs.net/view.php?id=857#c2376
----------------------------------------------------------------------
On page 2937 line 97106 section make, change from:

A target is considered out-of-date if it is older than any of its
prerequisites or if it does not exist.

to:

A target is considered out-of-date if it does not exist, any of its
prerequisites do not exist and have not been made up-to-date by the current
invocation of <i>make</i>, it is older than any of its existing
prerequisites, or if any of its existing prerequisites are out-of-date. A
target may also be considered out-of-date when it has the same timestamp as
any of its prerequisites that have not been made up-to-date by the current
invocation of <i>make</i>.

On page 2937 line 97112 section make, change from:

If there are no commands listed for the target, the target shall be treated
as up-to-date.

to:

If there are no commands listed for the target entry, the target shall be
treated as up-to-date. If a file corresponding to the target does not
exist after the target has been successfully brought up-to-date, the target
shall be treated as being newer than any target for which it is a
prerequisite.

When no rule matches a target for which a corresponding file exists, the
target shall be treated as up-to-date. It shall be an error if <i>make</i>
attempts to bring a target up-to-date, the target does not exist, and there
is neither a target rule nor an inference rule for that target.

On page 2948 line 97603 add a new paragraph to the APPLICATION USAGE:

Shell command sequences like "make; cp original copy; make" may have
problems on filesystems where the timestamp resolution is the minimum (1
second) required by the standard and where make considers identical
timestamps to be up to date. Conversely, rules like "copy: original; cp
-p original copy" will result in redundant work on make implementations
that consider identical timestamps to be out of date.

On page 2954 line 97847 add a new paragraph to the RATIONALE:

On most historic systems, the <i>make</i> utility considered a target with
a prerequisite that had an identical timestamp up-to-date. The HP-UX
implementation of make treated it as out-of-date. The standard now allows
either behavior, but implementations are encouraged to follow the example
set by HP-UX. This is especially important on filesystems where the
timestamp resolution is the minimum (1 second) required by the standard.
All implementations of make should make full use of the finest timestamp
resolution available on the filesystems holding targets and prerequisites
to ensure that targets are up-to-date even for prerequisite files with
timestamps that were updated within the same second.

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
======================================================================
Austin Group Bug Tracker
2014-09-12 06:31:05 UTC
Permalink
The following issue has been UPDATED.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-11 16:20 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
======================================================================
Austin Group Bug Tracker
2014-09-12 08:55:58 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-12 08:55 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002383) Konrad_Schwarz (reporter) - 2014-09-12 08:55
http://austingroupbugs.net/view.php?id=857#c2383
----------------------------------------------------------------------
The proposed change of Note 2376 for line 97106 has the problem that it
does not cover the case that a prerequisite does not exist.

This is easily rectified by using the following wording, as proposed in my
E-mail from September 10, 2014.
A target is considered out-of-date if it does not exist, is older than
any of its existing prerequisites, or if any of its prerequisites are
out-of-date. A target may also be considered out-of-date if it is as
old
as any of its existing prerequisites.
Also the wording in Note 2376 assumes that make rechecks the
time stamps of its targets during execution. My understanding has always
been that Make operates in two passes:

In the first pass, Make generates a dependency tree among its targets
using the prerequisite information,
and determines which targets are out-of-date.

In the second pass, Make executes the command blocks for the out-of-date
targets -- but only for those targets listed on the command line or the
default target and their prerequisites.

It is not an error for no command block to exist for such a target listed
in a
rule (but it is an error for a non-existing prerequisite to have
no explicit rule and no applicable automatic rule). During this pass,
file timestamps are not reexamined and the dependency tree is not
modified.

This two pass implementation manifests itself in the different ways macros
are expanded in dependency lines and command blocks. In dependency lines,
the current value of the macro is used, as defined just before reading
the dependency line. This corresponds to how variables are used in
conventional sequential programming semantics.
For command blocks however, the _final_ value
of the macro, as set after reading the entire Makefile and any included
files, is used.

It follows that the suggested change to line 97112 is superfluous
if not incorrect. If anything, I would add to the original line 97112:

It is an error if there is neither a target rule nor an inference rule for
a
non-existing target to be built by make.

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
2014-09-11 16:37 geoffclare Note Edited: 0002376
2014-09-12 08:55 Konrad_Schwarz Note Added: 0002383
======================================================================
Geoff Clare
2014-09-15 09:52:32 UTC
Permalink
Post by Austin Group Bug Tracker
----------------------------------------------------------------------
(0002383) Konrad_Schwarz (reporter) - 2014-09-12 08:55
http://austingroupbugs.net/view.php?id=857#c2383
----------------------------------------------------------------------
The proposed change of Note 2376 for line 97106 has the problem that it
does not cover the case that a prerequisite does not exist.
This is easily rectified by using the following wording, as proposed in my
E-mail from September 10, 2014.
A target is considered out-of-date if it does not exist, is older than
any of its existing prerequisites, or if any of its prerequisites are
out-of-date. A target may also be considered out-of-date if it is as
old
as any of its existing prerequisites.
The wording in note 2376 has various other improvements that should be
kept. I think the simplest fix would be to remove the word "existing"
from the last part of the first sentence. That sentence would then be:

A target is considered out-of-date if it does not exist and has
not already been made up-to-date by the current invocation of make,
if it is older than any of its existing prerequisites, or if any
of its prerequisites are out-of-date.
Post by Austin Group Bug Tracker
Also the wording in Note 2376 assumes that make rechecks the
time stamps of its targets during execution.
See note 2340.
--
Geoff Clare <g.clare-7882/***@public.gmane.org>
The Open Group, Apex Plaza, Forbury Road, Reading, RG1 1AX, England
Austin Group Bug Tracker
2014-09-15 10:24:59 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-15 10:24 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002388) Konrad_Schwarz (reporter) - 2014-09-15 10:24
http://austingroupbugs.net/view.php?id=857#c2388
----------------------------------------------------------------------
As Geoff Clare and Note 2340 point out, Make rechecks the
time stamps of its targets during execution, in contrast
to my assertion in the previous note.

The seminal document (Make — A Program for Maintaining Computer
Programs,
S.I. Feldman) states this as follows:

The basic operation of make is to update a target file by ensuring that
all of the files on which it depends exist and are up to date, then
creating the target if it has not been modified since its dependents were.

So I think it is safe and proper to codify this behavior into the
specification.

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
2014-09-11 16:37 geoffclare Note Edited: 0002376
2014-09-12 08:55 Konrad_Schwarz Note Added: 0002383
2014-09-15 10:24 Konrad_Schwarz Note Added: 0002388
======================================================================
Austin Group Bug Tracker
2014-09-18 15:04:35 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Resolved
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
Resolution: Accepted As Marked
Fixed in Version:
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-18 15:04 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002390) rhansen (reporter) - 2014-09-18 15:04
http://austingroupbugs.net/view.php?id=857#c2390
----------------------------------------------------------------------
I have some revisions to http://austingroupbugs.net/view.php?id=857#c2376 in
progress; I will post them when
they're ready.

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
2014-09-11 16:37 geoffclare Note Edited: 0002376
2014-09-12 08:55 Konrad_Schwarz Note Added: 0002383
2014-09-15 10:24 Konrad_Schwarz Note Added: 0002388
2014-09-18 15:04 rhansen Note Added: 0002390
======================================================================
Austin Group Bug Tracker
2014-09-18 15:05:28 UTC
Permalink
The following issue is UNDER REVIEW.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Under Review
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-18 15:05 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
2014-09-11 16:37 geoffclare Note Edited: 0002376
2014-09-12 08:55 Konrad_Schwarz Note Added: 0002383
2014-09-15 10:24 Konrad_Schwarz Note Added: 0002388
2014-09-18 15:04 rhansen Note Added: 0002390
2014-09-18 15:05 nick Status Resolved => Under
Review
2014-09-18 15:05 nick Resolution Accepted As Marked =>
Reopened
======================================================================
Austin Group Bug Tracker
2014-09-18 16:59:24 UTC
Permalink
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=857
======================================================================
Reported By: jammule
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 857
Category: Shell and Utilities
Type: Omission
Severity: Comment
Priority: normal
Status: Under Review
Name: Jarmo Jaakkola
Organization:
User Reference:
Section: make
Page Number: 2937
Line Number: 97105-97113
Interp Status: ---
Final Accepted Text: http://austingroupbugs.net/view.php?id=857#c2376
======================================================================
Date Submitted: 2014-07-08 10:14 UTC
Last Modified: 2014-09-18 16:59 UTC
======================================================================
Summary: Make rules which do not create the target file or do
unexpected things with its timestamp
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0000523 Add support for special target .PHONY i...
related to 0000763 If rule has no prerequisites or command...
======================================================================

----------------------------------------------------------------------
(0002393) rhansen (reporter) - 2014-09-18 16:59
http://austingroupbugs.net/view.php?id=857#c2393
----------------------------------------------------------------------
On page 2937 lines 97106-97107 (make Extended Description), change from:
<blockquote>A target is considered out-of-date if it is older than any of
its prerequisites or if it does not exist.</blockquote>
to:
<blockquote>A target shall be considered up-to-date if it exists and is
newer than all of its dependencies, or if it has already been made
up-to-date by the current invocation of <i>make</i> (regardless of the
target's existence or age). A target may also be considered up-to-date if
it exists and is not older than any of its prerequisites.</blockquote>
On page 2937 lines 97111-97113 (make Extended Description), change from:
<blockquote>After <i>make</i> has ensured that all of the prerequisites of
a target are up-to-date and if the target is out-of-date, the commands
associated with the target entry shall be executed. If there are no
commands listed for the target, the target shall be treated as
up-to-date.</blockquote>
to:
<blockquote>To ensure that a target is up-to-date, <i>make</i> shall ensure
that all of the prerequisites of a target are up-to-date, then check to see
if the target itself is up-to-date. If the target is not up-to-date, the
target shall be made up-to-date by executing the rule's commands (if any).
If the target does not exist after the target has been successfully made
up-to-date, the target shall be treated as being newer than any target for
which it is a prerequisite.

If a prerequisite exists but does not have its own rule, the prerequisite
shall be considered up-to-date. It shall be an error if make attempts to
ensure that a prerequisite up-to-date but the prerequisite does not exist
and there is neither a target rule nor an inference rule for the
prerequisite.</blockquote>
After page 2948 line 97603 add a new paragraph to the APPLICATION USAGE:
<blockquote>Shell command sequences like "make; cp original copy; make" may
have problems on filesystems where the timestamp resolution is the minimum
(1 second) required by the standard and where make considers identical
timestamps to be up to date. Conversely, rules like "copy: original; cp -p
original copy" will result in redundant work on make implementations that
consider identical timestamps to be out of date.</blockquote>
After page 2954 line 97847 add a new paragraph to the RATIONALE:
<blockquote>On most historic systems, the make utility considered a target
with a prerequisite that had an identical timestamp up-to-date. The HP-UX
implementation of make treated it as out-of-date. The standard now allows
either behavior, but implementations are encouraged to follow the example
set by HP-UX. This is especially important on filesystems where the
timestamp resolution is the minimum (1 second) required by the standard.
All implementations of make should make full use of the finest timestamp
resolution available on the filesystems holding targets and prerequisites
to ensure that targets are up-to-date even for prerequisite files with
timestamps that were updated within the same second.</blockquote>

Issue History
Date Modified Username Field Change
======================================================================
2014-07-08 10:14 jammule New Issue
2014-07-08 10:14 jammule Name => Jarmo Jaakkola
2014-07-08 10:14 jammule Section => make
2014-07-08 10:14 jammule Page Number => 2937
2014-07-08 10:14 jammule Line Number => 97105-97113
2014-07-08 10:24 jammule Issue Monitored: jammule
2014-07-08 10:25 jammule Issue End Monitor: jammule
2014-08-07 16:18 eblake Note Added: 0002335
2014-08-07 16:18 eblake Relationship added related to 0000523
2014-08-07 17:16 mdempsky Note Added: 0002336
2014-08-07 17:17 mdempsky Note Added: 0002337
2014-08-08 10:41 antoinel Note Added: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:42 antoinel Note Edited: 0002338
2014-08-08 10:43 antoinel Note Edited: 0002338
2014-08-08 10:44 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:47 antoinel Note Edited: 0002338
2014-08-08 10:51 antoinel Note Edited: 0002338
2014-08-08 11:44 jammule Note Added: 0002340
2014-08-08 11:47 jammule Note Edited: 0002340
2014-08-08 12:22 eblake Relationship added related to 0000763
2014-08-08 17:10 mdempsky Note Added: 0002343
2014-08-21 15:35 geoffclare Note Added: 0002351
2014-08-21 15:39 geoffclare Interp Status => ---
2014-08-21 15:39 geoffclare Final Accepted Text =>
http://austingroupbugs.net/view.php?id=857#c2351
2014-08-21 15:39 geoffclare Status New => Resolved
2014-08-21 15:39 geoffclare Resolution Open => Accepted As
Marked
2014-08-21 15:39 geoffclare Tag Attached: tc2-2008
2014-08-21 16:13 eggert Note Added: 0002353
2014-08-22 09:20 geoffclare Note Edited: 0002351
2014-09-04 16:06 geoffclare Note Edited: 0002351
2014-09-04 16:07 geoffclare Note Added: 0002372
2014-09-05 08:33 jammule Note Added: 0002373
2014-09-05 08:34 jammule Note Edited: 0002373
2014-09-05 08:35 jammule Note Edited: 0002373
2014-09-05 08:36 jammule Note Edited: 0002373
2014-09-05 08:37 jammule Note Edited: 0002373
2014-09-11 16:18 geoffclare Note Added: 0002376
2014-09-11 16:20 geoffclare Final Accepted Text
http://austingroupbugs.net/view.php?id=857#c2351 =>
http://austingroupbugs.net/view.php?id=857#c2376
2014-09-11 16:37 geoffclare Note Edited: 0002376
2014-09-12 08:55 Konrad_Schwarz Note Added: 0002383
2014-09-15 10:24 Konrad_Schwarz Note Added: 0002388
2014-09-18 15:04 rhansen Note Added: 0002390
2014-09-18 15:05 nick Status Resolved => Under
Review
2014-09-18 15:05 nick Resolution Accepted As Marked =>
Reopened
2014-09-18 16:59 rhansen Note Added: 0002393
======================================================================
Loading...