From 04606da5ee4618e8871c4b45ed8f5ceeca7844d4 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Thu, 26 Jun 2025 10:15:01 +0900 Subject: [PATCH] Linux: Fix build issue after addition of Argon2 on Windows. Argon2 support for Linux will come later --- src/Build/Include/Makefile.inc | 16 ++++++++++++---- src/Crypto/Argon2/src/argon2.c | 4 ++++ src/Makefile | 7 ++++++- src/Volume/Volume.make | 12 ++++++++++++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/Build/Include/Makefile.inc b/src/Build/Include/Makefile.inc index 4c8163af..2f3aee68 100644 --- a/src/Build/Include/Makefile.inc +++ b/src/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) $(OBJARMV8CRYPTO) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) $(OBJSHANI:.oshani=.d) $(OBJAESNI:.oaesni=.d) $(OBJSSSE41:.osse41=.d) $(OBJSSSSE3:.ossse3=.d) $(OBJARMV8CRYPTO:.oarmv8crypto=.d) *.gch + 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 %.o: %.c @echo Compiling $( +#include +#endif const char *argon2_type2string(argon2_type type, int uppercase) { switch (type) { diff --git a/src/Makefile b/src/Makefile index 990f3031..008df27d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -46,7 +46,7 @@ export RANLIB ?= ranlib export CFLAGS := -Wall export CXXFLAGS := -Wall -Wno-unused-parameter -C_CXX_FLAGS := -MMD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -I$(BASE_DIR) -I$(BASE_DIR)/Crypto +C_CXX_FLAGS := -MMD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -I$(BASE_DIR) -I$(BASE_DIR)/Crypto -DARGON2_NO_THREADS -I$(BASE_DIR)/Crypto/Argon2/include export ASFLAGS := -D __GNUC__ -D __YASM__ export LFLAGS := @@ -148,6 +148,7 @@ export ENABLE_WOLFCRYPT ?= 0 export GCC_GTEQ_440 := 0 export GCC_GTEQ_430 := 0 +export GCC_GTEQ_470 := 0 export GCC_GTEQ_500 := 0 export GTK_VERSION := 0 @@ -237,6 +238,7 @@ ifeq "$(shell uname -s)" "Linux" GCC_GTEQ_440 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40400) GCC_GTEQ_430 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40300) + GCC_GTEQ_470 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40700) GCC_GTEQ_500 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 50000) ifeq "$(DISABLE_AESNI)" "1" @@ -322,6 +324,7 @@ $(error Specified SDK version was not found, ensure your active developer direct GCC_GTEQ_440 := 1 GCC_GTEQ_430 := 1 + GCC_GTEQ_470 := 1 GCC_GTEQ_500 := 1 CXXFLAGS += -std=c++11 @@ -432,6 +435,7 @@ ifeq "$(shell uname -s)" "FreeBSD" GCC_GTEQ_440 := 1 GCC_GTEQ_430 := 1 + GCC_GTEQ_470 := 1 GCC_GTEQ_500 := 1 ifeq "$(TC_BUILD_CONFIG)" "Release" @@ -496,6 +500,7 @@ ifeq "$(shell uname -s)" "OpenBSD" GCC_GTEQ_440 := 1 GCC_GTEQ_430 := 1 + GCC_GTEQ_470 := 1 GCC_GTEQ_500 := 1 ifeq "$(TC_BUILD_CONFIG)" "Release" diff --git a/src/Volume/Volume.make b/src/Volume/Volume.make index dcd574bd..3beb4e4f 100644 --- a/src/Volume/Volume.make +++ b/src/Volume/Volume.make @@ -101,6 +101,11 @@ ifeq "$(GCC_GTEQ_500)" "1" else OBJS += ../Crypto/Sha2Intel.o endif +ifeq "$(GCC_GTEQ_470)" "1" + OBJSAVX2 += ../Crypto/Argon2/src/opt_avx2.oavx2 +else + OBJS += ../Crypto/Argon2/src/opt_avx2.o +endif else OBJS += ../Crypto/wolfCrypt.o endif @@ -119,6 +124,13 @@ OBJS += ../Crypto/Camellia.o OBJS += ../Crypto/Streebog.o OBJS += ../Crypto/kuznyechik.o OBJS += ../Crypto/kuznyechik_simd.o +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 endif