Merge branch 'esl:main' into patch-1
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5392c80..583184e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -82,3 +82,26 @@
         run: |
           pip install --user codecov
           /home/runner/.local/bin/codecov
+
+  test-on-s390x:
+    runs-on: ubuntu-22.04
+    steps:
+    - uses: actions/checkout@v3
+    - name: Setup emulator
+      run: |
+        sudo docker run --rm --privileged tonistiigi/binfmt:qemu-v6.2.0
+    - name: Run build
+      uses: uraimo/run-on-arch-action@v2.6.0
+      with:
+        arch: s390x
+        distro: ubuntu22.04
+        install: |
+          apt-get update -y
+          DEBIAN_FRONTEND=noninteractive apt-get install -y rebar3 gcc libssl-dev
+        run: |
+          echo "---rebar3 as test get-deps---"
+          rebar3 as test get-deps
+          echo "---rebar3 as test compile---"
+          rebar3 as test compile
+          echo "---rebar3 as test ct---"
+          rebar3 as test ct
diff --git a/c_src/fast_pbkdf2.c b/c_src/fast_pbkdf2.c
index 680950e..8c05ea3 100644
--- a/c_src/fast_pbkdf2.c
+++ b/c_src/fast_pbkdf2.c
@@ -38,7 +38,7 @@
 
 static inline void write32_be(uint32_t n, uint8_t out[4])
 {
-#if defined(__GNUC__) && __GNUC__ >= 4 && __BYTE_ORDER == __LITTLE_ENDIAN
+#if defined(__GNUC__) && __GNUC__ >= 4 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
   *(uint32_t *)(out) = __builtin_bswap32(n);
 #else
   out[0] = (n >> 24) & 0xff;
@@ -50,7 +50,7 @@
 
 static inline void write64_be(uint64_t n, uint8_t out[8])
 {
-#if defined(__GNUC__) &&  __GNUC__ >= 4 && __BYTE_ORDER == __LITTLE_ENDIAN
+#if defined(__GNUC__) &&  __GNUC__ >= 4 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
   *(uint64_t *)(out) = __builtin_bswap64(n);
 #else
   write32_be((n >> 32) & 0xffffffff, out);