Question: Is it possible for OBS to handle aarch64 artefacts built inside an x86_64 worker?

Hello fellow Geekos.

I was trying to build rusty_v8 and noticed a problem.

  • the build logic they have only runs on x86_64
  • they build other artefacts for other architectures by cross-compiling with --target= flag

Now, the problem is, I am not too confident if that’s possible in OpenBuildService to support such a method of building crossed-compiled artefacts.

Currently, I was trying to just use aarch64 workers but that failed because the rust toolchain provided by chromium which is used on rusty_v8 only has x86_64 for Linux platform.

Does anyone have any knowledge on the possibility of building aarch64 artefacts from another architecture?

Thanks!

Best,
Soc

They only support android aarch64/x86_64?

in my investigation, they support Linux aarch64 but through --target flag because I have seen it in my build logs (still fails though because some issue with linking??). i also know this because the file located at v8/DEPS has the following lines

  'third_party/rust-toolchain': {
    'dep_type': 'gcs',
    'bucket': 'chromium-browser-clang',
    'objects': [
      {
        'object_name': 'Linux_x64/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz',
        'sha256sum': '5ca1ca6268ce2dcfe878c623f0f49e4eba983bb36e79ceddb9c745ef48efc933',
        'size_bytes': 140484296,
        'generation': 1765411196238822,
        'condition': 'host_os == "linux"',
      },
      {
        'object_name': 'Mac/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz',
        'sha256sum': '26f095b3217e9619d6172bdc4b7329e51ebe2fb7508a313b8c3a6fce21416170',
        'size_bytes': 135435424,
        'generation': 1765411198122573,
        'condition': 'host_os == "mac" and host_cpu == "x64"',
      },
      {
        'object_name': 'Mac_arm64/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz',
        'sha256sum': '64d5fb112d809b1c4a047ef7bd99e88534de470b82d86ce6ad729b12c5611488',
        'size_bytes': 122796960,
        'generation': 1765411200047613,
        'condition': 'host_os == "mac" and host_cpu == "arm64"',
      },
      {
        'object_name': 'Win/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz',
        'sha256sum': 'a3cf74c96f7959a8507786665c23a2fb8ac67f107279ef888a8d3da066c0bca5',
        'size_bytes': 198058716,
        'generation': 1765411201950690,
        'condition': 'host_os == "win"',
      },
    ],
  },

The have disabled intentionally, looks like no plans to re-enable?
https://github.com/denoland/rusty_v8/issues/591

Some digging seems to point correctly to my guess

[

Re-enable aarch64 builds by LukeChannings · Pull Request #628 · denoland/rusty_v8
github.com

](https://github.com/denoland/rusty_v8/pull/628)

Looking at the workflow, I can see that it’s probably x86_64 ubuntu container with a target flag set to aarch64 for cross compile. i tried this attempt but it fails because the rust toolchain in openSUSE does not have the dependencies to allow cross compiling hence the error message that i might have forgotten to run “rustup add target aarch64-unknown-linux-gnu”

Currently, I disabled the aarch64 builds. So thats that. I guess no solutions for now.