gluonfx-maven-plugin: Error while linking: undefined reference to `Java_com_sun_pisces_PiscesRenderer_

GraalVM: graalvm-svm-java17-linux-gluon-22.0.0.3-Final or graalvm-svm-java11-linux-gluon-22.0.0.3-Final Plugin version: 1.0.14-SNAPSHOT JavaFX: 18

I get the following error messages (and more related to the PiscesRenderer) when linking

[INFO] --- gluonfx-maven-plugin:1.0.14-SNAPSHOT:link (default-cli) @ comlink6 ---
[Fr. Apr. 08 21:54:18 MESZ 2022][INFORMATION] ==================== LINK TASK ====================
[Fr. Apr. 08 21:54:19 MESZ 2022][INFORMATION] [SUB] /usr/bin/ld: /home/prelle/git/CommLink/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1649447605708/de.rpgframework.shadowrun6.comlink.comlinkmain.o:(.data+0xb8): undefined reference to `Java_com_sun_pisces_PiscesRenderer_fillRectImpl'
[Fr. Apr. 08 21:54:19 MESZ 2022][INFORMATION] [SUB] /usr/bin/ld: /home/prelle/git/CommLink/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1649447605708/de.rpgframework.shadowrun6.comlink.comlinkmain.o:(.data+0xc8): undefined reference to `Java_com_sun_pisces_PiscesRenderer_setRadialGradientImpl'
[Fr. Apr. 08 21:54:19 MESZ 2022][INFORMATION] [SUB] /usr/bin/ld: /home/prelle/git/CommLink/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1649447605708/de.rpgframework.shadowrun6.comlink.comlinkmain.o:(.data+0x390): undefined reference to `Java_com_sun_pisces_PiscesRenderer_setTextureImpl'
...

I guess this is related to the removal of the Pisces Rasterizer ( https://bugs.openjdk.java.net/browse/JDK-8196079 ) in Java 11. My previous working native compiled version used a Java 8 GraalVM.

Is there anything I can do to circumvent this?

Edit: Linking for Android works (Java11 and 17)

Edit 2: It seems to work with Github Actions and ubuntu-latest

    - name: setup-graalvm-ce
      uses: gluonhq/setup-graalvm@master
      with:
        graalvm: '22.0.0.3-Final'
        jdk: 'java17'

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 17 (6 by maintainers)

Most upvoted comments

public static void main(String[] args) {
        System.setProperty("prism.verbose", "true");
        launch(args);
    }

should work.

Anyhow, looks like your system doesn’t support hardware acceleration and falls back to software acceleration, which is the one that requires pisces.

Can you try:

public static void main(String[] args) {
        System.setProperty("prism.forceGPU", "true");
        System.setProperty("prism.verbose", "true");
        launch(args);
    }

and see if it makes a difference?

Did you try <enableSWRendering>true</enableSWRendering> in the pom’s configuration?

com_sun_pisces classes are part of libprism_sw.so