-
Enhancement
-
Resolution: Fixed
-
P4
-
jfx21
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.
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.
- relates to
-
JDK-8163196 Build should fail fast with unsupported OS/ARCH
-
- Resolved
-