Skip to content

Commit 2ff0b88

Browse files
authored
Add Initial RISCV support (#1208)
Add support for targeting Linux riscv64 - Updates jssc to snapshot version - Updates hid4java to snapshot version
1 parent 06567ab commit 2ff0b88

File tree

9 files changed

+45
-1
lines changed

9 files changed

+45
-1
lines changed

ant/javafx.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,11 @@
191191
<equals arg1="${fx.arch}" arg2="aarch64"/>
192192
<equals arg1="${fx.os}" arg2="windows"/>
193193
</and>
194+
<and>
195+
<!-- TODO: Remove "riscv" to "x64" when linux riscv64 binaries become available -->
196+
<equals arg1="${fx.arch}" arg2="riscv64"/>
197+
<equals arg1="${fx.os}" arg2="linux"/>
198+
</and>
194199
</or>
195200
</condition>
196201
<property name="fx.arch.fixed" value="${fx.arch}" description="fallback value"/>

ant/linux/installer.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@
5959
<!--arm32-->
6060
<include name="**/linux-arm/*" if="target.arch.arm32"/> <!-- jna/hid4java/usb4java -->
6161
<include name="**/linux_arm/*" if="target.arch.arm32"/> <!-- jssc -->
62+
<!--riscv64-->
63+
<include name="**/linux-riscv64/*" if="target.arch.riscv64"/> <!-- jna/hid4java -->
64+
<include name="**/linux_riscv64/*" if="target.arch.riscv64"/> <!-- jssc -->
6265
</fileset>
6366
</copy>
6467
</target>

ant/platform-detect.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@
134134
<condition property="target.arch.aarch64">
135135
<equals arg1="aarch64" arg2="${target.arch}"/>
136136
</condition>
137+
<condition property="target.arch.riscv64">
138+
<equals arg1="riscv64" arg2="${target.arch}"/>
139+
</condition>
137140
<!-- Warning: Placeholder only! 32-bit builds are not supported -->
138141
<condition property="target.arch.arm32">
139142
<equals arg1="arm32" arg2="${target.arch}"/>
-472 KB
Binary file not shown.
612 KB
Binary file not shown.
Binary file not shown.

src/qz/build/jlink/Arch.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
public enum Arch implements Parsable {
77
AMD64("amd64", "x86_64", "x64"),
88
AARCH64("aarch64", "arm64"),
9-
ARM32("arm", "arm32", "arm32hf", "aarch32", "aarch32hf");
9+
ARM32("arm", "arm32", "arm32hf", "aarch32", "aarch32hf"),
10+
RISCV64("riscv", "riscv64");
1011

1112
public final String[] matches;
1213
Arch(String ... matches) { this.matches = matches; }

src/qz/build/jlink/Url.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,26 @@ public Url(Vendor vendor) {
3636
pattern = VENDOR_URL_MAP.get(vendor);
3737
}
3838

39+
/**
40+
* Fix URLs for beta/alpha/nightly release
41+
*/
42+
public void applyBetaPattern() {
43+
switch(vendor) {
44+
case ECLIPSE:
45+
/*
46+
BEFORE: jdk-21.0.1+12/
47+
AFTER: jdk-21.0.1+12-ea-beta/
48+
49+
BEFORE: OpenJDK21U-jdk_riscv64_linux_hotspot_21-0-1-12.tar.gz
50+
AFTER: OpenJDK21U-jdk_riscv64_linux_hotspot_ea_21-0-1-12.tar.gz
51+
*/
52+
pattern = pattern.replaceAll("%s/OpenJDK%sU-jdk_%s_%s_%s", "%s-ea-beta/OpenJDK%sU-jdk_%s_%s_%s_ea");
53+
break;
54+
default:
55+
throw new UnsupportedOperationException("Vendor " + vendor + " is missing a configuration beta URLs");
56+
}
57+
}
58+
3959
public String format(Arch arch, Platform platform, String gcEngine, Version javaSemver, String javaVersion, String gcVer) throws UnsupportedEncodingException {
4060
Url pattern = new Url(vendor);
4161
String urlArch = vendor.getUrlArch(arch);
@@ -47,6 +67,16 @@ public String format(Arch arch, Platform platform, String gcEngine, Version java
4767
String urlJavaVersionEncode = URLEncoder.encode(javaVersion, "UTF-8");
4868

4969
int javaMajor = javaSemver.getMajorVersion();
70+
71+
switch(arch) {
72+
// TODO: Remove when RISCV is offered as stable
73+
case RISCV64:
74+
pattern.applyBetaPattern();
75+
urlJavaVersion = urlJavaVersion.replace(".", "-").replace("_", "-");
76+
default:
77+
// Do nothing
78+
}
79+
5080
switch(vendor) {
5181
case BELLSOFT:
5282
return String.format(pattern.pattern, urlJavaVersionEncode, urlJavaVersionEncode, urlPlatform, urlArch, fileExt);

src/qz/build/jlink/Vendor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public String getUrlArch(Arch arch) {
6767
case BELLSOFT:
6868
return "amd64";
6969
}
70+
case RISCV64:
71+
return "riscv64";
7072
default:
7173
return "x64";
7274
}

0 commit comments

Comments
 (0)