Basic ARM and Aarch64 support for emsdk (#277)

This adds an "arch" field to various structures, so ARM and Aarch64
Linux can download appropriate versions of node and in theory
other tools, without trying to download x86 builds.

Since there are no prebuilt packages for clang and binaryen on ARM
or Aarch64 this will require building them, which can take a long
time, but works once installed.

Node 4.1.1 and 8.9.1 entries for ARM (armv7l) and aarch64 are
added, and the various x86/x86_64-only things are marked as such
to be filtered out on ARM machines.

Other downloads work as long as they don't have an arch specified,
which indicates they're expected to be arch-independent.

Does not yet fully work on ARM64 Windows (but works in WSL as the
Linux support is fine).
This commit is contained in:
Brion Vibber
2019-08-02 15:14:11 -07:00
committed by Alon Zakai
parent e2110d8816
commit 2b568055af
2 changed files with 147 additions and 19 deletions

View File

@@ -4,6 +4,7 @@
"id": "clang",
"version": "3.2",
"bitness": 32,
"arch": "x86",
"windows_url": "clang_3.2_32bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "LLVM_ROOT='%installation_dir%'",
@@ -14,6 +15,7 @@
"id": "clang",
"version": "3.2",
"bitness": 64,
"arch": "x86_64",
"windows_url": "clang_3.2_64bit.zip",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "LLVM_ROOT='%installation_dir%/bin'",
@@ -24,6 +26,7 @@
"id": "clang",
"version": "3.3",
"bitness": 32,
"arch": "x86",
"windows_url": "clang_3.3_32bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "LLVM_ROOT='%installation_dir%'",
@@ -34,6 +37,7 @@
"id": "clang",
"version": "3.3",
"bitness": 64,
"arch": "x86_64",
"windows_url": "clang_3.3_64bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "LLVM_ROOT='%installation_dir%'",
@@ -44,6 +48,7 @@
"id": "clang",
"version": "3.2",
"bitness": 64,
"arch": "x86_64",
"osx_url": "clang%2Bllvm-3.2-x86_64-apple-darwin11.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "LLVM_ROOT='%installation_dir%/bin'",
@@ -54,6 +59,7 @@
"id": "clang",
"version": "3.3",
"bitness": 64,
"arch": "x86_64",
"osx_url": "clang%2Bllvm-3.3-x86_64-apple-darwin12.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "LLVM_ROOT='%installation_dir%/bin'",
@@ -94,6 +100,7 @@
"id": "clang",
"version": "nightly-e%nightly-llvm-64bit%",
"bitness": 64,
"arch": "x86_64",
"append_bitness": false,
"windows_url": "llvm/nightly/win_64bit/emscripten-llvm-e%nightly-llvm-64bit%.zip",
"osx_url": "llvm/nightly/osx_64bit/emscripten-llvm-e%nightly-llvm-64bit%.tar.gz",
@@ -163,6 +170,7 @@
"id": "releases",
"version": "upstream-%releases-tag%",
"bitness": 64,
"arch": "x86_64",
"linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries.tbz2",
"osx_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries.tbz2",
"windows_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/%releases-tag%/wasm-binaries.zip",
@@ -177,6 +185,7 @@
"id": "releases",
"version": "fastcomp-%releases-tag%",
"bitness": 64,
"arch": "x86_64",
"linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/%releases-tag%/wasm-binaries.tbz2",
"osx_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/%releases-tag%/wasm-binaries.tbz2",
"windows_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/%releases-tag%/wasm-binaries.zip",
@@ -192,6 +201,7 @@
"id": "clang",
"version": "e1.13.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.13.0.zip",
"osx_url": "emscripten-clang_e1.13.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -203,6 +213,7 @@
"id": "clang",
"version": "e1.13.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.13.1.zip",
"osx_url": "emscripten-clang_e1.13.1.tar.gz",
"activated_path": "%installation_dir%",
@@ -214,6 +225,7 @@
"id": "clang",
"version": "e1.16.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.16.0.zip",
"osx_url": "emscripten-clang_e1.16.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -225,6 +237,7 @@
"id": "clang",
"version": "e1.21.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.21.0.zip",
"osx_url": "emscripten-clang_e1.21.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -236,6 +249,7 @@
"id": "clang",
"version": "e1.22.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.22.0.zip",
"osx_url": "emscripten-clang_e1.22.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -247,6 +261,7 @@
"id": "clang",
"version": "e1.25.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.25.0.zip",
"osx_url": "emscripten-clang_e1.25.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -258,6 +273,7 @@
"id": "clang",
"version": "e1.27.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.27.0.zip",
"osx_url": "emscripten-clang_e1.27.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -269,6 +285,7 @@
"id": "clang",
"version": "e1.29.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.29.0.zip",
"osx_url": "emscripten-clang_e1.29.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -280,6 +297,7 @@
"id": "clang",
"version": "e1.30.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.30.0.zip",
"osx_url": "emscripten-clang_e1.30.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -290,6 +308,7 @@
"id": "clang",
"version": "e1.34.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.34.1.zip",
"osx_url": "emscripten-clang_e1.34.1.tar.gz",
"activated_path": "%installation_dir%",
@@ -300,6 +319,7 @@
"id": "clang",
"version": "e1.35.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "emscripten-clang_e1.35.0.zip",
"osx_url": "emscripten-clang_e1.35.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -310,6 +330,7 @@
"id": "clang",
"version": "e1.37.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "llvm/tag/win_64bit/emscripten-llvm-e1.37.1.zip",
"osx_url": "llvm/tag/osx_64bit/emscripten-llvm-e1.37.1.tar.gz",
"linux_url": "llvm/tag/linux_64bit/emscripten-llvm-e1.37.1.tar.gz",
@@ -321,6 +342,7 @@
"id": "clang",
"version": "e%precompiled_tag32%",
"bitness": 32,
"arch": "x86",
"windows_url": "llvm/tag/win_64bit/emscripten-llvm-e%precompiled_tag32%.zip",
"osx_url": "llvm/tag/osx_64bit/emscripten-llvm-e%precompiled_tag32%.tar.gz",
"linux_url": "llvm/tag/linux_64bit/emscripten-llvm-e%precompiled_tag32%.tar.gz",
@@ -332,6 +354,7 @@
"id": "clang",
"version": "e%precompiled_tag64%",
"bitness": 64,
"arch": "x86_64",
"windows_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/old/win/emscripten-llvm-e%precompiled_tag64%.zip",
"osx_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/old/mac/emscripten-llvm-e%precompiled_tag64%.tar.gz",
"linux_url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/old/linux/emscripten-llvm-e%precompiled_tag64%.tar.gz",
@@ -343,6 +366,7 @@
"id": "node",
"version": "0.10.17",
"bitness": 32,
"arch": "x86",
"windows_url": "node_0.10.17_32bit.exe",
"windows_install_path": "node/0.10.17_32bit/node.exe",
"activated_path": "%installation_dir%",
@@ -354,6 +378,7 @@
"id": "node",
"version": "0.10.17",
"bitness": 64,
"arch": "x86_64",
"windows_url": "node_0.10.17_64bit.exe",
"windows_install_path": "node/0.10.17_64bit/node.exe",
"activated_path": "%installation_dir%",
@@ -365,6 +390,7 @@
"id": "node",
"version": "0.10.18",
"bitness": 64,
"arch": "x86_64",
"osx_url": "node-v0.10.18-darwin-x64.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node'",
@@ -375,6 +401,7 @@
"id": "node",
"version": "0.12.2",
"bitness": 32,
"arch": "x86",
"windows_url": "node_0.12.2_32bit.exe",
"windows_install_path": "node/0.12.2_32bit/node.exe",
"activated_path": "%installation_dir%",
@@ -386,6 +413,7 @@
"id": "node",
"version": "0.12.2",
"bitness": 64,
"arch": "x86_64",
"windows_url": "node_0.12.2_64bit.exe",
"windows_install_path": "node/0.12.2_64bit/node.exe",
"activated_path": "%installation_dir%",
@@ -397,6 +425,7 @@
"id": "node",
"version": "0.12.2",
"bitness": 64,
"arch": "x86_64",
"osx_url": "node-v0.12.2-darwin-x64.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node'",
@@ -407,16 +436,28 @@
"id": "node",
"version": "4.1.1",
"bitness": 32,
"arch": "x86",
"windows_url": "node_4.1.1_32bit.zip",
"linux_url": "node-v4.1.1-linux-x86.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "4.1.1",
"bitness": 32,
"arch": "arm",
"linux_url": "https://nodejs.org/download/release/v4.1.1/node-v4.1.1-linux-armv7l.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "4.1.1",
"bitness": 64,
"arch": "x86_64",
"osx_url": "node-v4.1.1-darwin-x64.tar.gz",
"windows_url": "node_4.1.1_64bit.zip",
"linux_url": "node-v4.1.1-linux-x64.tar.gz",
@@ -424,20 +465,42 @@
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "4.1.1",
"bitness": 64,
"arch": "aarch64",
"linux_url": "https://nodejs.org/download/release/v4.1.1/node-v4.1.1-linux-arm64.tar.gz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "8.9.1",
"bitness": 32,
"arch": "x86",
"windows_url": "node-v8.9.1-win-x86.zip",
"linux_url": "node-v8.9.1-linux-x86.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "8.9.1",
"arch": "arm",
"bitness": 32,
"linux_url": "https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-armv7l.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "8.9.1",
"bitness": 64,
"arch": "x86_64",
"osx_url": "node-v8.9.1-darwin-x64.tar.gz",
"windows_url": "node-v8.9.1-win-x64.zip",
"linux_url": "node-v8.9.1-linux-x64.tar.xz",
@@ -445,10 +508,21 @@
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "node",
"version": "8.9.1",
"arch": "aarch64",
"bitness": 64,
"linux_url": "https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-arm64.tar.xz",
"activated_path": "%installation_dir%/bin",
"activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
"activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
},
{
"id": "python",
"version": "2.7.5.1",
"bitness": 32,
"arch": "x86",
"windows_url": "python_2.7.5.1_32bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "PYTHON='%installation_dir%/python%.exe%'",
@@ -459,6 +533,7 @@
"id": "python",
"version": "2.7.5",
"bitness": 64,
"arch": "x86_64",
"windows_url": "python_2.7.5_64bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "PYTHON='%installation_dir%/python%.exe%'",
@@ -469,6 +544,7 @@
"id": "python",
"version": "2.7.5.3",
"bitness": 32,
"arch": "x86",
"windows_url": "python_2.7.5.3_32bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "PYTHON='%installation_dir%/python%.exe%'",
@@ -479,6 +555,7 @@
"id": "python",
"version": "2.7.5.3",
"bitness": 64,
"arch": "x86_64",
"windows_url": "python_2.7.5.3_64bit.zip",
"activated_path": "%installation_dir%",
"activated_cfg": "PYTHON='%installation_dir%/python%.exe%'",
@@ -489,6 +566,7 @@
"id": "python",
"version": "2.7.13.1",
"bitness": 32,
"arch": "x86",
"windows_url": "WinPython-32bit-2.7.13.1Zero.zip",
"activated_path": "%installation_dir%/python-2.7.13",
"activated_cfg": "PYTHON='%installation_dir%/python-2.7.13/python%.exe%'",
@@ -498,6 +576,7 @@
"id": "python",
"version": "2.7.13.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "WinPython-64bit-2.7.13.1Zero.zip",
"activated_path": "%installation_dir%/python-2.7.13.amd64",
"activated_cfg": "PYTHON='%installation_dir%/python-2.7.13.amd64/python%.exe%'",
@@ -507,6 +586,7 @@
"id": "python",
"version": "3.5.4",
"bitness": 32,
"arch": "x86",
"windows_url": "WinPython-32bit-3.5.4.1Zero.zip",
"activated_path": "%installation_dir%/python-3.5.4",
"activated_cfg": "PYTHON='%installation_dir%/python-3.5.4/python%.exe%'",
@@ -516,6 +596,7 @@
"id": "python",
"version": "3.5.4",
"bitness": 64,
"arch": "x86_64",
"windows_url": "WinPython-64bit-3.5.4.1Zero.zip",
"activated_path": "%installation_dir%/python-3.5.4.amd64",
"activated_cfg": "PYTHON='%installation_dir%/python-3.5.4.amd64/python%.exe%'",
@@ -525,6 +606,7 @@
"id": "java",
"version": "7.45",
"bitness": 32,
"arch": "x86",
"windows_url": "portable_jre_7_update_45_32bit.zip",
"activated_path": "%installation_dir%/bin",
"activated_env": "JAVA_HOME=%installation_dir%",
@@ -534,6 +616,7 @@
"id": "java",
"version": "7.45",
"bitness": 64,
"arch": "x86_64",
"windows_url": "portable_jre_7_update_45_64bit.zip",
"activated_path": "%installation_dir%/bin",
"activated_env": "JAVA_HOME=%installation_dir%",
@@ -543,6 +626,7 @@
"id": "java",
"version": "8.152",
"bitness": 32,
"arch": "x86",
"windows_url": "portable_jre_8_update_152_32bit.zip",
"activated_path": "%installation_dir%/bin",
"activated_env": "JAVA_HOME=%installation_dir%",
@@ -552,6 +636,7 @@
"id": "java",
"version": "8.152",
"bitness": 64,
"arch": "x86_64",
"windows_url": "portable_jre_8_update_152_64bit.zip",
"activated_path": "%installation_dir%/bin",
"activated_env": "JAVA_HOME=%installation_dir%",
@@ -561,6 +646,7 @@
"id": "spidermonkey",
"version": "27.0.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "spidermonkey-27.0.1.zip",
"osx_url": "spidermonkey-27.0.1.tar.gz",
"activated_path": "%installation_dir%",
@@ -571,6 +657,7 @@
"id": "spidermonkey",
"version": "nightly-2014-03-13",
"bitness": 64,
"arch": "x86_64",
"windows_url": "spidermonkey-nightly-2014-03-13.zip",
"osx_url": "spidermonkey-nightly-2014-03-13.tar.gz",
"activated_path": "%installation_dir%",
@@ -581,6 +668,7 @@
"id": "spidermonkey",
"version": "30.0.0",
"bitness": 64,
"arch": "x86_64",
"windows_url": "spidermonkey-30.0.0.zip",
"osx_url": "spidermonkey-30.0.0.tar.gz",
"activated_path": "%installation_dir%",
@@ -591,6 +679,7 @@
"id": "spidermonkey",
"version": "37.0.1",
"bitness": 64,
"arch": "x86_64",
"windows_url": "spidermonkey-37.0.1_64bit.zip",
"osx_url": "spidermonkey-37.0.1_64bit.tar.gz",
"activated_path": "%installation_dir%",
@@ -600,6 +689,7 @@
"id": "spidermonkey",
"version": "nightly-2015-04-12",
"bitness": 64,
"arch": "x86_64",
"windows_url": "spidermonkey-nightly-2015-04-12_64bit.zip",
"osx_url": "spidermonkey-nightly-2015-04-12_64bit.tar.gz",
"activated_path": "%installation_dir%",