diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-armhf.txt
new file mode 100644
index 0000000..2eee70b
--- /dev/null
+++ b/.github/cross/ubuntu-armhf.txt
@@ -0,0 +1,17 @@
+[binaries]
+c = '/usr/bin/arm-linux-gnueabihf-gcc'
+ar = '/usr/arm-linux-gnueabihf/bin/ar'
+strip = '/usr/arm-linux-gnueabihf/bin/strip'
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'
+ld = '/usr/bin/arm-linux/gnueabihf-ld'
+
+[properties]
+root = '/usr/arm-linux-gnueabihf'
+has_function_printf = true
+skip_sanity_check = true
+
+[host_machine]
+system = 'linux'
+cpu_family = 'arm'
+cpu = 'armv7'
+endian = 'little'
diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-ppc64le.txt
new file mode 100644
index 0000000..4cf6a92
--- /dev/null
+++ b/.github/cross/ubuntu-ppc64le.txt
@@ -0,0 +1,17 @@
+[binaries]
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'
+ar = '/usr/powerpc64le-linux-gnu/bin/ar'
+strip = '/usr/powerpc64le-linux-gnu/bin/strip'
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'
+ld = '/usr/bin/powerpc64le-linux-gnu-ld'
+
+[properties]
+root = '/usr/powerpc64le-linux-gnu'
+has_function_printf = true
+skip_sanity_check = true
+
+[host_machine]
+system = 'linux'
+cpu_family = 'ppc64'
+cpu = ''
+endian = 'little'
diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml
index c49470b..ee80af3 100644
--- a/.github/workflows/meson.yml
+++ b/.github/workflows/meson.yml
@@ -28,6 +28,66 @@ jobs:
setup-options: --werror
action: build
+ build-cross-armhf:
+ runs-on: ubuntu-latest
+ steps:
+ - name: set up arm architecture
+ run: |
+ export release=$(lsb_release -c -s)
+ sudo dpkg --add-architecture armhf
+ sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
+ sudo dd of=/etc/apt/sources.list.d/armhf.list <