Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: jruby vs jdk updates
To:
Theo Buehler <tb@theobuehler.org>
Cc:
ports@openbsd.org, kurt@openbsd.org, jeremy@openbsd.org
Date:
Mon, 2 Feb 2026 15:04:19 +0000

Download raw body.

Thread
  • Klemens Nanni:

    jruby vs jdk updates

  • Stuart Henderson:

    jruby vs jdk updates

  • On 2026/02/02 12:21, Theo Buehler wrote:
    > jruby has a file containing the jdk version. whenever the jdk/21 minor
    > version changes, jruby no longer packages. I fixed this up a couple of
    > times recently but I wonder if there's a better way of handling this.
    > 
    > At least there should be a comment in jdk/21.
    
    The .jsa file doesn't seem to work correctly anyway.
    
    Firstly it doesn't seem to be picked up automatically, only if you pass
    the path via JAVA_OPTS.
    
    Secondly if it is present and used with
    
    JAVA_OPTS="-XX:SharedArchiveFile=/usr/local/jruby/lib/jruby-java21.0.9.jsa"
    
    (adjust as necessary for version), it's tied to a very specific jdk build
    - I tried installing the current jruby package with jdk already installed,
    and got this
    
    [0.067s][warning][cds] The shared archive file was created by a different version or build of HotSpot
    
    Adding -Xlog:cds gave more information:
    
    $ VERIFY_JRUBY=1 JAVA_OPTS="-XX:SharedArchiveFile=/usr/local/jruby/lib/jruby-java21.0.9.jsa -Xlog:cds " time jruby --dev -e 1
    [0.063s][info][cds] trying to map /usr/local/jdk-21/lib/server/classes.jsa
    [0.063s][info][cds] Opened archive /usr/local/jdk-21/lib/server/classes.jsa.
    [0.063s][info][cds] Archive was created with UseCompressedOops = 1, UseCompressedClassPointers = 1
    [0.063s][info][cds] Core region alignment: 4096
    [0.063s][info][cds] trying to map /usr/local/jruby/lib/jruby-java21.0.9.jsa
    [0.063s][info][cds] Opened archive /usr/local/jruby/lib/jruby-java21.0.9.jsa.
    [0.063s][info][cds] _jvm_ident expected: OpenJDK 64-Bit Server VM (21.0.9+10-1) for bsd-amd64 JRE (21.0.9+10-1), built on 2026-01-27T17:33:34Z by "pbuild" with clang OpenBSD Clang 19.1.7
    [0.064s][info][cds]              actual: OpenJDK 64-Bit Server VM (21.0.9+10-1) for bsd-amd64 JRE (21.0.9+10-1), built on 2026-01-30T04:56:02Z by "pbuild" with clang OpenBSD Clang 19.1.7
    [0.064s][warning][cds] The shared archive file was created by a different version or build of HotSpot
    [0.064s][info   ][cds] Initialize dynamic archive failed.
    <snip>
    
    Even with the matching jdk version for the jsa installed, there seems to
    be no difference in startup time anyway.
    
    So at this point I think @comment'ing the jsa file in jruby would not
    degrade things and is probably the simplest approach.
    
    
  • Klemens Nanni:

    jruby vs jdk updates

  • Stuart Henderson:

    jruby vs jdk updates