You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The hermes-compiler npm package does not include a native hermesc executable for Linux ARM64 (aarch64) hosts. In hermes-compiler@250829098.0.17, the packaged hermesc/linux64-bin/hermesc is an x86-64 ELF executable; the other packaged host binaries are for macOS and Windows.
We run React Native 0.87.1 / Hermes on a Linux ARM64 CI runner to produce OTA Hermes bytecode for iOS and Android. A tool that selects linux64-bin/hermesc on Linux fails before compilation:
The second command exits with code 2. The failure occurs on an ARM64 host because the published Linux executable is for x86-64, not because of the JS bundle. This blocks native ARM64 CI jobs that need to compile Hermes bytecode, including OTA builds that do not run Gradle.
Solution
Could Hermes publish a Linux ARM64/aarch64 hosthermesc binary for each matching hermes-compiler release, with a documented package path or a platform-specific package? It would help to validate the published binary's architecture and --version in the release pipeline. The compiler version must remain paired with the Hermes version bundled by React Native so the generated bytecode is compatible with the app runtime.
We can build hermesc from the matching Hermes source tag and substitute it in CI, but every consuming project then has to maintain its own binary distribution and version checks. Running the x86-64 binary through emulation or moving the CI job to x86-64 also prevents us from using the native ARM64 runner.
Additional Context
hermes-compiler: 250829098.0.17
React Native: 0.87.1
Host: Linux ARM64/aarch64, containerized GitHub Actions runner
Problem
The
hermes-compilernpm package does not include a nativehermescexecutable for Linux ARM64 (aarch64) hosts. Inhermes-compiler@250829098.0.17, the packagedhermesc/linux64-bin/hermescis an x86-64 ELF executable; the other packaged host binaries are for macOS and Windows.We run React Native 0.87.1 / Hermes on a Linux ARM64 CI runner to produce OTA Hermes bytecode for iOS and Android. A tool that selects
linux64-bin/hermescon Linux fails before compilation:The second command exits with code 2. The failure occurs on an ARM64 host because the published Linux executable is for x86-64, not because of the JS bundle. This blocks native ARM64 CI jobs that need to compile Hermes bytecode, including OTA builds that do not run Gradle.
Solution
Could Hermes publish a Linux ARM64/aarch64 host
hermescbinary for each matchinghermes-compilerrelease, with a documented package path or a platform-specific package? It would help to validate the published binary's architecture and--versionin the release pipeline. The compiler version must remain paired with the Hermes version bundled by React Native so the generated bytecode is compatible with the app runtime.We can build
hermescfrom the matching Hermes source tag and substitute it in CI, but every consuming project then has to maintain its own binary distribution and version checks. Running the x86-64 binary through emulation or moving the CI job to x86-64 also prevents us from using the native ARM64 runner.Additional Context
hermes-compiler:250829098.0.170.87.1hermescon Linux ARM. This request is for an officially published ARM64 host binary in the npm release.