Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0000602 [1003.1(2008)/Issue 7] Shell and Utilities Comment Clarification Requested 2012-09-07 07:50 2019-06-10 08:55
Reporter user124 View Status public  
Assigned To ajosey
Priority normal Resolution Accepted As Marked  
Status Closed  
Name Yury Pukhalsky
Organization
User Reference
Section make
Page Number 2911
Line Number 95883-95887
Interp Status Approved
Final Accepted Text Note: 0001363
Summary 0000602: Chain inference rules
Description I've used Base_TC1_Draft3.pdf [EDIT: Page and line numbers changed to Issue 7 (2008)] for the reference.

In line 95629 it's written that:

A target is considered out-of-date if it is older than any of its prerequisites or if it does not exist. The make utility shall treat all prerequisites as targets themselves and recursively ensure that they are up-to-date…

The paragraph starting with 95883 sets forth the methods to update a target.

And more specifically, in lines starting from 95885:

If the .s1 suffix is found in .SUFFIXES, the inference rules shall be searched in the order defined for the first .s2.s1 rule whose prerequisite file ( $*.s2) exists. If the target is out-of-date with respect to this prerequisite, the commands for that inference rule shall be executed.

Therefore it sets the methods to resolve chain rules:
.a.b:

.b.c:


I understand that according to the standard if in the beginning we have only
file.a and file.b and file.c don't exist it should properly make file.b and then
file.c. While for example in the HP-UX make it's not so. In absence of
intermediate file.b the make stops with "don't know how to make" error.

See http://lists.gnu.org/archive/html/automake/2012-07/msg00054.html [^] for the
details.
Desired Action Am I right that HP-UX make behaviour violates the standard?

And also probably if my conclusions are true, this point about chain suffix rules should be clarified in the standard.
Tags tc2-2008
Attached Files

- Relationships

-  Notes
(0001363)
geoffclare (manager)
2012-09-12 16:11

Interpretation response
------------------------
The standard is unclear on this issue, and no conformance distinction
can be made between alternative implementations based on this. This is
being referred to the sponsor.

Rationale:
-------------
The behavior noticed in HP-UX does not violate what the standard
was intended to require. However, the standard could be misread
to reach the conclusion implied by this defect report. The changes
suggested below explicitly state the required behavior and allow
extensions to provide inference rule chaining when intermediate
targets are not specified in the makefile.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------

At page 2917 line 95916 change:

Its prerequisites in turn shall be processed recursively until a
target is found that has no prerequisites, at which point the
recursion stops.

to:


Its prerequisites in turn shall be processed recursively until a
target is found that has no prerequisites, or further recursion would
require applying two inference rules one immediately after the other,
at which point the recursion shall stop. As an extension,
implementations may continue recursion when two or more successive
inference rules need to be applied; however, if there are multiple
different chains of such rules that could be used to create the
target, it is unspecified which chain is used.
(0001525)
ajosey (manager)
2013-03-29 08:06

Interpretation Proposed 29 Mar 2013
(0001570)
ajosey (manager)
2013-05-03 12:18

Interpretation approved 3 May 2013

- Issue History
Date Modified Username Field Change
2012-09-07 07:50 user124 New Issue
2012-09-07 07:50 user124 Status New => Under Review
2012-09-07 07:50 user124 Assigned To => ajosey
2012-09-07 07:50 user124 Name => Yury Pukhalsky
2012-09-07 07:50 user124 Section => make
2012-09-07 07:50 user124 Page Number => 2943
2012-09-07 07:50 user124 Line Number => 97362-97366
2012-09-07 07:52 user124 Issue Monitored: user124
2012-09-12 15:26 msbrown Project 1003.1(2004)/Issue 6 => 1003.1(2008)/Issue 7
2012-09-12 15:32 msbrown Page Number 2943 => 2911
2012-09-12 15:32 msbrown Line Number 97362-97366 => 95883-95887
2012-09-12 15:32 msbrown Interp Status => ---
2012-09-12 15:32 msbrown Description Updated
2012-09-12 15:33 msbrown Description Updated
2012-09-12 15:33 msbrown Description Updated
2012-09-12 16:11 geoffclare Interp Status --- => Pending
2012-09-12 16:11 geoffclare Note Added: 0001363
2012-09-12 16:11 geoffclare Status Under Review => Interpretation Required
2012-09-12 16:11 geoffclare Resolution Open => Accepted As Marked
2012-09-12 16:12 geoffclare Final Accepted Text => Note: 0001363
2012-09-12 16:13 geoffclare Tag Attached: tc2-2008
2013-03-29 08:06 ajosey Interp Status Pending => Proposed
2013-03-29 08:06 ajosey Note Added: 0001525
2013-05-03 12:18 ajosey Interp Status Proposed => Approved
2013-05-03 12:18 ajosey Note Added: 0001570
2019-06-10 08:55 agadmin Status Interpretation Required => Closed


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker