VSCodium / vscodium

binary releases of VS Code without MS branding/telemetry/licensing
https://vscodium.com
MIT License
25.63k stars 1.12k forks source link

WIP: feat: loong64 support for reh server #2084

Closed darkyzhou closed 3 weeks ago

darkyzhou commented 3 weeks ago

This PR introduces loong64 support for REH server. The loong64 is a RISC-style ISA developed by Loongson.

I am still working on porting the client to loong64, and will open another PR soon.

WIP: This PR uses ghcr.io/darkyzhou/vscodium-linux-build-agent:trixie-devtoolset-loong64 for VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME, which will be updated after https://github.com/VSCodium/vscode-linux-build-agent/pull/23 gets merged.

BTW, once this gets merged, can we build reh server on loong64 for older releases? Other VSCode variants like Cursor still uses 1.93.1.

daiyam commented 3 weeks ago

I think I need to take the time to split the ppc64le-and-riscv64-support.patch. We can't have 3 architectures in the same file.

WIP: This PR uses ghcr.io/darkyzhou/vscodium-linux-build-agent:trixie-devtoolset-loong64 for VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME, which will be updated after VSCodium/vscode-linux-build-agent#23 gets merged.

It has been merged

BTW, once this gets merged, can we build reh server on loong64 for older releases? Other VSCode variants like Cursor still uses 1.93.1.

We would need to:

They seem to have a 1-month delay so I think it's better to wait.

darkyzhou commented 3 weeks ago

I do think ppc64le-and-riscv64-support.patch is quite awkward, let me first split the loong64 part out of it. Then, I will update the VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME

darkyzhou commented 3 weeks ago

After splitting, it seems the two patches cannot be applied together, so I think we need two new folders: patches/linux/loong64 and patches/linux/ppc64le-or-riscv64 containing each of the patches. (or three new folders if you manages to split ppc64le-and-riscv64-support.patch apart later)

In prepare_vscode.sh we check the $VSCODE_ARCH to decide which patch to apply, what do you think?

(BTW, it's midnight now in my time zone, I might not respond until morning)

daiyam commented 3 weeks ago

I've split the ppc64le-and-riscv64-support.patch into 3 files (arch-0-support.patch, arch-1-ppc64le.patch and arch-2-riscv64.patch) Thoses patches depend on the previous ones (arch-2-riscv64.patch depends on arch-0-support.patch and arch-1-ppc64le.patch) But each patch has is specific role:

So to add/edit your new arch, you will need to run the command ./patch.sh linux/arch-0-support linux/arch-1-ppc64le linux/arch-2-riscv64 linux/arch-3-loong64, do your edit and complete the command when done. The ./patch.sh will apply the 3 patches and when you are done, it will create/edit your linux/arch-3-loong64.patch.