eclipse.platform.releng.aggregator icon indicating copy to clipboard operation
eclipse.platform.releng.aggregator copied to clipboard

Native support for Eclipse SDKs on riscv64

Open yuzibo opened this issue 1 year ago • 8 comments

I am trying to build Eclipse SDKs on riscv64. It's obvious that this is the correct repo so I opened the issue to keep track of various tasks done and/or underway like WoA did.

  • [x] add support for riscv64 to eclipse.platform.swt submodule
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1444 for build.sh
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1445 add linux riscv64 build
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1469 Fix riscv64 MANIFEST.MF header field(fix pr 1445)
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1474 Build gtk.linux.riscv64 native SWT fragment
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1490 bump riscv64 version [closed, combined into 1474]
    • [x] https://github.com/eclipse-platform/eclipse.platform.swt/pull/1485 Add support riscv64 with p2.inf
    • [ ] Once JustJ supports riscv64, to reset Jenkins to use it as native jdk
  • [x] Add support for riscv64 on equinox submodule
    • [x] https://github.com/eclipse-equinox/equinox/pull/669
    • [x] https://github.com/eclipse-equinox/equinox/pull/672 Version bumps for 4.34 stream [closed; combined into the PR ]
    • [x] https://github.com/eclipse-equinox/equinox/pull/680
    • [x] ToDo: once gtk.linux.riscv64 environment is enabled in general, revert the temporary addition of the linux.riscv64 environment in o.e.equinox.executable.feature/pom.xml:
      • [x] https://github.com/eclipse-equinox/equinox/pull/681
    • [ ] Once JustJ supports riscv64, to reset Jenkinsfile to use it as native jdk.
  • [x] add support for riscv64 on eclipse.platform.ui submodule
    • [x] https://github.com/eclipse-platform/eclipse.platform.ui/pull/2318
  • [x] eclipse.platform.releng.aggregator
    • [x] https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2348
    • [x] https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2394 Add linux.riscv64 environment to eclipse-platform-parent and publish win32.aarch64 artifacts
    • [x] https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2397 Add linxu/gtk/riscv64 the SDK4Mvn.aggr
  • [x] add support for riscv64 on eclipse.platform submodule
    • [x] https://github.com/eclipse-platform/eclipse.platform/pull/1575
  • [x] Add support for riscv64 on JustJ
  • [x] Add riscv64 support for eclipse infra
    • [x] https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/4978 Add riscv64 ci node for eclipse
  • [x] external porting work
    • [x] https://github.com/java-native-access/jna/issues/1622
  • [ ] Package support for riscv64
    • [ ] https://github.com/eclipse-packaging/packages/issues/213

Next I will always update this.

yuzibo avatar Sep 04 '24 10:09 yuzibo

On Debian Sid riscv64, Milk-V Pioneer. 1510c05927436e18546f7e2c4f4015b

Sakura286 avatar Sep 27 '24 08:09 Sakura286

That is amazing!

yuzibo avatar Sep 27 '24 09:09 yuzibo

Since the latest I-build the Eclipse SDK is also build for linux.riscv64

  • https://download.eclipse.org/eclipse/downloads/drops4/I20240929-0810/

Implementation-wise almost everything is done now, the last pending two PRs should succeed now too.

The only thing that are missing to complete this entirely are some form of tests, at least smoke tests, ideally full I-build tests (for Windows on ARM they are still pending since some preparatory work to simplify their setup is not yet completed).

Furthermore we could/should provide the Eclipse-Packages for linux.riscv64 too, similar to WoA:

  • https://github.com/eclipse-packaging/packages/issues/162

But unlike WoA since shouldn't be too difficult since Temurin already provides JDKs for linux.riscv64 and JustJ is now able to provide JDK bundles since there is also a Eclipse-SDK for it.

HannesWell avatar Sep 29 '24 13:09 HannesWell

Test with the newest official Integration Build, on Debian Sid riscv64, Milk-V Pioneer, with x11 forward:

image

https://download.eclipse.org/eclipse/downloads/drops4/I20240929-0810/

Choose Eclipse SDK -> Linux (64 bit version for RISC-V) to download.

Sakura286 avatar Sep 29 '24 14:09 Sakura286

Since the latest I-build the Eclipse SDK is also build for linux.riscv64

  • https://download.eclipse.org/eclipse/downloads/drops4/I20240929-0810/

I would like to express my heartfelt gratitude to everyone for your efforts in achieving Eclipse support for riscv64 here. Your hard work and help are truly appreciated!

The only thing that are missing to complete this entirely are some form of tests, at least smoke tests, ideally full I-build tests (for Windows on ARM they are still pending since some preparatory work to simplify their setup is not yet completed).

Furthermore we could/should provide the Eclipse-Packages for linux.riscv64 too, similar to WoA:

Okay, no problem, I will add these into the todo list also.

But unlike WoA since shouldn't be too difficult since Temurin already provides JDKs for linux.riscv64 and JustJ is now able to provide JDK bundles since there is also a Eclipse-SDK for it.

Yeah, I noticed this also. I will ping JustJ first.

Thanks for all again!

yuzibo avatar Sep 29 '24 14:09 yuzibo

Since the latest I-build the Eclipse SDK is also build for linux.riscv64

  • https://download.eclipse.org/eclipse/downloads/drops4/I20240929-0810/

I would like to express my heartfelt gratitude to everyone for your efforts in achieving Eclipse support for riscv64 here. Your hard work and help are truly appreciated!

Thank you for these nice words, it's great to get them. And thanks for all your contributions. I think adding support for more arches challenges the complexity of the overall Eclipse SDK project and helps to reduce it.

But unlike WoA since shouldn't be too difficult since Temurin already provides JDKs for linux.riscv64 and JustJ is now able to provide JDK bundles since there is also a Eclipse-SDK for it.

Yeah, I noticed this also. I will ping JustJ first.

@merks is already aware of the need for a change in JustJ and has already prepared it:

  • https://github.com/eclipse-justj/justj/commit/07754f5857b045445a40f26baf37f0e570e27a91
  • https://github.com/eclipse-justj/justj/commit/6571be4b505fc0a0e1b2d8fa40cc87bba979b48c

and is currently working on providing the new artifacts.

HannesWell avatar Sep 29 '24 14:09 HannesWell

@yuzibo

There is an installer with an embedded JustJ JRE available for rsicv64:

https://download.eclipse.org/oomph/products/latest/eclipse-inst-jre-linux-riscv64.tar.gz

The installer filters products that don't support that architecture (and I've been fine-tuning that support today), so it only shows applicable products, i.e., only the Eclipse SDK can currently be installed:

image

It would be much appreciated if you could test whether the riscv64 installer works given I have no way of testing it myself.

merks avatar Oct 02 '24 11:10 merks

@yuzibo

There is an installer with an embedded JustJ JRE available for rsicv64:

https://download.eclipse.org/oomph/products/latest/eclipse-inst-jre-linux-riscv64.tar.gz

\o/.

It would be much appreciated if you could test whether the riscv64 installer works given I have no way of testing it myself.

Okay, No problem, I will test it on my local riscv64 hardware ASAP(maybe in next days because I am on my holiday).

Thanks for your work again!

yuzibo avatar Oct 02 '24 14:10 yuzibo

@yuzibo

There is an installer with an embedded JustJ JRE available for rsicv64:

https://download.eclipse.org/oomph/products/latest/eclipse-inst-jre-linux-riscv64.tar.gz

if i didn't do anything wrong, I think the eclipse installer is working: in-pocess launch

Thanks for your work again!

yuzibo avatar Oct 08 '24 16:10 yuzibo

So the left work for riscv64 on Eclipse is to use justj to replace temurin I think.

But I am not sure how long this will happened to update the link of downloading of justj

yuzibo avatar Oct 08 '24 16:10 yuzibo

As mentioned in https://github.com/eclipse-packaging/packages/issues/213#issuecomment-2393884004 mostly everything is in place to produce riscv64 packages for M2.

It will appears here:

https://www.eclipse.org/downloads/packages/release/2024-12/

merks avatar Oct 08 '24 16:10 merks

The riscv-build2 node on Jenkins currently fails to launch, blocking building of SWT native fragments: https://ci.eclipse.org/releng/computer/riscv%2Dbuild2/

sratz avatar Oct 21 '24 13:10 sratz

FYI, I just started a build just minutes ago for Java 24 beta:

https://ci.eclipse.org/justj/job/build-jres/

I think this node is shared:

https://ci.eclipse.org/justj/computer/riscv%2Dbuild2/

merks avatar Oct 21 '24 13:10 merks

For what it's worth, the riscv node did start and complete:

image

merks avatar Oct 21 '24 13:10 merks

The 2024-12 M2 EPP build that contains riscv64 Linux packages is now available for testing. If you have access to riscv64 Linux, please let me know if these new packages work. See announcement in https://www.eclipse.org/lists/epp-dev/msg06939.html

jonahgraham avatar Oct 24 '24 13:10 jonahgraham

Should we close this one?

akurtakov avatar Dec 05 '24 10:12 akurtakov

Should we close this one?

Yes, 2024-12 has full riscv in EPP too. Same as your comment on WoA (https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/issues/577#issuecomment-2519982072), new dedicated issues should be created. I have created #2632 for the unchecked item in the list.

jonahgraham avatar Dec 05 '24 15:12 jonahgraham

Thanks! I think we can close it also as we have done everything almost already and I will track the https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/issues/2632

yuzibo avatar Dec 05 '24 15:12 yuzibo

Thank you @yuzibo for all your work to make this possible.

As the very final step I have now created a change to add a smoke-test for linux.riscv64:

  • https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2641

HannesWell avatar Dec 06 '24 18:12 HannesWell