truecrack: fix cuda

This commit is contained in:
Pavol Rusnak
2025-02-14 13:32:59 +01:00
parent 0bf9d5035b
commit 1d8d6005ee
3 changed files with 69 additions and 6 deletions
+11 -6
View File
@@ -1,15 +1,18 @@
{
lib,
gccStdenv,
cudaPackages,
fetchFromGitLab,
cudatoolkit,
config,
cudaSupport ? config.cudaSupport,
pkg-config,
versionCheckHook,
}:
gccStdenv.mkDerivation rec {
let
stdenv = if cudaSupport then cudaPackages.backendStdenv else gccStdenv;
in
stdenv.mkDerivation rec {
pname = "truecrack";
version = "3.6";
@@ -22,12 +25,14 @@ gccStdenv.mkDerivation rec {
patches = [
./fix-empty-return.patch
./remove-opencc-options.patch
./set-cuda-archs.patch
];
configureFlags = (
if cudaSupport then
[
"--with-cuda=${cudatoolkit}"
"--with-cuda=${cudaPackages.cudatoolkit}"
]
else
[
@@ -40,7 +45,8 @@ gccStdenv.mkDerivation rec {
];
buildInputs = lib.optionals cudaSupport [
cudatoolkit
cudaPackages.cudatoolkit
cudaPackages.cuda_cudart
];
env.NIX_CFLAGS_COMPILE = toString ([
@@ -61,7 +67,7 @@ gccStdenv.mkDerivation rec {
installFlags = [ "prefix=$(out)" ];
doInstallCheck = true;
doInstallCheck = !cudaSupport;
installCheckPhase = ''
runHook preInstallCheck
@@ -88,7 +94,6 @@ gccStdenv.mkDerivation rec {
description = "Brute-force password cracker for TrueCrypt volumes, optimized for Nvidia Cuda technology";
mainProgram = "truecrack";
homepage = "https://gitlab.com/kalilinux/packages/truecrack";
broken = cudaSupport;
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
@@ -0,0 +1,26 @@
diff --git a/src/Makefile.am b/src/Makefile.am
index e4cac89..50d9b02 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -56,7 +56,7 @@ $(OBJ_CUDA):
cat Cuda/Sha2.cu >> Cuda.cu
cat Cuda/Whirlpool.cu >> Cuda.cu
- $(COMPILER) -c Cuda.cu $(CFLAGS) --opencc-options -OPT:Olimit=0 $< -o $@
+ $(COMPILER) -c Cuda.cu $(CFLAGS) $< -o $@
$(OBJS_COMMON): %.o: Common/%.c
$(COMPILER) -c $(CFLAGS) $< -o $@
diff --git a/src/Makefile.in b/src/Makefile.in
index 86f76ad..7a5c77b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -435,7 +435,7 @@ $(OBJ_CUDA):
cat Cuda/Sha2.cu >> Cuda.cu
cat Cuda/Whirlpool.cu >> Cuda.cu
- $(COMPILER) -c Cuda.cu $(CFLAGS) --opencc-options -OPT:Olimit=0 $< -o $@
+ $(COMPILER) -c Cuda.cu $(CFLAGS) $< -o $@
$(OBJS_COMMON): %.o: Common/%.c
$(COMPILER) -c $(CFLAGS) $< -o $@
@@ -0,0 +1,32 @@
diff --git a/src/Makefile.am b/src/Makefile.am
index e4cac89..599b7a3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,10 +30,7 @@ OBJ_CUDA=Cuda.o
CFLAGS += -D_GPU_
COMPILER=$(NVCC)
# CUDA code generation flags
-GENCODE_SM10= -gencode arch=compute_10,code=sm_10
-GENCODE_SM20= -gencode arch=compute_20,code=sm_20
-GENCODE_SM30= -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35
-GENCODE_FLAGS= $(GENCODE_SM10) $(GENCODE_SM20) $(GENCODE_SM30)
+GENCODE_FLAGS= -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_89,code=sm_89 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90a,code=sm_90a
CFLAGS += $(GENCODE_FLAGS) -ftz=true -use_fast_math
endif
diff --git a/src/Makefile.in b/src/Makefile.in
index 86f76ad..123255b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -181,10 +181,7 @@ LFLAGS = -lm -O3
@ENABLE_CPU_TRUE@COMPILER = $(CC)
@ENABLE_CPU_FALSE@OBJ_CUDA = Cuda.o
# CUDA code generation flags
-@ENABLE_CPU_FALSE@GENCODE_SM10 = -gencode arch=compute_10,code=sm_10
-@ENABLE_CPU_FALSE@GENCODE_SM20 = -gencode arch=compute_20,code=sm_20
-@ENABLE_CPU_FALSE@GENCODE_SM30 = -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35
-@ENABLE_CPU_FALSE@GENCODE_FLAGS = $(GENCODE_SM10) $(GENCODE_SM20) $(GENCODE_SM30)
+@ENABLE_CPU_FALSE@GENCODE_FLAGS = -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_89,code=sm_89 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90a,code=sm_90a
truecrack_SOURCES =
truecrack_CFLAGS = $(CUDA_CFLAGS)
truecrack_LDADD = $(CUDA_LIBS)