summaryrefslogtreecommitdiffstats
path: root/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch')
-rw-r--r--packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch98
1 files changed, 98 insertions, 0 deletions
diff --git a/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch
new file mode 100644
index 0000000..7d9b76d
--- /dev/null
+++ b/packages/app-crypt/veracrypt/files/veracrypt-1.26.29-argon2-avx2-avx512f.patch
@@ -0,0 +1,98 @@
+Fix build when CFLAGS contains or implies -mavx2 and/or -mavx512f
+
+https://bugs.gentoo.org/983361
+https://github.com/veracrypt/VeraCrypt/issues/1867
+
+--- a/Build/Include/Makefile.inc
++++ b/Build/Include/Makefile.inc
+@@ -14,7 +14,7 @@ $(NAME): $(NAME).a
+
+ clean:
+ @echo Cleaning $(NAME)
+- rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d) *.gch
++ rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE2:.osse2=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d) *.gch
+
+ %.o: %.c
+ @echo Compiling $(<F)
+@@ -24,6 +24,10 @@ clean:
+ @echo Compiling $(<F)
+ $(CC) $(CFLAGS) -O0 -c $< -o $@
+
++%.osse2: %.c
++ @echo Compiling $(<F)
++ $(CC) $(CFLAGS) -msse2 -mno-avx2 -mno-avx512f -c $< -o $@
++
+ %.osse41: %.c
+ @echo Compiling $(<F)
+ $(CC) $(CFLAGS) -mssse3 -msse4.1 -c $< -o $@
+@@ -42,7 +46,7 @@ clean:
+
+ %.oavx2: %.c
+ @echo Compiling $(<F)
+- $(CC) $(CFLAGS) -mavx2 -c $< -o $@
++ $(CC) $(CFLAGS) -mavx2 -mno-avx512f -c $< -o $@
+
+ %.oarmv8crypto: %.c
+ @echo Compiling $(<F)
+@@ -122,7 +126,7 @@ TR_SED_BIN := tr '\n' ' ' | tr -s ' ' ',' | sed -e 's/^,//g' -e 's/,$$/n/' | tr
+
+
+ # Dependencies
+--include $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d)
++-include $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE2:.osse2=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJSAVX2:.oavx2=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d)
+
+
+ # Deterministic static library: the 'D' modifier zeroes member mtime/uid/gid
+@@ -135,8 +139,8 @@ TR_SED_BIN := tr '\n' ' ' | tr -s ' ' ',' | sed -e 's/^,//g' -e 's/,$$/n/' | tr
+ AR_DETERMINISTIC := $(shell t=$$(mktemp); rm -f $$t.a; $(AR) Drc $$t.a $$t >/dev/null 2>&1 && echo D; rm -f $$t $$t.a)
+ RANLIB_DETERMINISTIC := $(shell t=$$(mktemp); rm -f $$t.a; $(AR) rc $$t.a $$t >/dev/null 2>&1; $(RANLIB) -D $$t.a >/dev/null 2>&1 && echo -D; rm -f $$t $$t.a)
+
+-$(NAME).a: $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
++$(NAME).a: $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
+ @echo Updating library $@
+ rm -f $@
+- $(AR) $(AFLAGS) $(AR_DETERMINISTIC)rc $@ $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
++ $(AR) $(AFLAGS) $(AR_DETERMINISTIC)rc $@ $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJSHANI) $(OBJAESNI) $(OBJSSSE2) $(OBJSSSE41) $(OBJSSSSE3) $(OBJSAVX2) $(OBJARMV8CRYPTO)
+ $(RANLIB) $(RANLIB_DETERMINISTIC) $@
+--- a/Volume/Volume.make
++++ b/Volume/Volume.make
+@@ -13,6 +13,7 @@
+ OBJS :=
+ OBJSEX :=
+ OBJSNOOPT :=
++OBJSSSE2 :=
+ OBJSSSE41 :=
+ OBJSSSSE3 :=
+ OBJSHANI :=
+@@ -96,11 +97,15 @@ else
+ endif
+
+ ifeq "$(GCC_GTEQ_430)" "1"
++ OBJSSSE2 += ../Crypto/blake2s_SSE2.osse2
+ OBJSSSE41 += ../Crypto/blake2s_SSE41.osse41
+ OBJSSSSE3 += ../Crypto/blake2s_SSSE3.ossse3
++ OBJSSSE2 += ../Crypto/Argon2/src/opt_sse2.osse2
+ else
++ OBJS += ../Crypto/blake2s_SSE2.o
+ OBJS += ../Crypto/blake2s_SSE41.o
+ OBJS += ../Crypto/blake2s_SSSE3.o
++ OBJS += ../Crypto/Argon2/src/opt_sse2.o
+ endif
+ ifeq "$(GCC_GTEQ_500)" "1"
+ OBJSHANI += ../Crypto/Sha2Intel.oshani
+@@ -127,7 +134,6 @@ ifeq "$(ENABLE_WOLFCRYPT)" "0"
+ OBJS += ../Crypto/Aeskey.o
+ OBJS += ../Crypto/Aestab.o
+ OBJS += ../Crypto/blake2s.o
+-OBJS += ../Crypto/blake2s_SSE2.o
+ OBJS += ../Crypto/SerpentFast.o
+ OBJS += ../Crypto/SerpentFast_simd.o
+ OBJS += ../Crypto/Sha2.o
+@@ -141,7 +147,6 @@ OBJS += ../Crypto/Argon2/src/blake2/blake2b.o
+ OBJS += ../Crypto/Argon2/src/argon2.o
+ OBJS += ../Crypto/Argon2/src/core.o
+ OBJS += ../Crypto/Argon2/src/argon2.o
+-OBJS += ../Crypto/Argon2/src/opt_sse2.o
+ OBJS += ../Crypto/Argon2/src/ref.o
+ OBJS += ../Crypto/Argon2/src/selftest.o
+ OBJS += ../Common/Pkcs5.o