Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8293354

fastdebug build broken after JDK-8281866

XMLWordPrintable

    • b04
    • generic
    • generic

      The 15u backport of JDK-8281866 uses vmIntrinsicID::_invokeBasic which is not available in 15u, and causes following error for the fastdebug configuration:

      ```
      /ws/openjdk/jdk15u-dev/src/hotspot/share/interpreter/linkResolver.cpp:1729:21: error: use of undeclared identifier 'vmIntrinsicID'; did you mean 'vmIntrinsics'?
            assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
                          ^~~~~~~~~~~~~
                          vmIntrinsics
      /ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:65:33: note: expanded from macro 'assert'
      #define assert(p, ...) vmassert(p, __VA_ARGS__)
                                      ^
      /ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:56:9: note: expanded from macro 'vmassert'
        if (!(p)) { \
              ^
      /ws/openjdk/jdk15u-dev/src/hotspot/share/classfile/vmSymbols.hpp:1594:7: note: 'vmIntrinsics' declared here
      class vmIntrinsics: AllStatic {
            ^
      1 error generated.
      ```

      Suggested fix:
      ```
      diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
      index c5114b7e833..842ee1dad3d 100644
      --- a/src/hotspot/share/interpreter/linkResolver.cpp
      +++ b/src/hotspot/share/interpreter/linkResolver.cpp
      @@ -1726,7 +1726,7 @@ void LinkResolver::resolve_handle_call(CallInfo& result,
           if (MethodHandles::is_signature_polymorphic_intrinsic(iid)) {
             // Check if method can be accessed by the referring class.
             // MH.linkTo* invocations are not rewritten to invokehandle.
      - assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
      + assert(iid == vmIntrinsics::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
       
             Klass* current_klass = link_info.current_klass();
             assert(current_klass != NULL , "current_klass should not be null");
      ```

            bae Andrew Brygin
            bae Andrew Brygin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: