Skip to content

[native-image], GraphicsEnvironment getAllFonts with --initialize-at-build-time= results in linker errors / Unsatisfied links #3416

@Karm

Description

@Karm

Describe the issue
The following code, Main.java:

import java.awt.Font;
import java.awt.GraphicsEnvironment;

public class Main {
    public static void main(String[] args) {
        for (Font font : GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts()) {
            System.out.printf("%s, %s\n", font.getFontName(), font.getFamily());
        }
    }
}

compiled as:

export JAVA_HOME=/home/karm/tmp/graal-labsjava11-build;export GRAALVM_HOME=${JAVA_HOME};export PATH=${JAVA_HOME}/bin:${PATH}
javac Main.java
java -agentlib:native-image-agent=config-output-dir=./META-INF/native-image Main
native-image --no-fallback --initialize-at-build-time= -H:DeadlockWatchdogInterval=2 --native-image-info --verbose Main

produces either an occasional deadlock on my system, see deadlock log or it crashes later during the build on undefined reference to `Java_sun_font_Freetype*, see log.

Describe GraalVM and your environment:

  • GraalVM version master 40b6448, 21.1 CE
  • JDK major version: 11
  • Labs JDK: labsjdk-ce-11.0.11-jvmci-21.2-b01-debug
  • OS: Centos 8
  • Architecture: AMD64
  • gcc 8.3.1 redhat
  • relevant system libs: freetype-2.9.1, harfbuzz-1.7.5, fontconfig-2.13.1

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions