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

C2 vectorizedHashCode intrinsic doesn't work on some ARM boards

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 24, 25
    • hotspot

      On linux running on a ARM Cortex A53, staring a simple hello world (in source mode) results in a crash while javac is compiling the input file:

      $ jdk-24/bin/java A.java
      An exception has occurred in the compiler ((version info not available)). Please file a bug against the Java compiler via the Java bug reporting page (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
      java.lang.NoClassDefFoundError: com/sun/tools/javac/jvm/ClassReader$AttributeReader
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.initAttributeReaders(ClassReader.java:886)
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.<init>(ClassReader.java:309)
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:271)
              at jdk.compiler/com.sun.tools.javac.code.ClassFinder.<init>(ClassFinder.java:186)
              at jdk.compiler/com.sun.tools.javac.code.ClassFinder.instance(ClassFinder.java:178)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:396)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:129)
              at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.<init>(JavacProcessingEnvironment.java:208)
              at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.instance(JavacProcessingEnvironment.java:193)
              at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:218)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:204)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.parseInternal(JavacTaskImpl.java:257)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:248)
              at jdk.compiler/com.sun.tools.javac.launcher.ProgramDescriptor.of(ProgramDescriptor.java:71)
              at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.run(SourceLauncher.java:132)
              at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.main(SourceLauncher.java:76)
      Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.jvm.ClassReader$AttributeReader
              at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
              at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
              ... 17 more
      Exception in thread "main" java.lang.IllegalStateException: java.lang.NoClassDefFoundError: com/sun/tools/javac/jvm/ClassReader$AttributeReader
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:252)
              at jdk.compiler/com.sun.tools.javac.launcher.ProgramDescriptor.of(ProgramDescriptor.java:71)
              at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.run(SourceLauncher.java:132)
              at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.main(SourceLauncher.java:76)
      Caused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/jvm/ClassReader$AttributeReader
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.initAttributeReaders(ClassReader.java:886)
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.<init>(ClassReader.java:309)
              at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:271)
              at jdk.compiler/com.sun.tools.javac.code.ClassFinder.<init>(ClassFinder.java:186)
              at jdk.compiler/com.sun.tools.javac.code.ClassFinder.instance(ClassFinder.java:178)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:396)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:129)
              at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.<init>(JavacProcessingEnvironment.java:208)
              at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.instance(JavacProcessingEnvironment.java:193)
              at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:218)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:204)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.parseInternal(JavacTaskImpl.java:257)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
              at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:248)
              ... 3 more
      Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.jvm.ClassReader$AttributeReader
              at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
              at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
              ... 17 more

      The issue is gone when either:
      - using the -XX:-UseVectorizedHashCodeIntrinsic flag
      - or disabling compilation of jdk.internal.util.ArraysSupport::vectorizedHashCode with -XX:CompileCommand=exclude,
      - or disabling C2 by using -XX:TieredStopAtLevel=3

            Unassigned Unassigned
            gdub Gilles Duboscq
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: