lvaccaro / truecrack

TrueCrack is a brute-force password cracker for TrueCrypt (Copyrigth) volumes. It works on Linux and it is optimized for Nvidia Cuda technology.
GNU General Public License v3.0
151 stars 59 forks source link

Build fails on gcc-10 as: ld: CpuAes.o:/build/truecrack/src/Crypto/CpuAes.h:1233: multiple definition of `t_rc'; CpuCore.o:/build/truecrack/src/Crypto/CpuAes.h:1237: first defined here #56

Open trofi opened 1 year ago

trofi commented 1 year ago

gcc-10 changed the default from -fcommon to -fno-common: https://gcc.gnu.org/PR85678

As a result build fails as:

truecrack> gcc -o truecrack  Volumes.o Crc.o Endian.o Pkcs5.o CpuCore.o Crypto.o Core.o Charset.o Utils.o Main.o Rmd160.o CpuAes.o Sha1.o Sha2.o Whirlpool.o Serpent.o Twofish.o -g -I./Common/ -I./Crypto/ -I./Cuda/ -I./Main/ -I./ -I/usr/local/cuda/include/    -lm -O3
truecrack> /<<NIX>>/binutils-2.38/bin/ld: Core.o:/build/truecrack/src/Main/Core.h:49: multiple definition of `CORE_typeAttack'; CpuCore.o:/build/truecrack/src/Main/Core.h:49: first defined here
truecrack> /<<NIX>>/binutils-2.38/bin/ld: Core.o:/build/truecrack/src/Main/Core.h:41: multiple definition of `CORE_volumePath'; CpuCore.o:/build/truecrack/src/Main/Core.h:41: first defined here
truecrack> /<<NIX>>/binutils-2.38/bin/ld: Core.o:/build/truecrack/src/Main/Core.h:61: multiple definition of `CORE_hidden'; CpuCore.o:/build/truecrack/src/Main/Core.h:61: first defined here
...
trofi commented 1 year ago

kalilinux has an example fix at https://gitlab.com/kalilinux/packages/truecrack/-/blob/kali/master/debian/patches/fix-multiple-declarations.patch