etotheipi / BitcoinArmory

Python-Based Bitcoin Software
Other
826 stars 621 forks source link

Build error on Fedora 17 #4

Closed pio2398 closed 12 years ago

pio2398 commented 12 years ago

[piotrek@piotrek cppForSwig]$ make swig Makefile:44: uwaga: polecenia zakrywające dla obiektu UniversalTimer.o' Makefile:41: uwaga: ignoruję stare polecenia dla obiektuUniversalTimer.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; 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

etotheipi commented 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)"

pio2398 commented 12 years ago

[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

etotheipi commented 12 years ago

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.

pio2398 commented 12 years ago

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.

etotheipi commented 12 years ago

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.

pio2398 commented 12 years ago

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 obiektuUniversalTimer.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::Gcd(const Element&, const Element&) const [with T = CryptoPP::Integer; CryptoPP::AbstractEuclideanDomain::Element = CryptoPP::Integer]’: modarith.h:15:16: required from here algebra.cpp:61:2: error: ‘Equal’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] algebra.cpp:61:2: note: declarations in dependent base ‘CryptoPP::AbstractGroupCryptoPP::Integer’ are not found by unqualified lookup algebra.cpp:61:2: note: use ‘this->Equal’ instead algebra.cpp: In instantiation of ‘const T& CryptoPP::AbstractEuclideanDomain::Gcd(const Element&, const Element&) const [with T = CryptoPP::PolynomialMod2; CryptoPP::AbstractEuclideanDomain::Element = CryptoPP::PolynomialMod2]’: gf2n.h:276:16: required from here algebra.cpp:61:2: error: ‘Equal’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] algebra.cpp:61:2: note: declarations in dependent base ‘CryptoPP::AbstractGroupCryptoPP::PolynomialMod2’ are not found by unqualified lookup algebra.cpp:61:2: note: use ‘this->Equal’ instead In file included from eccrypto.h:258:0, from dll.h:20, from dll.cpp:6: eccrypto.cpp: In instantiation of ‘void CryptoPP::DL_GroupParameters_EC::Initialize(const CryptoPP::OID&) [with EC = CryptoPP::ECP]’: eccrypto.h:263:16: required from here eccrypto.cpp:438:2: error: ‘SetSubgroupGenerator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:438:2: note: declarations in dependent base ‘CryptoPP::DL_GroupParametersCryptoPP::ECPPoint’ are not found by unqualified lookup eccrypto.cpp:438:2: note: use ‘this->SetSubgroupGenerator’ instead eccrypto.cpp: In instantiation of ‘bool CryptoPP::DL_GroupParameters_EC::ValidateElement(unsigned int, const Element&, const CryptoPP::DLFixedBasePrecomputation) const [with EC = CryptoPP::ECP; CryptoPP::DL_GroupParameters_EC::Element = CryptoPP::ECPPoint; typename EC::Point = CryptoPP::ECPPoint]’: eccrypto.h:263:16: required from here eccrypto.cpp:594:101: error: ‘ExponentiateElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:594:101: note: declarations in dependent base ‘CryptoPP::DL_GroupParametersCryptoPP::ECPPoint’ are not found by unqualified lookup eccrypto.cpp:594:101: note: use ‘this->ExponentiateElement’ instead eccrypto.cpp: In instantiation of ‘void CryptoPP::DL_GroupParameters_EC::Initialize(const CryptoPP::OID&) [with EC = CryptoPP::EC2N]’: eccrypto.h:264:16: required from here eccrypto.cpp:438:2: error: ‘SetSubgroupGenerator’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:438:2: note: declarations in dependent base ‘CryptoPP::DL_GroupParametersCryptoPP::EC2NPoint’ are not found by unqualified lookup eccrypto.cpp:438:2: note: use ‘this->SetSubgroupGenerator’ instead eccrypto.cpp: In instantiation of ‘bool CryptoPP::DL_GroupParameters_EC::ValidateElement(unsigned int, const Element&, const CryptoPP::DLFixedBasePrecomputation) const [with EC = CryptoPP::EC2N; CryptoPP::DL_GroupParameters_EC::Element = CryptoPP::EC2NPoint; typename EC::Point = CryptoPP::EC2NPoint]’: eccrypto.h:264:16: required from here eccrypto.cpp:594:101: error: ‘ExponentiateElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:594:101: note: declarations in dependent base ‘CryptoPP::DL_GroupParametersCryptoPP::EC2NPoint’ are not found by unqualified lookup eccrypto.cpp:594:101: note: use ‘this->ExponentiateElement’ instead eccrypto.cpp: In instantiation of ‘void CryptoPP::DL_PublicKey_EC::BERDecodePublicKey(CryptoPP::BufferedTransformation&, bool, size_t) [with EC = CryptoPP::ECP; size_t = long unsigned int]’: eccrypto.h:267:16: required from here eccrypto.cpp:632:2: error: ‘SetPublicElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:632:2: note: declarations in dependent base ‘CryptoPP::DL_PublicKeyCryptoPP::ECPPoint’ are not found by unqualified lookup eccrypto.cpp:632:2: note: use ‘this->SetPublicElement’ instead eccrypto.cpp: In instantiation of ‘void CryptoPP::DL_PublicKey_EC::BERDecodePublicKey(CryptoPP::BufferedTransformation&, bool, size_t) [with EC = CryptoPP::EC2N; size_t = long unsigned int]’: eccrypto.h:268:16: required from here eccrypto.cpp:632:2: error: ‘SetPublicElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.cpp:632:2: note: declarations in dependent base ‘CryptoPP::DL_PublicKeyCryptoPP::EC2NPoint’ are not found by unqualified lookup eccrypto.cpp:632:2: note: use ‘this->SetPublicElement’ instead make[2]: * [dll.o] Błąd 1 make[2]: Opuszczenie katalogu /home/piotrek/Apps/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat nalibcryptopp.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

pio2398 commented 12 years ago

In /usr/include/cryptopp/ there are only *.h(header files?) files

etotheipi commented 12 years ago

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.

pio2398 commented 12 years ago

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 nalibcryptopp.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

pio2398 commented 12 years ago

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 obiektuUniversalTimer.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 nalibcryptopp.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 obiektuUniversalTimer.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 const T& AbstractEuclideanDomain::Gcd(const Element &a, co Element g[3]={b, a}; unsigned int i0=0, i1=1, i2=2;

  • while (!Equal(g[i1], this->Identity()))
  • while (!this->Equal(g[i1], this->Identity())) { g[i2] = Mod(g[i0], g[i1]); unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; diff --git a/cppForSwig/cryptopp/eccrypto.cpp b/cppForSwig/cryptopp/eccrypto.cpp index fd8462f..922104c 100755 --- a/cppForSwig/cryptopp/eccrypto.cpp +++ b/cppForSwig/cryptopp/eccrypto.cpp @@ -435,7 +435,7 @@ template void DL_GroupParameters_EC::Initialize(const OID &oid) StringSource ssG(param.g, true, new HexDecoder); Element G; bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable());
  • SetSubgroupGenerator(G);
  • this->SetSubgroupGenerator(G);
    assert(result);
    
    StringSource ssN(param.n, true, new HexDecoder);

    @@ -591,7 +591,7 @@ bool DL_GroupParameters_EC::ValidateElement(unsigned int level, const Elemen if (level >= 2 && pass) { const Integer &q = GetSubgroupOrder();

  • Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q);
  • Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q); pass = pass && IsIdentity(gq); } return pass; @@ -629,7 +629,7 @@ void DL_PublicKey_EC::BERDecodePublicKey(BufferedTransformation &bt, bool pa typename EC::Point P; if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size)) BERDecodeError();
  • SetPublicElement(P);
  • this->SetPublicElement(P);

    }

    template diff --git a/cppForSwig/cryptopp/eccrypto.h b/cppForSwig/cryptopp/eccrypto.h index b359e03..3530455 100755 --- a/cppForSwig/cryptopp/eccrypto.h +++ b/cppForSwig/cryptopp/eccrypto.h @@ -43,7 +43,7 @@ public: void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero()) { this->m_groupPrecomputation.SetCurve(ec);

  • SetSubgroupGenerator(G);
  •         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> &params, const Element &Q)
  • {this->AccessGroupParameters() = params; SetPublicElement(Q);}
  • {this->AccessGroupParameters() = params; this->SetPublicElement(Q);} void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q)
  • {this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(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 &params)

  • {GenerateRandom(rng, params);}
  • {this->GenerateRandom(rng, params);} void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
  • {GenerateRandom(rng, DL_GroupParameters_EC(ec, G, n));}
  •         {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)
    {
  • CheckSize(n);
  • this->CheckSize(n); if (n == 0) return NULL;
etotheipi commented 12 years ago

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.

pio2398 commented 12 years ago

Ok it's now work, Thank you. Send diff her?

etotheipi commented 12 years ago

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+

pio2398 commented 12 years ago

OK, and again Thank you for help and best alternative bitcoin client.

pio2398 commented 12 years ago

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::Initialize(const EC&, const Element&, const CryptoPP::Integer&, const Element&) [with EC = CryptoPP::ECP; CryptoPP::DL_PublicKey_EC::Element = CryptoPP::ECPPoint]’: eccrypto.h:267:16: required from here eccrypto.h:150:56: error: ‘SetPublicElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.h:150:56: note: declarations in dependent base ‘CryptoPP::DL_PublicKeyCryptoPP::ECPPoint’ are not found by unqualified lookup eccrypto.h:150:56: note: use ‘this->SetPublicElement’ instead eccrypto.h: In instantiation of ‘void CryptoPP::DL_PublicKey_EC::Initialize(const EC&, const Element&, const CryptoPP::Integer&, const Element&) [with EC = CryptoPP::EC2N; CryptoPP::DL_PublicKey_EC::Element = CryptoPP::EC2NPoint]’: eccrypto.h:268:16: required from here eccrypto.h:150:56: error: ‘SetPublicElement’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] eccrypto.h:150:56: note: declarations in dependent base ‘CryptoPP::DL_PublicKeyCryptoPP::EC2NPoint’ are not found by unqualified lookup eccrypto.h:150:56: note: use ‘this->SetPublicElement’ instead make[2]: * [dll.o] Błąd 1 make[2]: Opuszczenie katalogu /home/piotrek/Apps/BitcoinArmory/test/BitcoinArmory/cppForSwig/cryptopp' mv: nie można wykonać stat nalibcryptopp.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.

etotheipi commented 12 years ago

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.

pio2398 commented 12 years ago

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.