RFR(XXS): 8057129: Fix AIX build after the Extend CompileCommand=option change 8055286

Volker Simonis volker.simonis at gmail.com
Wed Sep 3 12:48:49 UTC 2014


Hi,

could somebody please review and sponsor this tiny change which fixes
an AIX build failure after "8055286: Extend CompileCommand=option to
handle numeric parameters" (details see below).

It would be nice if this fix could be pushed to hs-comp before hs-comp
gets pushed to the other hs repos:

http://cr.openjdk.java.net/~simonis/webrevs/8057129/
https://bugs.openjdk.java.net/browse/JDK-8057129

The AIX xlC compiler is overly picky with regard to section 14.6.4.2
"Candidate functions" of the C++ standard (see
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf)
which states:

"If the function name is an unqualified-id and the call would be
ill-formed or would find a better match had the lookup within the
associated namespaces considered all the function declarations with
external linkage introduced in those namespaces in all translation
units, not just considering those declarations found in the template
definition and template instantiation contexts, then the program has
undefined behavior."

xlC implements this by not taking into account static functions which
have internal linkage and terminates with the error message:

"hotspot-comp/src/share/vm/compiler/compilerOracle.cpp", line 364.10:
1540-0274 (S) The name lookup for "get_option_value" did not find a
declaration.
"hotspot-comp/src/share/vm/compiler/compilerOracle.cpp", line 364.10:
1540-1292 (I) Static declarations are not considered for a function
call if the function is not qualified.

The fix is trivial - just qualify the call to "get_option_value" like this:

  return ::get_option_value(method, option, value);

Thank you and best regards,
Volker


More information about the hotspot-dev mailing list