Closed pio2398 closed 12 years ago
This appears to be an error in compiling the Crypto++ libraries included with Armory. I've never actually seen that compilation failed, because I was under the impression that everything in the cryptopp directory was self-contained.
What version of gcc/g++ are you using to compile it? On my system, "gcc -v" returns "gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)"
[piotrek@piotrek ~]$ gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.0/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.7.0 20120504 (Red Hat 4.7.0-4) (GCC) Maybe this will help: https://github.com/tahoe-lafs/pycryptopp/commit/0e6467f15c91c17df78867ebb78778125aaa94df https://bugs.launchpad.net/cryptopp/+bug/915018 I try to fix it myself but i get a lot of error. Sorry for poor English
Poor English is okay. Programming is the same in all languages :)
Based on the link you copied, your version of gcc is too new. Crypto++ included in Armory requires gcc 4.6.X or lower. Unless you somehow change your gcc version, your problem cannot be fixed without upgrading Crypto++. It looks like you have the correct diff for it. But I do not have any system with gcc 4.7 to test it.
Fedora contains fix from https://github.com/tahoe-lafs/pycryptopp/commit/0e6467f15c91c17df78867ebb78778125aaa94df. In Fedora 17 GCC 4.7.0 is default, change may cause serious problems in system. I hope that what I wrote is understandable. If not i try again.
I see that fix. But I cannot test it. Did you try it? Please tell me if it works, so I will commit the fix.
I tried to copy files from /usr/include/cryptopp/ to BitcoinArmory/cppForSwig/cryptopp/ but:
[piotrek@piotrek Apps]$ git clone git://github.com/etotheipi/BitcoinArmory.git
Cloning into 'BitcoinArmory'...
remote: Counting objects: 3879, done.
remote: Compressing objects: 100% (1300/1300), done.
remote: Total 3879 (delta 2713), reused 3720 (delta 2557)
Receiving objects: 100% (3879/3879), 47.76 MiB | 1.22 MiB/s, done.
Resolving deltas: 100% (2713/2713), done.
[piotrek@piotrek Apps]$ cd BitcoinArmory/
[piotrek@piotrek BitcoinArmory]$ make
cd cppForSwig; make swig
make[1]: Wejście do katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig' Makefile:44: uwaga: polecenia zakrywające dla obiektu
UniversalTimer.o'
Makefile:41: uwaga: ignoruję stare polecenia dla obiektu UniversalTimer.o' g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS UniversalTimer.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BinaryData.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BinaryDataMMAP_POSIX.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BtcUtils.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockObj.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockObjRef.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockUtils.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS EncryptionUtils.cpp cd cryptopp; make libcryptopp.a; mv libcryptopp.a .. make[2]: Wejście do katalogu
/home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp'
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gcm.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c skipjack.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c osrng.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c arc4.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cryptlib_bds.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hex.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c esign.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c randpool.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c sharkbox.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c base32.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dessp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gzip.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c fips140.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dsa.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c polynomi.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c winpipes.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eprecomp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c vmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hrtimer.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c queue.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c fipstest.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c simple.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c xtrcrypt.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pkcspad.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c authenc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c idea.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c squaretb.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc5.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c emsa2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c sha.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c network.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eax.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c algparam.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c des.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zlib.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ida.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dh2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c strciphr.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ecp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c blowfish.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c md2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c elgamal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c adler32.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c iterhash.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c safer.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c twofish.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c wake.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c wait.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c default.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c oaep.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c square.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gf2n.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c shark.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c seed.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c shacal2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tea.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c serpent.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eccrypto.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ripemd.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c camellia.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pubkey.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c trdlocal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c salsa.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c seal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c luc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ttmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c crc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tigertab.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c mqv.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ccm.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dh.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c md4.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c whrlpool.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c asn.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rw.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cast.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tiger.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rng.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c channels.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zinflate.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pssr.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c misc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c mqueue.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gf256.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc6.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c base64.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zdeflate.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c basecode.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c algebra.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c blumshub.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ec2n.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dll.cpp
In file included from algebra.h:282:0,
from modarith.h:9,
from pubkey.h:35,
from gfpcrypt.h:8,
from dh.h:7,
from dll.h:17,
from dll.cpp:6:
algebra.cpp: In instantiation of ‘const T& CryptoPP::AbstractEuclideanDomain/home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat na
libcryptopp.a': Nie ma takiego pliku ani katalogu
make[1]: * [libcryptopp.a] Błąd 1
make[1]: Opuszczenie katalogu `/home/piotrek/Apps/BitcoinArmory/cppForSwig'
make: *\ [all] Błąd 2
[piotrek@piotrek BitcoinArmory]$
I'm not an expert in C so not really know what's the problem
In /usr/include/cryptopp/ there are only *.h(header files?) files
That looks like the same error. I'm not sure that the files in /usr/include/cryptopp are the ones you want. I think you should do a fresh checkout of Armory, and change only the 10 lines in the 4 files in the link you sent me.
https://github.com/tahoe-lafs/pycryptopp/commit/0e6467f15c91c17df78867ebb78778125aaa94df
If that works, I will make the same changes in the master branch and commit it so other Fedora users can compile.
I add only that fix: https://github.com/tahoe-lafs/pycryptopp/commit/0e6467f15c91c17df78867ebb78778125aaa94df and:
panama.cpp: In instantiation of ‘void CryptoPP::Weak::PanamaHash::TruncatedFinal(byte_, size_t) [with B = CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>; byte = unsigned char; sizet = long unsigned int]’:
panama.cpp:500:22: required from here
panama.cpp:425:2: error: ‘PadLastBlock’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
panama.cpp:425:2: note: declarations in dependent base ‘CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>’ are not found by unqualified lookup
panama.cpp:425:2: note: use ‘this->PadLastBlock’ instead
panama.cpp: In instantiation of ‘void CryptoPP::Weak::PanamaHash::TruncatedFinal(byte, size_t) [with B = CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>; byte = unsigned char; size_t = long unsigned int]’:
panama.cpp:501:22: required from here
panama.cpp:425:2: error: ‘PadLastBlock’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
panama.cpp:425:2: note: declarations in dependent base ‘CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>’ are not found by unqualified lookup
panama.cpp:425:2: note: use ‘this->PadLastBlock’ instead
make[2]: * [panama.o] Błąd 1
make[2]: Opuszczenie katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat na
libcryptopp.a': Nie ma takiego pliku ani katalogu
make[1]: * [libcryptopp.a] Błąd 1
make[1]: Opuszczenie katalogu `/home/piotrek/Apps/BitcoinArmory/cppForSwig'
make: *\ [all] Błąd 2
I try fix panama.cpp but now:
[piotrek@piotrek BitcoinArmory]$ make
cd cppForSwig; make swig
make[1]: Wejście do katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig' Makefile:44: uwaga: polecenia zakrywające dla obiektu
UniversalTimer.o'
Makefile:41: uwaga: ignoruję stare polecenia dla obiektu UniversalTimer.o' g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS UniversalTimer.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BinaryData.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BinaryDataMMAP_POSIX.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BtcUtils.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockObj.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockObjRef.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BlockUtils.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS EncryptionUtils.cpp cd cryptopp; make libcryptopp.a; mv libcryptopp.a .. make[2]: Wejście do katalogu
/home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp'
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gcm.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c skipjack.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c osrng.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c arc4.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cryptlibbds.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hex.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c esign.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c randpool.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c sharkbox.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c base32.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dessp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gzip.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c fips140.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dsa.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c polynomi.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c winpipes.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eprecomp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c vmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hrtimer.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c queue.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c fipstest.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c simple.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c xtrcrypt.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c hmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pkcspad.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c authenc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c idea.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c squaretb.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc5.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c emsa2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c sha.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c network.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eax.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c algparam.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c des.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zlib.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ida.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dh2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c strciphr.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ecp.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c blowfish.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c md2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c elgamal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c adler32.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c iterhash.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c safer.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c twofish.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c wake.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c wait.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c default.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c oaep.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c square.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gf2n.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c shark.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c seed.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c shacal2.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tea.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c serpent.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c eccrypto.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ripemd.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c camellia.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pubkey.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c trdlocal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c salsa.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c seal.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c luc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ttmac.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c crc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tigertab.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c mqv.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ccm.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dh.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c md4.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c whrlpool.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c asn.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rw.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cast.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tiger.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rng.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c channels.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zinflate.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pssr.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c misc.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c mqueue.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gf256.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rc6.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c base64.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c zdeflate.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c basecode.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c algebra.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c blumshub.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c ec2n.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c dll.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gfpcrypt.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cryptlib.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c files.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c casts.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rijndael.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c modes.cpp
g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c panama.cpp
panama.cpp: In instantiation of ‘void CryptoPP::Weak::PanamaHash::TruncatedFinal(byte, size_t) [with B = CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>; byte = unsigned char; sizet = long unsigned int]’:
panama.cpp:500:22: required from here
panama.cpp:425:2: error: ‘PadLastBlock’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
panama.cpp:425:2: note: declarations in dependent base ‘CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>’ are not found by unqualified lookup
panama.cpp:425:2: note: use ‘this->PadLastBlock’ instead
panama.cpp: In instantiation of ‘void CryptoPP::Weak::PanamaHash::TruncatedFinal(byte, size_t) [with B = CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>; byte = unsigned char; size_t = long unsigned int]’:
panama.cpp:501:22: required from here
panama.cpp:425:2: error: ‘PadLastBlock’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
panama.cpp:425:2: note: declarations in dependent base ‘CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>’ are not found by unqualified lookup
panama.cpp:425:2: note: use ‘this->PadLastBlock’ instead
make[2]: * [panama.o] Błąd 1
make[2]: Opuszczenie katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat na
libcryptopp.a': Nie ma takiego pliku ani katalogu
make[1]: * [libcryptopp.a] Błąd 1
make[1]: Opuszczenie katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig' make: *** [all] Błąd 2 [piotrek@piotrek BitcoinArmory]$ make cd cppForSwig; make swig make[1]: Wejście do katalogu
/home/piotrek/Apps/BitcoinArmory/cppForSwig'
Makefile:44: uwaga: polecenia zakrywające dla obiektu UniversalTimer.o' Makefile:41: uwaga: ignoruję stare polecenia dla obiektu
UniversalTimer.o'
cd cryptopp; make libcryptopp.a; mv libcryptopp.a ..
make[2]: Wejście do katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp' g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c panama.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c nbtheory.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c md5.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c socketft.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gost.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c tftables.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c pch.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cbcmac.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rsa.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rdtables.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c 3way.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c gf2_32.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c rabin.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c bfinit.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c filters.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c cpu.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c sosemanuk.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c xtr.cpp g++ -DNDEBUG -g -O2 -fPIC -march=native -pipe -c integer.cpp ar -cr libcryptopp.a gcm.o skipjack.o osrng.o arc4.o cryptlib_bds.o hex.o esign.o randpool.o sharkbox.o base32.o dessp.o gzip.o fips140.o dsa.o polynomi.o winpipes.o eprecomp.o vmac.o hrtimer.o queue.o fipstest.o simple.o xtrcrypt.o hmac.o pkcspad.o authenc.o idea.o squaretb.o rc5.o emsa2.o sha.o network.o eax.o algparam.o des.o zlib.o ida.o dh2.o strciphr.o ecp.o blowfish.o md2.o elgamal.o adler32.o iterhash.o safer.o twofish.o wake.o wait.o default.o rc2.o oaep.o square.o gf2n.o shark.o seed.o shacal2.o cmac.o tea.o serpent.o eccrypto.o ripemd.o camellia.o pubkey.o trdlocal.o salsa.o seal.o luc.o ttmac.o crc.o tigertab.o mqv.o ccm.o dh.o md4.o whrlpool.o asn.o rw.o cast.o tiger.o rng.o channels.o zinflate.o pssr.o misc.o mqueue.o gf256.o rc6.o base64.o zdeflate.o basecode.o algebra.o blumshub.o ec2n.o dll.o gfpcrypt.o cryptlib.o files.o casts.o rijndael.o modes.o panama.o nbtheory.o md5.o socketft.o gost.o tftables.o pch.o cbcmac.o rsa.o rdtables.o 3way.o gf2_32.o rabin.o bfinit.o filters.o cpu.o sosemanuk.o xtr.o integer.o ranlib libcryptopp.a make[2]: Opuszczenie katalogu
/home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp'
swig -c++ -python -classic -outdir ../ -v CppBlockUtils.i
Language subdirectory: python
Search paths:
./
./swig_lib/python/
/usr/share/swig/2.0.5/python/
./swig_lib/
/usr/share/swig/2.0.5/
Preprocessing...
Starting language-specific parse...
EncryptionUtils.h:178: Warning 362: operator= ignored
Processing types...
EncryptionUtils.h:133: Warning 402: Base class 'BinaryData' is incomplete.
BtcUtils.h:59: Warning 402: Only forward declaration 'BinaryData' was found.
C++ analysis...
Generating wrappers...
BlockObj.h:75: Warning 509: Overloaded method BlockHeader::BlockHeader(BinaryData const ) effectively ignored,
BlockObj.h:72: Warning 509: as it is shadowed by BlockHeader::BlockHeader(BinaryData const &).
BlockUtils.h:278: Warning 472: Overloaded method RegisteredTx::RegisteredTx(TxRef &) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:306: Warning 472: Overloaded method AddressBookEntry::AddressBookEntry(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:394: Warning 509: Overloaded method BtcAddress::addTxIO(TxIOPair &) effectively ignored,
BlockUtils.h:393: Warning 509: as it is shadowed by BtcAddress::addTxIO(TxIOPair ).
BlockUtils.h:393: Warning 509: Overloaded method BtcAddress::addTxIO(TxIOPair *,bool) effectively ignored,
BlockUtils.h:394: Warning 509: as it is shadowed by BtcAddress::addTxIO(TxIOPair &,bool).
BlockUtils.h:439: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:439: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:439: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:439: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:439: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:792: Warning 472: Overloaded method BlockDataManager_MMAP::addNewBlockData(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:792: Warning 472: Overloaded method BlockDataManager_MMAP::addNewBlockData(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BtcUtils.h:918: Warning 472: Overloaded method BtcUtils::verifyProofOfWork(BinaryDataRef,BinaryDataRef) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
g++ -I/usr/include/python2.7 -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS -lpthread -lpython2.7 CppBlockUtils_wrap.cxx
g++ -shared -lpthread -lpython2.7 UniversalTimer.o BinaryData.o BinaryDataMMAP_POSIX.o BtcUtils.o BlockObj.o BlockObjRef.o BlockUtils.o EncryptionUtils.o libcryptopp.a CppBlockUtils_wrap.o -o ../_CppBlockUtils.so
pyrcc4 -o ../qrc_img_resources.py ../imgList.xml
make[1]: Opuszczenie katalogu `/home/piotrek/Apps/BitcoinArmory/cppForSwig'
Diff:
diff --git a/cppForSwig/cryptopp/algebra.cpp b/cppForSwig/cryptopp/algebra.cpp
index 78c3947..b8818e6 100755
--- a/cppForSwig/cryptopp/algebra.cpp
+++ b/cppForSwig/cryptopp/algebra.cpp
@@ -58,7 +58,7 @@ template
this->SetSubgroupGenerator(G);
assert(result);
StringSource ssN(param.n, true, new HexDecoder);
@@ -591,7 +591,7 @@ bool DL_GroupParameters_EC
this->SetPublicElement(P);
}
template
this->SetSubgroupGenerator(G);
m_n = n;
m_k = k;
}
@@ -145,9 +145,9 @@ public: typedef typename EC::Point Element;
void Initialize(const DL_GroupParameters_EC<EC> ¶ms, const Element &Q)
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);}
// X509PublicKey
void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
@@ -166,9 +166,9 @@ public:
void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC
{this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
// PKCS8PrivateKey
void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size);
diff --git a/cppForSwig/cryptopp/panama.cpp b/cppForSwig/cryptopp/panama.cpp index 09b1708..a1a37d6 100755 --- a/cppForSwig/cryptopp/panama.cpp +++ b/cppForSwig/cryptopp/panama.cpp @@ -422,7 +422,7 @@ void PanamaHash::TruncatedFinal(byte *hash, size_t size) { this->ThrowIfInvalidTruncatedSize(size);
PadLastBlock(this->BLOCKSIZE, 0x01);
this->PadLastBlock(this->BLOCKSIZE, 0x01);
HashEndianCorrectedBlock(this->m_data);
diff --git a/cppForSwig/cryptopp/secblock.h b/cppForSwig/cryptopp/secblock.h index 24b9fc0..40cce33 100755 --- a/cppForSwig/cryptopp/secblock.h +++ b/cppForSwig/cryptopp/secblock.h @@ -88,7 +88,7 @@ public:
pointer allocate(size_type n, const void * = NULL)
{
Delete panama.h and panama.cpp. Neither of them are actually needed for Armory. The project still compiles on my computer without those two files.
Ok it's now work, Thank you. Send diff her?
Excellent! I don't think anything else needs to be done. There's enough information here for me to fix it, myself. I will fix this in Armory 0.76+
OK, and again Thank you for help and best alternative bitcoin client.
You wrote:
Fedora Fix: Crypto++ needed to be manually updated in order to be compiled on gcc 4.7+. This fixes compiling on any system with the latest gcc, which includes the latest Fedora.
but after clone I still can not compile
Error:
In file included from dll.h:20:0,
from dll.cpp:6:
eccrypto.h: In instantiation of ‘void CryptoPP::DL_PublicKey_EC/home/piotrek/Apps/BitcoinArmory/test/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat na
libcryptopp.a': Nie ma takiego pliku ani katalogu
make[1]: * [libcryptopp.a] Błąd 1
make[1]: Opuszczenie katalogu `/home/piotrek/Apps/BitcoinArmory/test/BitcoinArmory/cppForSwig'
make: *\ [all] Błąd 2
If it was my fault and I am doing something wrong then I'm sorry.
No, it looks like my fault. I missed a line when I updated the crypto++ libraries. Since I don't have a gcc4.7 system I couldn't test it.
I just committed a fix to the master branch. Please pull it and let me know if that fixed it.
A lot of warning: BlockUtils.h:358: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData' but it's now work, thank you.
[piotrek@piotrek cppForSwig]$ make swig Makefile:44: uwaga: polecenia zakrywające dla obiektu; CryptoPP::SecBlock<T, A>::size_type = long unsigned int]’
cryptopp/algparam.h:17:2: required from here
cryptopp/secblock.h:91:3: error: ‘CheckSize’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
cryptopp/secblock.h:91:3: note: declarations in dependent base ‘CryptoPP::AllocatorBase’ are not found by unqualified lookup
cryptopp/secblock.h:91:3: note: use ‘this->CheckSize’ instead
make: *\ [BinaryData.o] Błąd 1
UniversalTimer.o' Makefile:41: uwaga: ignoruję stare polecenia dla obiektu
UniversalTimer.o' g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS UniversalTimer.cpp g++ -c -O2 -pipe -fPIC -Icryptopp -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS BinaryData.cpp In file included from cryptopp/filters.h:7:0, from cryptopp/randpool.h:5, from cryptopp/osrng.h:10, from BinaryData.h:63, from BinaryData.cpp:9: cryptopp/secblock.h: In instantiation of ‘CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::sizetype, const void) [with T = unsigned char; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, TAlign16>::pointer = unsigned char; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]’: cryptopp/secblock.h:247:19: required from ‘CryptoPP::SecBlock<T, A>::SecBlock(CryptoPP::SecBlock<T, A>::size_type) [with T = unsigned char; A = CryptoPP::AllocatorWithCleanup