TESTED: All tests pass except x86_64 with --enable-user32 and/or smp.

---
 .forgejo/workflows/action.yaml | 95 ++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 .forgejo/workflows/action.yaml

diff --git a/.forgejo/workflows/action.yaml b/.forgejo/workflows/action.yaml
new file mode 100644
index 00000000..f0fac391
--- /dev/null
+++ b/.forgejo/workflows/action.yaml
@@ -0,0 +1,95 @@
+on:
+  push:
+    branches:
+      - 'master'
+      - 'ci-*'
+
+jobs:
+  i386:
+    runs-on: self
+    strategy:
+      matrix:
+        smp: ["--enable-ncpus=1 --enable-apic", "--enable-ncpus=1 
--disable-apic", "--enable-ncpus=8"]
+        pae: ["--enable-pae", "--disable-pae"]
+        kdb: ["--enable-kdb", "--disable-kdb"]
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v6
+      - name: gnumach 32 bit
+        run: |
+          git clone -q --depth=1 --single-branch 
https://https.git.savannah.gnu.org/git/hurd/mig.git mig32
+          autoreconf -fi
+          mkdir gnu32
+          mkdir build32
+          cd build32
+          ../configure --prefix= --host=i686-gnu LD=i686-linux-gnu-ld 
CC=i686-linux-gnu-gcc \
+                  --disable-linux-groups \
+                  ${{ matrix.smp }} \
+                  ${{ matrix.pae }} \
+                  ${{ matrix.kdb }}
+          make DESTDIR=../gnu32 install-data
+          cd ..
+          cd mig32
+          autoreconf -fi
+          mkdir build32
+          cd build32
+          GNU=$(realpath ../../gnu32)
+          TARGET_CPPFLAGS=-I"$GNU"/include TARGET_CC=i686-linux-gnu-gcc 
../configure --prefix="$GNU" --target=i686-gnu
+          make all install
+          PATH=$PATH:$GNU/bin
+          cd ../..
+          cd build32
+          ../configure --prefix= --host=i686-gnu LD=i686-linux-gnu-ld 
CC=i686-linux-gnu-gcc MIG=i686-gnu-mig \
+                  --enable-apic --disable-linux-groups \
+                  ${{ matrix.enable-ncpus }} \
+                  ${{ matrix.kdb }}
+          make gnumach.gz
+          make check
+  x86_64:
+    runs-on: self
+    strategy:
+      matrix:
+        smp: ["--enable-ncpus=1", "--enable-ncpus=8"]
+        user32: ["--enable-user32", "--disable-user32"]
+        kdb: ["--enable-kdb", "--disable-kdb"]
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v6
+      - name: gnumach 64 bit
+        run: |
+          git clone -q --depth=1 --single-branch 
https://https.git.savannah.gnu.org/git/hurd/mig.git
+          autoreconf -fi
+          if [ ${{ matrix.user32 }} == '--enable-user32' ]; then
+            MIG_H=i686
+            B=32
+          else
+            MIG_H=x86_64
+            B=64
+          fi
+          mkdir gnu${B}
+          mkdir build64
+          cd build64
+          ../configure --prefix= --host=${MIG_H}-gnu LD=${MIG_H}-linux-gnu-ld 
CC=${MIG_H}-linux-gnu-gcc \
+                  --enable-apic --disable-linux-groups \
+                  ${{ matrix.smp }} \
+                  ${{ matrix.user32 }} \
+                  ${{ matrix.kdb }}
+          make DESTDIR=../gnu${B} install-data
+          cd ..
+          cd mig
+          autoreconf -fi
+          mkdir build
+          cd build
+          GNU=$(realpath ../../gnu${B})
+          TARGET_CPPFLAGS=-I"$GNU"/include TARGET_CC=${MIG_H}-linux-gnu-gcc 
../configure --prefix="$GNU" --target=${MIG_H}-gnu
+          make all install
+          cd ../..
+          PATH=$PATH:$GNU/bin
+          cd build64
+          ../configure --prefix= --host=x86_64-gnu MIG=${MIG_H}-gnu-mig \
+                  --enable-apic --disable-linux-groups \
+                  ${{ matrix.smp }} \
+                  ${{ matrix.user32 }} \
+                  ${{ matrix.kdb }}
+          make gnumach.gz
+          make check
-- 
2.51.0



Reply via email to