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

Let JavaFX be built on unknown architectures

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • jfx22
    • jfx21
    • javafx
    • 9
    • b05
    • unknown, x86, arm, ppc, s390x
    • linux

      The Gradle build file allows JavaFX to be built only on the following operating systems and hardware architectures:

        Windows
          x86
          amd64

        macOS
          x86_64
          aarch64

        Linux
          i386
          amd64
          aarch64
          loongarch64

      It does so by checking the values of the Java 'os.name' and 'os.arch' system properties. Yet JavaFX can be built successfully for Linux on other architectures, including 'arm', 'ppc64le', and 's390x'.

      SYSTEM / OS / JAVA RUNTIME INFORMATION

      The following build tools were used:

        jdk.runtime.version: 17.0.6+10-Ubuntu-0ubuntu118.04.1
        GCC version: gcc11.2.0-OL6.4+1.0
        cmake version: 3.22.3
        ninja version: 1.8.2
        ant version: 1.10.5

      STEPS TO REPRODUCE

      Build JavaFX for Linux on the following six architectures, listed below by their Java 'os.arch' system property names followed by their Debian architecture names in parenthesis:

        aarch64 (arm64)
        amd64 (amd64)
        arm (armhf)
        i386 (i386)
        ppc64le (ppc64el)
        s390x (s390x)

      Run the builds with a command like the following:

        $ bash gradlew --no-daemon sdk jmods javadoc

      EXPECTED RESULTS

      All of the builds are successful:

        BUILD SUCCESSFUL in 2m 41s
        137 actionable tasks: 137 executed

      ACTUAL RESULT

      Only two of the builds are successful:

        aarch64 (arm64)
        amd64 (amd64)

      The other four builds fail.

      The build on 'i386' fails to verify its dependencies:

        FAILURE: Build failed with an exception.

        * What went wrong:
        Execution failed for task ':swt:compileJava'.
        > Dependency verification failed for configuration ':swt:compileClasspath'
          One artifact failed verification:
            org.eclipse.swt.gtk.linux.x86_3.105.3.v20170228-0512-.jar
            (:org.eclipse.swt.gtk.linux.x86_3.105.3.v20170228-0512:)
            from repository ivy

      The builds on 'arm', 'ppc64le', and 's390x' fail to pass the architecture check:

        FAILURE: Build failed with an exception.

        * Where:
        Build file '/build/.../jfx/build/build.gradle' line: 250

        * What went wrong:
        A problem occurred evaluating root project 'build'.
        > FAIL: Unknown and unsupported build architecture: arm

        * What went wrong:
        A problem occurred evaluating root project 'build'.
        > FAIL: Unknown and unsupported build architecture: ppc64le

        * What went wrong:
        A problem occurred evaluating root project 'build'.
        > FAIL: Unknown and unsupported build architecture: s390x

        ...

        BUILD FAILED in 1m 5s
        2 actionable tasks: 2 executed

      SOURCE CODE FOR AN EXECUTABLE TEST CASE

      None.

      WORKAROUND

      None.

            jgneff John Neffenger
            jgneff John Neffenger
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: