> Meanwhile, this may work as an appropriate wording that still > permits IRIX behavior, by stating that recursive expansion is > only specified for parenthesized variables that are not one > of the five internal macros (@, %, ?, <, *), and only when > nested with () or {}: > > Change line 95800: > "The parentheses or braces are optional if string1 is a > single character." > to: > "The parentheses or braces are optional if string1 is a > single character, except when the expansion is nested inside > another macro expansion." > > Lines 95801-95802 and 95807-95808 both contain: > "If string1 in a macro expansion contains a macro expansion, > the results are unspecified." > In both cases, replace them with: > "If string1 in a macro expansion contains a macro expansion > where the inner expansion uses parenthesis or braces and is > not an internal macro, that inner macro expansion shall be > recursively expanded before use. > Any other form of macro expansion in string1 has unspecified results." > > as well as listing in the rationale examples such as $($(@)_FLAGS) and > $(V$O) that are unspecified.
$($...@_flags) is a very useful, as it allows target-specific flags. For me, this would be a major reason for including recursive macro expansion in the first place. According to Wikipedia, SGI end-of-lifed IRIX in 2006; last deliveries of IRIX based systems were early 2007. It would surprise me if IRIX supported a current POSIX standard; I would find it a shame to include these limitations solely for its benefit. Konrad Schwarz