ppc64le-and-riscv64-support.patch 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
  2. index 9bfbf9a..3064f78 100755
  3. --- a/build/azure-pipelines/linux/setup-env.sh
  4. +++ b/build/azure-pipelines/linux/setup-env.sh
  5. @@ -9,2 +9,6 @@ fi
  6. +if [ "$npm_config_arch" == "riscv64" ]; then
  7. + exit 0
  8. +fi
  9. +
  10. export VSCODE_SYSROOT_DIR=$PWD/.build/sysroots
  11. @@ -69,2 +73,17 @@ elif [ "$npm_config_arch" == "arm" ]; then
  12. fi
  13. +elif [ "$npm_config_arch" == "ppc64" ]; then
  14. + if [ "$(echo "$@" | grep -c -- "--only-remote")" -eq 0 ]; then
  15. + # Set compiler toolchain for client native modules
  16. + export CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
  17. + export CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
  18. + export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
  19. + export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
  20. +
  21. + # Set compiler toolchain for remote server
  22. + export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
  23. + export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
  24. + export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
  25. + export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
  26. + fi
  27. +
  28. fi
  29. diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
  30. index 19482c2..f49d910 100755
  31. --- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
  32. +++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
  33. @@ -9,2 +9,4 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
  34. TRIPLE="arm-rpi-linux-gnueabihf"
  35. +elif [ "$VSCODE_ARCH" == "ppc64le" ]; then
  36. + TRIPLE="powerpc64le-linux-gnu"
  37. fi
  38. diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
  39. index 0b5f38c..9f3b02b 100644
  40. --- a/build/checksums/vscode-sysroot.txt
  41. +++ b/build/checksums/vscode-sysroot.txt
  42. @@ -6 +6,2 @@
  43. dbb927408393041664a020661f2641c9785741be3d29b050b9dac58980967784 x86_64-linux-gnu-glibc-2.28.tar.gz
  44. +fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
  45. diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
  46. index a6cfbe5..96840f2 100644
  47. --- a/build/gulpfile.reh.js
  48. +++ b/build/gulpfile.reh.js
  49. @@ -46,2 +46,4 @@ const BUILD_TARGETS = [
  50. { platform: 'linux', arch: 'arm64' },
  51. + { platform: 'linux', arch: 'ppc64le' },
  52. + { platform: 'linux', arch: 'riscv64' },
  53. { platform: 'alpine', arch: 'arm64' },
  54. @@ -213,2 +215,10 @@ function nodejs(platform, arch) {
  55. case 'linux':
  56. + if (arch === 'riscv64') {
  57. + return fetchUrls(`/download/release/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`,
  58. + { base: 'https://unofficial-builds.nodejs.org', checksumSha256 }).pipe(flatmap(stream => stream.pipe(gunzip()).pipe
  59. + (untar())))
  60. + .pipe(filter('**/node'))
  61. + .pipe(util.setExecutableBit('**'))
  62. + .pipe(rename('node'));
  63. + }
  64. return (product.nodejsRepository !== 'https://nodejs.org' ?
  65. diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
  66. index 6f8144b..8a8195e 100644
  67. --- a/build/gulpfile.scan.js
  68. +++ b/build/gulpfile.scan.js
  69. @@ -26,2 +26,4 @@ const BUILD_TARGETS = [
  70. { platform: 'linux', arch: 'arm64' },
  71. + { platform: 'linux', arch: 'ppc64le' },
  72. + { platform: 'linux', arch: 'riscv64' },
  73. ];
  74. diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
  75. index c6202c7..d68bd8c 100644
  76. --- a/build/gulpfile.vscode.js
  77. +++ b/build/gulpfile.vscode.js
  78. @@ -341,2 +341,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
  79. + const electronOverride = {};
  80. + if (process.env.VSCODE_ELECTRON_REPO) {
  81. + // electron doesn't support riscv64 and ppc64le, override the repo with `VSCODE_ELECTRON_REPO`.
  82. + electronOverride.repo = process.env.VSCODE_ELECTRON_REPO;
  83. + }
  84. +
  85. + if (process.env.VSCODE_ELECTRON_TAG) {
  86. + electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
  87. + }
  88. +
  89. let result = all
  90. @@ -345,3 +355,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
  91. .pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
  92. - .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
  93. + .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
  94. .pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
  95. @@ -434,2 +444,4 @@ const BUILD_TARGETS = [
  96. { platform: 'linux', arch: 'arm64' },
  97. + { platform: 'linux', arch: 'ppc64le' },
  98. + { platform: 'linux', arch: 'riscv64' },
  99. ];
  100. diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
  101. index 28ddfb0..cb3169c 100644
  102. --- a/build/gulpfile.vscode.linux.js
  103. +++ b/build/gulpfile.vscode.linux.js
  104. @@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
  105. function getDebPackageArch(arch) {
  106. - return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
  107. + return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
  108. }
  109. @@ -141,3 +141,3 @@ function getRpmBuildPath(rpmArch) {
  110. function getRpmPackageArch(arch) {
  111. - return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
  112. + return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
  113. }
  114. @@ -301,2 +301,4 @@ const BUILD_TARGETS = [
  115. { arch: 'arm64' },
  116. + { arch: 'ppc64le' },
  117. + { arch: 'riscv64' },
  118. ];
  119. diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
  120. index bbcb6bf..d00158f 100644
  121. --- a/build/linux/debian/calculate-deps.js
  122. +++ b/build/linux/debian/calculate-deps.js
  123. @@ -51,2 +51,8 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
  124. break;
  125. + case 'ppc64el':
  126. + cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
  127. + break;
  128. + case 'riscv64':
  129. + cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`, `-l${chromiumSysroot}/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
  130. + break;
  131. }
  132. diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
  133. index 92f8065..b86b4db 100644
  134. --- a/build/linux/debian/calculate-deps.ts
  135. +++ b/build/linux/debian/calculate-deps.ts
  136. @@ -61,2 +61,14 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
  137. break;
  138. + case 'ppc64el':
  139. + cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`,
  140. + `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`,
  141. + `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`,
  142. + `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
  143. + break;
  144. + case 'riscv64':
  145. + cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`,
  146. + `-l${chromiumSysroot}/lib/riscv64-linux-gnu`,
  147. + `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`,
  148. + `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
  149. + break;
  150. }
  151. diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
  152. index d843c09..3b869cb 100644
  153. --- a/build/linux/debian/dep-lists.js
  154. +++ b/build/linux/debian/dep-lists.js
  155. @@ -141,2 +141,81 @@ exports.referenceGeneratedDepsByArch = {
  156. 'xdg-utils (>= 1.0.2)'
  157. + ],
  158. + 'ppc64el': [
  159. + 'ca-certificates',
  160. + 'libasound2 (>= 1.0.17)',
  161. + 'libatk-bridge2.0-0 (>= 2.5.3)',
  162. + 'libatk1.0-0 (>= 2.2.0)',
  163. + 'libatspi2.0-0 (>= 2.9.90)',
  164. + 'libc6 (>= 2.17)',
  165. + 'libc6 (>= 2.28)',
  166. + 'libcairo2 (>= 1.6.0)',
  167. + 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
  168. + 'libdbus-1-3 (>= 1.9.14)',
  169. + 'libdrm2 (>= 2.4.75)',
  170. + 'libexpat1 (>= 2.1~beta3)',
  171. + 'libgbm1 (>= 17.1.0~rc2)',
  172. + 'libglib2.0-0 (>= 2.37.3)',
  173. + 'libgssapi-krb5-2 (>= 1.17)',
  174. + 'libgtk-3-0 (>= 3.9.10)',
  175. + 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
  176. + 'libkrb5-3 (>= 1.6.dfsg.2)',
  177. + 'libnspr4 (>= 2:4.9-2~)',
  178. + 'libnss3 (>= 2:3.30)',
  179. + 'libnss3 (>= 3.26)',
  180. + 'libpango-1.0-0 (>= 1.14.0)',
  181. + 'libstdc++6 (>= 4.1.1)',
  182. + 'libstdc++6 (>= 5)',
  183. + 'libstdc++6 (>= 5.2)',
  184. + 'libstdc++6 (>= 6)',
  185. + 'libx11-6',
  186. + 'libx11-6 (>= 2:1.4.99.1)',
  187. + 'libxcb1 (>= 1.9.2)',
  188. + 'libxcomposite1 (>= 1:0.4.4-1)',
  189. + 'libxdamage1 (>= 1:1.1)',
  190. + 'libxext6',
  191. + 'libxfixes3',
  192. + 'libxkbcommon0 (>= 0.5.0)',
  193. + 'libxkbfile1 (>= 1:1.1.0)',
  194. + 'libxrandr2',
  195. + 'xdg-utils (>= 1.0.2)'
  196. + ],
  197. + 'riscv64': [
  198. + 'ca-certificates',
  199. + 'libatomic1',
  200. + 'libasound2 (>= 1.0.17)',
  201. + 'libatk-bridge2.0-0 (>= 2.5.3)',
  202. + 'libatk1.0-0 (>= 2.2.0)',
  203. + 'libatspi2.0-0 (>= 2.9.90)',
  204. + 'libc6 (>= 2.17)',
  205. + 'libc6 (>= 2.28)',
  206. + 'libcairo2 (>= 1.6.0)',
  207. + 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
  208. + 'libdbus-1-3 (>= 1.0.2)',
  209. + 'libdrm2 (>= 2.4.60)',
  210. + 'libexpat1 (>= 2.0.1)',
  211. + 'libgbm1 (>= 17.1.0~rc2)',
  212. + 'libglib2.0-0 (>= 2.16.0)',
  213. + 'libglib2.0-0 (>= 2.39.4)',
  214. + 'libgtk-3-0 (>= 3.9.10)',
  215. + 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
  216. + 'libnspr4 (>= 2:4.9-2~)',
  217. + 'libnss3 (>= 2:3.22)',
  218. + 'libnss3 (>= 3.26)',
  219. + 'libpango-1.0-0 (>= 1.14.0)',
  220. + 'libsecret-1-0 (>= 0.18)',
  221. + 'libstdc++6 (>= 4.1.1)',
  222. + 'libstdc++6 (>= 5)',
  223. + 'libstdc++6 (>= 5.2)',
  224. + 'libstdc++6 (>= 6)',
  225. + 'libx11-6',
  226. + 'libx11-6 (>= 2:1.4.99.1)',
  227. + 'libxcb1 (>= 1.9.2)',
  228. + 'libxcomposite1 (>= 1:0.4.4-1)',
  229. + 'libxdamage1 (>= 1:1.1)',
  230. + 'libxext6',
  231. + 'libxfixes3',
  232. + 'libxkbcommon0 (>= 0.4.1)',
  233. + 'libxkbfile1',
  234. + 'libxrandr2',
  235. + 'xdg-utils (>= 1.0.2)'
  236. ]
  237. diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
  238. index 4028370..ff4df2f 100644
  239. --- a/build/linux/debian/dep-lists.ts
  240. +++ b/build/linux/debian/dep-lists.ts
  241. @@ -141,2 +141,81 @@ export const referenceGeneratedDepsByArch = {
  242. 'xdg-utils (>= 1.0.2)'
  243. + ],
  244. + 'ppc64el': [
  245. + 'ca-certificates',
  246. + 'libasound2 (>= 1.0.17)',
  247. + 'libatk-bridge2.0-0 (>= 2.5.3)',
  248. + 'libatk1.0-0 (>= 2.2.0)',
  249. + 'libatspi2.0-0 (>= 2.9.90)',
  250. + 'libc6 (>= 2.17)',
  251. + 'libc6 (>= 2.28)',
  252. + 'libcairo2 (>= 1.6.0)',
  253. + 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
  254. + 'libdbus-1-3 (>= 1.9.14)',
  255. + 'libdrm2 (>= 2.4.75)',
  256. + 'libexpat1 (>= 2.1~beta3)',
  257. + 'libgbm1 (>= 17.1.0~rc2)',
  258. + 'libglib2.0-0 (>= 2.37.3)',
  259. + 'libgssapi-krb5-2 (>= 1.17)',
  260. + 'libgtk-3-0 (>= 3.9.10)',
  261. + 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
  262. + 'libkrb5-3 (>= 1.6.dfsg.2)',
  263. + 'libnspr4 (>= 2:4.9-2~)',
  264. + 'libnss3 (>= 2:3.30)',
  265. + 'libnss3 (>= 3.26)',
  266. + 'libpango-1.0-0 (>= 1.14.0)',
  267. + 'libstdc++6 (>= 4.1.1)',
  268. + 'libstdc++6 (>= 5)',
  269. + 'libstdc++6 (>= 5.2)',
  270. + 'libstdc++6 (>= 6)',
  271. + 'libx11-6',
  272. + 'libx11-6 (>= 2:1.4.99.1)',
  273. + 'libxcb1 (>= 1.9.2)',
  274. + 'libxcomposite1 (>= 1:0.4.4-1)',
  275. + 'libxdamage1 (>= 1:1.1)',
  276. + 'libxext6',
  277. + 'libxfixes3',
  278. + 'libxkbcommon0 (>= 0.5.0)',
  279. + 'libxkbfile1 (>= 1:1.1.0)',
  280. + 'libxrandr2',
  281. + 'xdg-utils (>= 1.0.2)'
  282. + ],
  283. + 'riscv64': [
  284. + 'ca-certificates',
  285. + 'libatomic1',
  286. + 'libasound2 (>= 1.0.17)',
  287. + 'libatk-bridge2.0-0 (>= 2.5.3)',
  288. + 'libatk1.0-0 (>= 2.2.0)',
  289. + 'libatspi2.0-0 (>= 2.9.90)',
  290. + 'libc6 (>= 2.17)',
  291. + 'libc6 (>= 2.28)',
  292. + 'libcairo2 (>= 1.6.0)',
  293. + 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
  294. + 'libdbus-1-3 (>= 1.0.2)',
  295. + 'libdrm2 (>= 2.4.60)',
  296. + 'libexpat1 (>= 2.0.1)',
  297. + 'libgbm1 (>= 17.1.0~rc2)',
  298. + 'libglib2.0-0 (>= 2.16.0)',
  299. + 'libglib2.0-0 (>= 2.39.4)',
  300. + 'libgtk-3-0 (>= 3.9.10)',
  301. + 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
  302. + 'libnspr4 (>= 2:4.9-2~)',
  303. + 'libnss3 (>= 2:3.22)',
  304. + 'libnss3 (>= 3.26)',
  305. + 'libpango-1.0-0 (>= 1.14.0)',
  306. + 'libsecret-1-0 (>= 0.18)',
  307. + 'libstdc++6 (>= 4.1.1)',
  308. + 'libstdc++6 (>= 5)',
  309. + 'libstdc++6 (>= 5.2)',
  310. + 'libstdc++6 (>= 6)',
  311. + 'libx11-6',
  312. + 'libx11-6 (>= 2:1.4.99.1)',
  313. + 'libxcb1 (>= 1.9.2)',
  314. + 'libxcomposite1 (>= 1:0.4.4-1)',
  315. + 'libxdamage1 (>= 1:1.1)',
  316. + 'libxext6',
  317. + 'libxfixes3',
  318. + 'libxkbcommon0 (>= 0.4.1)',
  319. + 'libxkbfile1',
  320. + 'libxrandr2',
  321. + 'xdg-utils (>= 1.0.2)'
  322. ]
  323. diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
  324. index feca7d3..f075ebc 100644
  325. --- a/build/linux/debian/install-sysroot.js
  326. +++ b/build/linux/debian/install-sysroot.js
  327. @@ -72,3 +72,6 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
  328. try {
  329. - const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
  330. + // if VSCODE_SYSROOT_REPO and VSCODE_SYSROOT_VERSION are set, use those instead
  331. + const repo = process.env['VSCODE_SYSROOT_REPO'] ?? 'Microsoft/vscode-linux-build-agent';
  332. + const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
  333. + const response = await fetch(`https://api.github.com/repos/${repo}/releases/tags/v${actualVersion}`, {
  334. headers: ghApiHeaders,
  335. @@ -81,3 +84,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
  336. if (!asset) {
  337. - throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
  338. + throw new Error(`Could not find asset in release of ${repo} @ ${actualVersion}`);
  339. }
  340. @@ -136,2 +139,10 @@ async function getVSCodeSysroot(arch) {
  341. break;
  342. + case 'ppc64le':
  343. + expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
  344. + triple = `powerpc64le-linux-gnu`;
  345. + break;
  346. + case 'riscv64':
  347. + expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
  348. + triple = 'riscv64-linux-gnu';
  349. + break;
  350. }
  351. diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
  352. index aa417dc..58f0eee 100644
  353. --- a/build/linux/debian/install-sysroot.ts
  354. +++ b/build/linux/debian/install-sysroot.ts
  355. @@ -84,3 +84,6 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
  356. try {
  357. - const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
  358. + // if VSCODE_SYSROOT_REPO and VSCODE_SYSROOT_VERSION are set, use those instead
  359. + const repo = process.env['VSCODE_SYSROOT_REPO'] ?? 'Microsoft/vscode-linux-build-agent';
  360. + const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
  361. + const response = await fetch(`https://api.github.com/repos/${repo}/releases/tags/v${actualVersion}`, {
  362. headers: ghApiHeaders,
  363. @@ -93,3 +96,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
  364. if (!asset) {
  365. - throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
  366. + throw new Error(`Could not find asset in release of ${repo} @ ${actualVersion}`);
  367. }
  368. @@ -153,2 +156,10 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
  369. break;
  370. + case 'ppc64el':
  371. + expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
  372. + triple = 'powerpc64le-linux-gnu'
  373. + break;
  374. + case 'riscv64':
  375. + expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
  376. + triple = 'riscv64-linux-gnu';
  377. + break;
  378. }
  379. diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
  380. index ce21d50..cadefc2 100644
  381. --- a/build/linux/debian/types.js
  382. +++ b/build/linux/debian/types.js
  383. @@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
  384. function isDebianArchString(s) {
  385. - return ['amd64', 'armhf', 'arm64'].includes(s);
  386. + return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
  387. }
  388. diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
  389. index e97485e..24fe452 100644
  390. --- a/build/linux/debian/types.ts
  391. +++ b/build/linux/debian/types.ts
  392. @@ -5,6 +5,6 @@
  393. -export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
  394. +export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
  395. export function isDebianArchString(s: string): s is DebianArchString {
  396. - return ['amd64', 'armhf', 'arm64'].includes(s);
  397. + return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
  398. }
  399. diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
  400. index 8be4772..5841d47 100644
  401. --- a/build/linux/rpm/dep-lists.js
  402. +++ b/build/linux/rpm/dep-lists.js
  403. @@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
  404. 'xdg-utils'
  405. + ],
  406. + "ppc64le": [
  407. + 'ca-certificates',
  408. + 'ld-linux-x86-64.so.2()(64bit)',
  409. + 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
  410. + 'ld64.so.2()(64bit)',
  411. + 'ld64.so.2(GLIBC_2.17)(64bit)',
  412. + 'libX11.so.6()(64bit)',
  413. + 'libXcomposite.so.1()(64bit)',
  414. + 'libXdamage.so.1()(64bit)',
  415. + 'libXext.so.6()(64bit)',
  416. + 'libXfixes.so.3()(64bit)',
  417. + 'libXrandr.so.2()(64bit)',
  418. + 'libasound.so.2()(64bit)',
  419. + 'libasound.so.2(ALSA_0.9)(64bit)',
  420. + 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
  421. + 'libatk-1.0.so.0()(64bit)',
  422. + 'libatk-bridge-2.0.so.0()(64bit)',
  423. + 'libatspi.so.0()(64bit)',
  424. + 'libc.so.6()(64bit)',
  425. + 'libc.so.6(GLIBC_2.14)(64bit)',
  426. + 'libc.so.6(GLIBC_2.17)(64bit)',
  427. + 'libc.so.6(GLIBC_2.2.5)(64bit)',
  428. + 'libc.so.6(GLIBC_2.28)(64bit)',
  429. + 'libc.so.6(GLIBC_2.4)(64bit)',
  430. + 'libc.so.6(GLIBC_2.9)(64bit)',
  431. + 'libcairo.so.2()(64bit)',
  432. + 'libcups.so.2()(64bit)',
  433. + 'libcurl.so.4()(64bit)',
  434. + 'libdbus-1.so.3()(64bit)',
  435. + 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
  436. + 'libdl.so.2()(64bit)',
  437. + 'libdl.so.2(GLIBC_2.17)(64bit)',
  438. + 'libdrm.so.2()(64bit)',
  439. + 'libexpat.so.1()(64bit)',
  440. + 'libgbm.so.1()(64bit)',
  441. + 'libgcc_s.so.1()(64bit)',
  442. + 'libgcc_s.so.1(GCC_3.0)(64bit)',
  443. + 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
  444. + 'libgio-2.0.so.0()(64bit)',
  445. + 'libglib-2.0.so.0()(64bit)',
  446. + 'libgobject-2.0.so.0()(64bit)',
  447. + 'libgssapi_krb5.so.2()(64bit)',
  448. + 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
  449. + 'libgtk-3.so.0()(64bit)',
  450. + 'libkrb5.so.3()(64bit)',
  451. + 'libkrb5.so.3(krb5_3_MIT)(64bit)',
  452. + 'libm.so.6()(64bit)',
  453. + 'libm.so.6(GLIBC_2.17)(64bit)',
  454. + 'libm.so.6(GLIBC_2.2.5)(64bit)',
  455. + 'libm.so.6(GLIBC_2.27)(64bit)',
  456. + 'libnspr4.so()(64bit)',
  457. + 'libnss3.so()(64bit)',
  458. + 'libnss3.so(NSS_3.11)(64bit)',
  459. + 'libnss3.so(NSS_3.12)(64bit)',
  460. + 'libnss3.so(NSS_3.12.1)(64bit)',
  461. + 'libnss3.so(NSS_3.2)(64bit)',
  462. + 'libnss3.so(NSS_3.22)(64bit)',
  463. + 'libnss3.so(NSS_3.3)(64bit)',
  464. + 'libnss3.so(NSS_3.30)(64bit)',
  465. + 'libnss3.so(NSS_3.4)(64bit)',
  466. + 'libnss3.so(NSS_3.5)(64bit)',
  467. + 'libnss3.so(NSS_3.9.2)(64bit)',
  468. + 'libnssutil3.so()(64bit)',
  469. + 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
  470. + 'libpango-1.0.so.0()(64bit)',
  471. + 'libpthread.so.0()(64bit)',
  472. + 'libpthread.so.0(GLIBC_2.17)(64bit)',
  473. + 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
  474. + 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
  475. + 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
  476. + 'libsmime3.so()(64bit)',
  477. + 'libsmime3.so(NSS_3.10)(64bit)',
  478. + 'libsmime3.so(NSS_3.2)(64bit)',
  479. + 'libssl3.so(NSS_3.28)(64bit)',
  480. + 'libstdc++.so.6()(64bit)',
  481. + 'libstdc++.so.6(CXXABI_1.3)(64bit)',
  482. + 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
  483. + 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
  484. + 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
  485. + 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
  486. + 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
  487. + 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
  488. + 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
  489. + 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
  490. + 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
  491. + 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
  492. + 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
  493. + 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
  494. + 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
  495. + 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
  496. + 'libutil.so.1()(64bit)',
  497. + 'libutil.so.1(GLIBC_2.2.5)(64bit)',
  498. + 'libxcb.so.1()(64bit)',
  499. + 'libxkbcommon.so.0()(64bit)',
  500. + 'libxkbcommon.so.0(V_0.5.0)(64bit)',
  501. + 'libxkbfile.so.1()(64bit)',
  502. + 'rpmlib(FileDigests) <= 4.6.0-1',
  503. + 'rtld(GNU_HASH)',
  504. + 'xdg-utils'
  505. ]
  506. diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
  507. index 24b18d5..924e626 100644
  508. --- a/build/linux/rpm/dep-lists.ts
  509. +++ b/build/linux/rpm/dep-lists.ts
  510. @@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
  511. 'xdg-utils'
  512. + ],
  513. + "ppc64le": [
  514. + 'ca-certificates',
  515. + 'ld-linux-x86-64.so.2()(64bit)',
  516. + 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
  517. + 'ld64.so.2()(64bit)',
  518. + 'ld64.so.2(GLIBC_2.17)(64bit)',
  519. + 'libX11.so.6()(64bit)',
  520. + 'libXcomposite.so.1()(64bit)',
  521. + 'libXdamage.so.1()(64bit)',
  522. + 'libXext.so.6()(64bit)',
  523. + 'libXfixes.so.3()(64bit)',
  524. + 'libXrandr.so.2()(64bit)',
  525. + 'libasound.so.2()(64bit)',
  526. + 'libasound.so.2(ALSA_0.9)(64bit)',
  527. + 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
  528. + 'libatk-1.0.so.0()(64bit)',
  529. + 'libatk-bridge-2.0.so.0()(64bit)',
  530. + 'libatspi.so.0()(64bit)',
  531. + 'libc.so.6()(64bit)',
  532. + 'libc.so.6(GLIBC_2.14)(64bit)',
  533. + 'libc.so.6(GLIBC_2.17)(64bit)',
  534. + 'libc.so.6(GLIBC_2.2.5)(64bit)',
  535. + 'libc.so.6(GLIBC_2.28)(64bit)',
  536. + 'libc.so.6(GLIBC_2.4)(64bit)',
  537. + 'libc.so.6(GLIBC_2.9)(64bit)',
  538. + 'libcairo.so.2()(64bit)',
  539. + 'libcups.so.2()(64bit)',
  540. + 'libcurl.so.4()(64bit)',
  541. + 'libdbus-1.so.3()(64bit)',
  542. + 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
  543. + 'libdl.so.2()(64bit)',
  544. + 'libdl.so.2(GLIBC_2.17)(64bit)',
  545. + 'libdrm.so.2()(64bit)',
  546. + 'libexpat.so.1()(64bit)',
  547. + 'libgbm.so.1()(64bit)',
  548. + 'libgcc_s.so.1()(64bit)',
  549. + 'libgcc_s.so.1(GCC_3.0)(64bit)',
  550. + 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
  551. + 'libgio-2.0.so.0()(64bit)',
  552. + 'libglib-2.0.so.0()(64bit)',
  553. + 'libgobject-2.0.so.0()(64bit)',
  554. + 'libgssapi_krb5.so.2()(64bit)',
  555. + 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
  556. + 'libgtk-3.so.0()(64bit)',
  557. + 'libkrb5.so.3()(64bit)',
  558. + 'libkrb5.so.3(krb5_3_MIT)(64bit)',
  559. + 'libm.so.6()(64bit)',
  560. + 'libm.so.6(GLIBC_2.17)(64bit)',
  561. + 'libm.so.6(GLIBC_2.2.5)(64bit)',
  562. + 'libm.so.6(GLIBC_2.27)(64bit)',
  563. + 'libnspr4.so()(64bit)',
  564. + 'libnss3.so()(64bit)',
  565. + 'libnss3.so(NSS_3.11)(64bit)',
  566. + 'libnss3.so(NSS_3.12)(64bit)',
  567. + 'libnss3.so(NSS_3.12.1)(64bit)',
  568. + 'libnss3.so(NSS_3.2)(64bit)',
  569. + 'libnss3.so(NSS_3.22)(64bit)',
  570. + 'libnss3.so(NSS_3.3)(64bit)',
  571. + 'libnss3.so(NSS_3.30)(64bit)',
  572. + 'libnss3.so(NSS_3.4)(64bit)',
  573. + 'libnss3.so(NSS_3.5)(64bit)',
  574. + 'libnss3.so(NSS_3.9.2)(64bit)',
  575. + 'libnssutil3.so()(64bit)',
  576. + 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
  577. + 'libpango-1.0.so.0()(64bit)',
  578. + 'libpthread.so.0()(64bit)',
  579. + 'libpthread.so.0(GLIBC_2.17)(64bit)',
  580. + 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
  581. + 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
  582. + 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
  583. + 'libsmime3.so()(64bit)',
  584. + 'libsmime3.so(NSS_3.10)(64bit)',
  585. + 'libsmime3.so(NSS_3.2)(64bit)',
  586. + 'libssl3.so(NSS_3.28)(64bit)',
  587. + 'libstdc++.so.6()(64bit)',
  588. + 'libstdc++.so.6(CXXABI_1.3)(64bit)',
  589. + 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
  590. + 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
  591. + 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
  592. + 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
  593. + 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
  594. + 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
  595. + 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
  596. + 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
  597. + 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
  598. + 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
  599. + 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
  600. + 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
  601. + 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
  602. + 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
  603. + 'libutil.so.1()(64bit)',
  604. + 'libutil.so.1(GLIBC_2.2.5)(64bit)',
  605. + 'libxcb.so.1()(64bit)',
  606. + 'libxkbcommon.so.0()(64bit)',
  607. + 'libxkbcommon.so.0(V_0.5.0)(64bit)',
  608. + 'libxkbfile.so.1()(64bit)',
  609. + 'rpmlib(FileDigests) <= 4.6.0-1',
  610. + 'rtld(GNU_HASH)',
  611. + 'xdg-utils'
  612. ]
  613. diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
  614. index a20b9c2..99a8cff 100644
  615. --- a/build/linux/rpm/types.js
  616. +++ b/build/linux/rpm/types.js
  617. @@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
  618. function isRpmArchString(s) {
  619. - return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
  620. + return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
  621. }
  622. diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
  623. index c6a01da..d94537e 100644
  624. --- a/build/linux/rpm/types.ts
  625. +++ b/build/linux/rpm/types.ts
  626. @@ -5,6 +5,6 @@
  627. -export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64';
  628. +export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
  629. export function isRpmArchString(s: string): s is RpmArchString {
  630. - return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
  631. + return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
  632. }
  633. diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
  634. index 4bec13d..3debda1 100644
  635. --- a/cli/src/update_service.rs
  636. +++ b/cli/src/update_service.rs
  637. @@ -216,2 +216,5 @@ pub enum Platform {
  638. LinuxARM32Legacy,
  639. + LinuxPPC64LE,
  640. + LinuxPPC64LELegacy,
  641. + LinuxRISCV64,
  642. DarwinX64,
  643. @@ -229,2 +232,4 @@ impl Platform {
  644. Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
  645. + Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
  646. + Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
  647. Platform::DarwinX64 => Some("darwin".to_owned()),
  648. @@ -247,2 +252,5 @@ impl Platform {
  649. Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
  650. + Platform::LinuxPPC64LE => "server-linux-ppc64le",
  651. + Platform::LinuxPPC64LELegacy => "server-linux-legacy-ppc64le",
  652. + Platform::LinuxRISCV64 => "server-linux-riscv64",
  653. Platform::DarwinX64 => "server-darwin",
  654. @@ -266,2 +274,5 @@ impl Platform {
  655. Platform::LinuxARM32Legacy => "cli-linux-armhf",
  656. + Platform::LinuxPPC64LE => "cli-linux-ppc64le",
  657. + Platform::LinuxPPC64LELegacy => "cli-linux-ppc64le",
  658. + Platform::LinuxRISCV64 => "cli-linux-riscv64",
  659. Platform::DarwinX64 => "cli-darwin-x64",
  660. @@ -298,2 +309,6 @@ impl Platform {
  661. Some(Platform::LinuxARM64)
  662. + } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
  663. + Some(Platform::LinuxPPC64LE)
  664. + } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
  665. + Some(Platform::LinuxRISCV64)
  666. } else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
  667. @@ -325,2 +340,5 @@ impl fmt::Display for Platform {
  668. Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
  669. + Platform::LinuxPPC64LE => "LinuxPPC64LE",
  670. + Platform::LinuxPPC64LELegacy => "LinuxPPC64LELegacy",
  671. + Platform::LinuxRISCV64 => "LinuxRISCV64",
  672. Platform::DarwinX64 => "DarwinX64",
  673. diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
  674. index 5d4953a..f22ff60 100644
  675. --- a/cli/src/util/prereqs.rs
  676. +++ b/cli/src/util/prereqs.rs
  677. @@ -76,2 +76,6 @@ impl PreReqChecker {
  678. Platform::LinuxARM32
  679. + } else if cfg!(target_arch = "ppc64le") {
  680. + Platform::LinuxPPC64LE
  681. + } else if cfg!(target_arch = "riscv64") {
  682. + Platform::LinuxRISCV64
  683. } else {
  684. @@ -85,2 +89,4 @@ impl PreReqChecker {
  685. Platform::LinuxARM32Legacy
  686. + } else if cfg!(target_arch = "ppc64le") {
  687. + Platform::LinuxPPC64LELegacy
  688. } else {
  689. diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
  690. index 0795578..c057746 100644
  691. --- a/resources/server/bin/helpers/check-requirements-linux.sh
  692. +++ b/resources/server/bin/helpers/check-requirements-linux.sh
  693. @@ -52,2 +52,4 @@ case $ARCH in
  694. ;;
  695. + ppc64el) LDCONFIG_ARCH="64bit";;
  696. + riscv64) LDCONFIG_ARCH="RISC-V";;
  697. esac
  698. diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
  699. index 68f2198..1c15fe4 100644
  700. --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
  701. +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
  702. @@ -41,2 +41,4 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
  703. case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
  704. + case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
  705. + case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
  706. @@ -64,2 +66,4 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
  707. case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
  708. + case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
  709. + case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
  710. @@ -99,2 +103,8 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
  711. }
  712. + if (arch === 'ppc64le') {
  713. + return TargetPlatform.LINUX_PPC64LE;
  714. + }
  715. + if (arch === 'riscv64') {
  716. + return TargetPlatform.LINUX_RISCV64;
  717. + }
  718. return TargetPlatform.UNKNOWN;
  719. diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
  720. index 4dd080d..e154312 100644
  721. --- a/src/vs/platform/extensions/common/extensions.ts
  722. +++ b/src/vs/platform/extensions/common/extensions.ts
  723. @@ -306,2 +306,4 @@ export const enum TargetPlatform {
  724. LINUX_ARMHF = 'linux-armhf',
  725. + LINUX_PPC64LE = 'linux-ppc64le',
  726. + LINUX_RISCV64 = 'linux-riscv64',