From 12177871268a9090227901591d2e40d356c71720 Mon Sep 17 00:00:00 2001
From: Pavol Loffay
Date: Thu, 28 Mar 2024 10:10:01 +0100
Subject: [PATCH] Add support for ppc64le (#5350)
* Add support for ppc64le
Signed-off-by: Pavol Loffay
* Fix
Signed-off-by: Pavol Loffay
* Fix
Signed-off-by: Pavol Loffay
* Fix
Signed-off-by: Pavol Loffay
* Try enabling zig
Signed-off-by: Pavol Loffay
* Set linker via environment
---------
Signed-off-by: Pavol Loffay
Co-authored-by: Lukas Taegert-Atkinson
Co-authored-by: Lukas Taegert-Atkinson
---
.github/workflows/build-and-tests.yml | 10 ++++++++++
native.js | 1 +
npm/linux-ppc64le-gnu/README.md | 3 +++
npm/linux-ppc64le-gnu/package.json | 22 ++++++++++++++++++++++
package.json | 1 +
5 files changed, 37 insertions(+)
create mode 100644 npm/linux-ppc64le-gnu/README.md
create mode 100644 npm/linux-ppc64le-gnu/package.json
diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml
index 65846635dbf..1ae05d77696 100644
--- a/.github/workflows/build-and-tests.yml
+++ b/.github/workflows/build-and-tests.yml
@@ -183,6 +183,16 @@ jobs:
rustup target add riscv64gc-unknown-linux-gnu &&
npm run build:napi -- --release --target riscv64gc-unknown-linux-gnu &&
riscv64-linux-gnu-strip *.node
+ - host: ubuntu-latest
+ target: powerpc64le-unknown-linux-gnu
+ setup: |
+ sudo apt-get update
+ sudo apt-get install gcc-powerpc64le-linux-gnu -y
+ build: >-
+ set -e &&
+ export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc && rustup target add powerpc64le-unknown-linux-gnu &&
+ npm run build:napi -- --release --target powerpc64le-unknown-linux-gnu &&
+ powerpc64le-linux-gnu-strip *.node
- host: ubuntu-latest
target: s390x-unknown-linux-gnu
setup: |
diff --git a/native.js b/native.js
index 437a349a555..0462801f376 100644
--- a/native.js
+++ b/native.js
@@ -16,6 +16,7 @@ const bindingsByPlatformAndArch = {
linux: {
arm: { base: 'linux-arm-gnueabihf', musl: null },
arm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' },
+ ppc64le: { base: 'linux-ppc64le-gnu', musl: null },
riscv64: { base: 'linux-riscv64-gnu', musl: null },
s390x: { base: 'linux-s390x-gnu', musl: null },
x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' }
diff --git a/npm/linux-ppc64le-gnu/README.md b/npm/linux-ppc64le-gnu/README.md
new file mode 100644
index 00000000000..a1102236199
--- /dev/null
+++ b/npm/linux-ppc64le-gnu/README.md
@@ -0,0 +1,3 @@
+# `@rollup/rollup-linux-ppc64le-gnu`
+
+This is the **ppc64le-unknown-linux-gnu** binary for `rollup`
diff --git a/npm/linux-ppc64le-gnu/package.json b/npm/linux-ppc64le-gnu/package.json
new file mode 100644
index 00000000000..e385ad62b8f
--- /dev/null
+++ b/npm/linux-ppc64le-gnu/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "@rollup/rollup-linux-ppc64le-gnu",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "ppc64le"
+ ],
+ "files": [
+ "rollup.linux-ppc64le-gnu.node"
+ ],
+ "description": "Native bindings for Rollup",
+ "author": "Lukas Taegert-Atkinson",
+ "homepage": "https://rollupjs.org/",
+ "license": "MIT",
+ "repository": "rollup/rollup",
+ "libc": [
+ "glibc"
+ ],
+ "main": "./rollup.linux-ppc64le-gnu.node"
+}
diff --git a/package.json b/package.json
index 5e1dd0e67cd..e763f72c3d7 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"armv7-unknown-linux-gnueabihf",
"i686-pc-windows-msvc",
"riscv64gc-unknown-linux-gnu",
+ "ppc64le-unknown-linux-gnu",
"s390x-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-pc-windows-msvc",