HashEngineering / dashj-bls-signatures

DashJ Wrapper for bls-signatures
1 stars 1 forks source link

Build Errors with SWIG generated wrapper #1

Open HashEngineering opened 5 years ago

HashEngineering commented 5 years ago

Run these commands using Cygwin, linux is not configured.

./build-bls-signatures.sh
./gen-java-wrapper.sh
./build-bls-wrapper.sh (has compile errors)

Errors consist of: Missing Default Constructors Private Members Assigment issues

/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_ExtendedPrivateKey_1PublicChild(JNIEnv*, jclass, jlong, jobject, jlong)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:503:21: error: no matching function for call to ‘bls::ExtendedPublicKey::ExtendedPublicKey()’
   ExtendedPublicKey result;
                     ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedprivatekey.hpp:29:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:31,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:80:14: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(uint32_t, uint8_t, uint32_t, uint32_t, bls::ChainCode, bls::PublicKey)
     explicit ExtendedPublicKey(const uint32_t v, const uint8_t d,
              ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:80:14: note:   candidate expects 6 arguments, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(const bls::ExtendedPublicKey&)
 class ExtendedPublicKey {
       ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note:   candidate expects 1 argument, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(bls::ExtendedPublicKey&&)
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note:   candidate expects 1 argument, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:515:69: error: use of deleted function ‘bls::ExtendedPublicKey& bls::ExtendedPublicKey::operator=(bls::ExtendedPublicKey&&)’
   result = ((bls::ExtendedPrivateKey const *)arg1)->PublicChild(arg2);
                                                                     ^
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedprivatekey.hpp:29:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:31,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note: ‘bls::ExtendedPublicKey& bls::ExtendedPublicKey::operator=(bls::ExtendedPublicKey&&)’ is implicitly deleted because the default definition would be ill-formed:
 class ExtendedPublicKey {
       ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: non-static const member ‘const uint32_t bls::ExtendedPublicKey::version’, can’t use default assignment operator
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: non-static const member ‘const uint8_t bls::ExtendedPublicKey::depth’, can’t use default assignment operator
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: non-static const member ‘const uint32_t bls::ExtendedPublicKey::parentFingerprint’, can’t use default assignment operator
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: non-static const member ‘const uint32_t bls::ExtendedPublicKey::childNumber’, can’t use default assignment operator
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: passing ‘const bls::ChainCode’ as ‘this’ argument discards qualifiers [-fpermissive]
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedprivatekey.hpp:28:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:31,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/chaincode.hpp:33:7: note:   in call to ‘constexpr bls::ChainCode& bls::ChainCode::operator=(const bls::ChainCode&)’
 class ChainCode {
       ^~~~~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedprivatekey.hpp:29:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:31,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: error: passing ‘const bls::PublicKey’ as ‘this’ argument discards qualifiers [-fpermissive]
 class ExtendedPublicKey {
       ^~~~~~~~~~~~~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:28:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/publickey.hpp:30:7: note:   in call to ‘constexpr bls::PublicKey& bls::PublicKey::operator=(const bls::PublicKey&)’
 class PublicKey {
       ^~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_ExtendedPrivateKey_1GetPrivateKey(JNIEnv*, jclass, jlong, jobject)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:599:14: error: ‘bls::PrivateKey::PrivateKey()’ is private within this context
   PrivateKey result;
              ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:29:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/privatekey.hpp:76:5: note: declared private here
     PrivateKey() {}
     ^~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_ExtendedPrivateKey_1GetPublicKey(JNIEnv*, jclass, jlong, jobject)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:614:13: error: ‘bls::PublicKey::PublicKey()’ is private within this context
   PublicKey result;
             ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:28:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/publickey.hpp:65:5: note: declared private here
     PublicKey();
     ^~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_ExtendedPrivateKey_1GetExtendedPublicKey(JNIEnv*, jclass, jlong, jobject)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:629:21: error: no matching function for call to ‘bls::ExtendedPublicKey::ExtendedPublicKey()’
   ExtendedPublicKey result;
                     ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedprivatekey.hpp:29:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:31,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:80:14: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(uint32_t, uint8_t, uint32_t, uint32_t, bls::ChainCode, bls::PublicKey)
     explicit ExtendedPublicKey(const uint32_t v, const uint8_t d,
              ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:80:14: note:   candidate expects 6 arguments, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(const bls::ExtendedPublicKey&)
 class ExtendedPublicKey {
       ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note:   candidate expects 1 argument, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note: candidate: bls::ExtendedPublicKey::ExtendedPublicKey(bls::ExtendedPublicKey&&)
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/extendedpublickey.hpp:46:7: note:   candidate expects 1 argument, 0 provided
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:635:74: error: use of deleted function ‘bls::ExtendedPublicKey& bls::ExtendedPublicKey::operator=(bls::ExtendedPublicKey&&)’
   result = ((bls::ExtendedPrivateKey const *)arg1)->GetExtendedPublicKey();
                                                                          ^
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_ExtendedPublicKey_1GetPublicKey(JNIEnv*, jclass, jlong, jobject)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:818:13: error: ‘bls::PublicKey::PublicKey()’ is private within this context
   PublicKey result;
             ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:28:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/publickey.hpp:65:5: note: declared private here
     PublicKey();
     ^~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_PrivateKey_1GetPublicKey(JNIEnv*, jclass, jlong, jobject)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:958:13: error: ‘bls::PublicKey::PublicKey()’ is private within this context
   PublicKey result;
             ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:28:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/publickey.hpp:65:5: note: declared private here
     PublicKey();
     ^~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_PrivateKey_1SignInsecure(JNIEnv*, jclass, jlong, jobject, jlong, jlong)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:1045:21: error: ‘bls::InsecureSignature::InsecureSignature()’ is private within this context
   InsecureSignature result;
                     ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/privatekey.hpp:25:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:29,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/signature.hpp:70:5: note: declared private here
     InsecureSignature();
     ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_PrivateKey_1SignInsecurePrehashed(JNIEnv*, jclass, jlong, jobject, jlong)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:1063:21: error: ‘bls::InsecureSignature::InsecureSignature()’ is private within this context
   InsecureSignature result;
                     ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/privatekey.hpp:25:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:29,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/signature.hpp:70:5: note: declared private here
     InsecureSignature();
     ^~~~~~~~~~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_PrivateKey_1Sign(JNIEnv*, jclass, jlong, jobject, jlong, jlong)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:1081:13: error: ‘bls::Signature::Signature()’ is private within this context
   Signature result;
             ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/privatekey.hpp:25:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:29,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/signature.hpp:159:5: note: declared private here
     Signature() {}
     ^~~~~~~~~
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp: In function ‘jlong Java_org_dash_blssignatures_blssignaturesJNI_PrivateKey_1SignPrehashed(JNIEnv*, jclass, jlong, jobject, jlong)’:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:1099:13: error: ‘bls::Signature::Signature()’ is private within this context
   Signature result;
             ^~~~~~
In file included from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/privatekey.hpp:25:0,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/bls.hpp:29,
                 from /cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/cpp/bls-signature-wrapper.cpp:233:
/cygdrive/c/Users/HashEngineering/Documents/HashEngineering/Dash/dashj-bls-signatures/src/bls-signatures/src/signature.hpp:159:5: note: declared private here
     Signature() {}
     ^~~~~~~~~
make[2]: *** [CMakeFiles/dashjbls.dir/build.make:63: CMakeFiles/dashjbls.dir/src/cpp/bls-signature-wrapper.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/dashjbls.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
HashEngineering commented 5 years ago

These issues would require changing bls-signatures or the SWIG output, both of which are not ideal.

HashEngineering commented 5 years ago

This text explains why default constructors are not created: http://www.swig.org/Doc3.0/SWIGDocumentation.html#SWIGPlus_nn8

HashEngineering commented 5 years ago

Open issue regarding this matter: https://github.com/swig/swig/issues/1062