gcode-mirror / truecrack

Automatically exported from code.google.com/p/truecrack
GNU General Public License v3.0
0 stars 1 forks source link

Issue compiling truecrack #5

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago

What is the expected output? What do you see instead?
Well i should be able to do make install

What version of the product are you using? On what operating system?

Ubuntu Server 11.10 Linux somehost 3.0.0-19-generic-pae #33-Ubuntu SMP Thu Apr 
19 20:59:10 UTC 2012 i686 i686 i386 GNU/Linux

Please provide any additional information below.

/usr/local/cuda/bin/nvcc -o truecrack Cuda.o Volumes.o Crc.o Endian.o   Core.o 
Charset.o Utils.o Main.o  -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ -I./ -lm 
-D_GPU_
Core.o: In function `core':
Core.c:(.text+0x211): undefined reference to `cpu_Core'
collect2: ld returned 1 exit status
make: *** [truecrack] Error 1

Thanks

Original issue reported on code.google.com by marcandr...@gmail.com on 23 May 2012 at 7:12

GoogleCodeExporter commented 9 years ago
sudo make GPU=true
cat Cuda/CudaCore.cu > Cuda.cu 
cat Cuda/CudaPkcs5.cu >> Cuda.cu
cat Cuda/CudaRmd160.cu >> Cuda.cu
cat Cuda/CudaAes.cu >> Cuda.cu
cat Cuda/CudaXts.cu >> Cuda.cu
/usr/local/cuda/bin/nvcc -c Cuda.cu -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ 
-I./ -lm -D_GPU_ --opencc-options -OPT:Olimit=0  -o Cuda.o
./Cuda.cu(189): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(196): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(189): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(196): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(1164): Warning: Cannot tell what pointer points to, assuming global 
memory space
/usr/local/cuda/bin/nvcc -o truecrack Cuda.o Volumes.o Crc.o Endian.o   Core.o 
Charset.o Utils.o Main.o  -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ -I./ -lm 
-D_GPU_
Core.o: In function `core':
Core.c:(.text+0x211): undefined reference to `cpu_Core'
collect2: ld returned 1 exit status
make: *** [truecrack] Error 1

Original comment by marcandr...@gmail.com on 23 May 2012 at 7:13

GoogleCodeExporter commented 9 years ago
The problem is that nvcc don't pass the right parameters to the preprocessor.
If you want to compile the sources in gpu mode, the nvcc should pass to the 
preprocessor the label _GPU_. The purpose of this label is compile only the 
pieces of code optimized for GPU and not for CPU. If the label _GPU_ is set, 
Core.c uses the function `cuda_Core()`; instead the function `cpu_Core()` is 
called.
I test with different version of cuda, different version of the kernel (from 
2.6.x to the most recent version) and it worked well. So i propose to retry the 
installation of nvidia cuda and use an older version of gcc (some version of 
cuda don't support the recent gcc versions).
Anyway in a future version of truecrack, i will distinguish the CPU and GPU 
version as different programs to avoid this kind of problem with preprocessor.

Original comment by luck87 on 19 Jun 2012 at 11:07

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
i recently forgot my overcomplicated truecrypt password and i was wondering if 
there is a way to run this with windows 7?

Original comment by doriangray216 on 22 Jul 2012 at 11:28

GoogleCodeExporter commented 9 years ago
cat Cuda/CudaXts.cu >> Cuda.cu
/usr/local/cuda/bin/nvcc -c Cuda.cu -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ 
-I./ -lm -D_GPU_ --opencc-options -OPT:Olimit=0  -o Cuda.o
./Cuda.cu(189): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(196): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(189): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(196): Warning: Cannot tell what pointer points to, assuming global 
memory space
./Cuda.cu(1164): Warning: Cannot tell what pointer points to, assuming global 
memory space
/usr/local/cuda/bin/nvcc -o truecrack Cuda.o Volumes.o Crc.o Endian.o   Core.o 
Charset.o Utils.o Main.o  -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ -I./ -lm 
-D_GPU_
Core.o: In function `core':
Core.c:(.text+0x211): undefined reference to `cpu_Core'
collect2: ld returned 1 exit status
make: *** [truecrack] Error 1

This is solved in the following manner....

   make clean
   make GPU=false
     .... Let it finish
   mv truecrack truecrack-CPU
   make clean
   make GPU=true
     .... Let it finish
   mv truecrack truecrack-GPU

No core issues.... the real core issue is due to parts of the code has been 
compiled for different execution models and should have been recompiled as the 
command line switches have changed.

   Hope this helps

          Tom

Original comment by tomsmith...@gmail.com on 10 Oct 2012 at 3:18

GoogleCodeExporter commented 9 years ago
I notice a solution to the second part of the problem with the error status, 
but I am not sure of what the solution to the first part about the warning is, 
could you explain for me please. I compiled in both modes and tested on a 
volume and the CPU mode returned a hit on the password but the GPU mode 
returned a not defined result, I noticed as above the only difference in both 
compilations is the warning about the pointers, any help please.

Original comment by yehshuam...@gmail.com on 23 Nov 2012 at 8:35