]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Workaround for qemu bug affecting the ppc intruction vmsumudm
authorNiels Möller <nisse@lysator.liu.se>
Sun, 14 Aug 2022 18:53:10 +0000 (20:53 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Sun, 14 Aug 2022 18:53:10 +0000 (20:53 +0200)
Introduce overriding environment variable NETTLE_FAT_DISABLE_POWER9
that disables use of power9 code. This makes poly1305 tests under qemu
pass. See https://gitlab.com/qemu-project/qemu/-/issues/1156.

.gitlab-ci.yml
fat-ppc.c
fat-setup.h

index ed15456fede4b25f63e19f744ed70e6ab40c88b4..b206873e59603dafb9901f509c570c123e35c0e5 100644 (file)
@@ -158,8 +158,8 @@ Debian.cross.x86:
   - ./.bootstrap
   - ./configure --disable-static --disable-documentation $EXTRA_CONFIGURE_FLAGS --build=$build --host=$host
   - make -j$(nproc)
-  - NETTLE_TEST_SEED=0 make -j$(nproc) check
-  - NETTLE_TEST_SEED=0 make -j$(nproc) check-fat
+  - NETTLE_TEST_SEED=0 NETTLE_FAT_DISABLE_POWER9=1 make -j$(nproc) check
+  - NETTLE_TEST_SEED=0 NETTLE_FAT_DISABLE_POWER9=1 make -j$(nproc) check-fat
   tags:
   - shared
   - linux
index 7569e44d6cbf817e9af2c7b3519b045f32200057..b0412e5a00a31d454c6f60f3377869d28eee2a7d 100644 (file)
--- a/fat-ppc.c
+++ b/fat-ppc.c
@@ -153,6 +153,11 @@ get_ppc_features (struct ppc_features *features)
           == (PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_VSX));
 #endif
     }
+  /* NETTLE_FAT_DISABLE_POWER9 can be set to disable code that fails
+     in qemu, due to
+     https://gitlab.com/qemu-project/qemu/-/issues/1156. */
+  if (secure_getenv (ENV_DISABLE_POWER9))
+    features->have_power9 = 0;
 }
 
 DECLARE_FAT_FUNC(_nettle_aes_encrypt, aes_crypt_internal_func)
index ad3c10f06fe4c7bbf64b179bbe0ee3adcf515467..a35b8b8c3481a1d58b65f992b18da8e59fa497db 100644 (file)
@@ -92,6 +92,7 @@
 
 #define ENV_VERBOSE "NETTLE_FAT_VERBOSE"
 #define ENV_OVERRIDE "NETTLE_FAT_OVERRIDE"
+#define ENV_DISABLE_POWER9 "NETTLE_FAT_DISABLE_POWER9"
 
 struct chacha_ctx;
 struct salsa20_ctx;