Code Monkey home page Code Monkey logo

skalenetwork / libbls Goto Github PK

View Code? Open in Web Editor NEW
139.0 11.0 45.0 31.65 MB

Solidity-compatible BLS signatures, threshold encryption, distributed key generation library in modern C++. Actively maintained and used by SKALE for consensus, distributed random number gen, inter-chain communication and protection of transactions. BLS threshold signatures can be verified in Solidity, and used as random beacon (common coin)

Home Page: https://skale.space

License: GNU Affero General Public License v3.0

CMake 5.16% C++ 90.47% Shell 1.12% Python 1.88% Sage 1.10% C 0.27%
cryptography bls-signature threshold-cryptography distributed-key-generation threshold-signatures threshold-encryption dkg solidity common-coin bls

libbls's Introduction

libBLS: a C++ library for BLS Threshold Signatures

Build and test libBLS codecov CII Best Practices Discord

A mathematical library written in C++ that supports BLS threshold signatures, Distributed Key Generation (DKG) and Threshold Encryption (TE).

This libBLS library is developed by SKALE Labs and uses SCIPR-LAB's libff (see Libraries below).

An important note about production readiness

This libBLS library is still in active development and therefore should be regarded as alpha software. The development is still subject to security hardening, further testing, and breaking changes. This library has not yet been reviewed or audited for security. Please see SECURITY.md for reporting policies.

Overview

libBLS is a C++ library for BLS signatures and DKG that supports both threshold signatures and multi-signatures. Also it supports Threshold Encryption.

The signature process proceeds in 4 steps:

  1. Key generation
  2. Hashing
  3. Signing
  4. Verification

libBLS uses the alt_bn128 (Barreto-Naehrig curve) elliptic curve to be compatible with Ethereum's cryptography and provides 128 bits of security. Also, it provides opportunity to generate secret keys with DKG algorithm that supports the same curve.

libBLS for the most part corresponds to BLS signature standard. This work is still in progress and is going to be improved in the next couple of months.

Encryption process is running as follows:

  1. Key generation
  2. Encryption
  3. Decryption
  4. Verifying and combining shares

libBls uses the same alt_bn128 curve for threshold encryption as for BLS signatures.

Performance Specifications

libBLS allows to sign about 3000 messages per second on a single thread (Intel® Core™ i3-4160 CPU @ 3.60GHz). However, for our solution we have implemented constant time signing (0.01 sec for sign) to avoid timing attacks.

Installation Requirements

libBLS has been built and tested on Ubuntu and Mac.

GitHub is used to maintain this source code. Clone this repository by:

git clone https://github.com/skalenetwork/libBLS.git
cd libBLS

Building Dependencies

Ensure that required packages listed below are installed.

Build libBLS's dependencies by:

cd deps
bash ./build.sh
cd ..

Building from source on Mac

brew install flex bison libtool automake cmake pkg-config yasm
# Configure the project and create a build directory.
cmake -H. -Bbuild

# Build all default targets using all cores.
cmake --build build -- -j$(sysctl -n hw.ncpu)

Building from source on Ubuntu

Ensure that the required packages are installed by executing:

sudo apt-get update
sudo apt-get install -y automake cmake build-essential libprocps-dev libtool\
                        pkg-config yasm texinfo autoconf flex bison clang-format-6.0

Configure the project build with the following commands.

# Configure the project and create a build directory.
cmake -H. -Bbuild

# Build all default targets using all cores.
cmake --build build -- -j$(nproc)

Include the library

#include <libBLS.h>

Documentation

See docs for libBLS documentation.

Libraries

Contributing

If you have any questions please ask the development community on Discord.

Discord

Otherwise see our CONTRIBUTING.md for more information.

License

License

Copyright (C) 2018-present SKALE Labs

libbls's People

Contributors

adir852 avatar cstrangedk avatar dimalit avatar dimastebaev avatar dmytronazarenko avatar gannakulikova avatar gaoweihe avatar kladkogex avatar lxndrhss avatar olehnikolaiev avatar rumata888 avatar sergiy-ezlo avatar sergiy-skalelabs avatar svetaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libbls's Issues

Function `DKGBLSWrapper::CreateTEPublicKey` declared but not defined

I am trying to aggregate public shares in the context of BLS TSS.
The problem is, DKGBLSWrapper::CreateTEPublicKey is declared at DKGBLSWrapper.h#L55 . However, its definitions does not appear in DKGBLSWrapper.cpp.

There is an equivalent API DKGTEWrapper::CreateTEPublicKey implemented at DKGTEWrapper.cpp#L81, which returns TEPublicKey . But no explicit conversion method from TEPublicKey to BLSPublicKey is provided.

@olehnikolaiev Could you fix this problem? Thanks.

┆Issue is synchronized with this Jira Task

how to use this lib in my own project?

i build passed all things. and got error when use this lib in myown project mytest.cpp
here is myproject structure:

-ReplicaTest/
--build/
--include/
----libBLS/
--src/
--CMakeFile
--mytest.cpp

CMakeFiles:

cmake_minimum_required(VERSION 3.5.1)
project(ReplicaTest)
set(CMAKE_CXX_STANDARD 14)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -pthread -L${PROJECT_SOURCE_DIR}/include/libBLS/deps/libff/build/libff -lff")
set_directory_properties(${PROJECT_SOURCE_DIR}/bin)
include_directories(/usr/include)
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/include/libBLS)
include_directories(${PROJECT_SOURCE_DIR}/include/libBLS/bls)
include_directories(${PROJECT_SOURCE_DIR}/src)

add_executable(ReplicaTest
        mytest.cpp
        include/libBLS/libBLS.h)

and mytest.cpp is (copy from docs/using threshold signatur.md):

#include <libBLS.h>
#include <random>
#include <cassert>
using namespace std;
int main() {
    size_t num_all = 4;
    size_t num_signed = 3;

    std::vector<size_t> participants(num_all);

    for (size_t i = 0; i < num_signed; ++i)
        participants.at(i) = i + 1; //set participants indices 1,2,3

    std::shared_ptr<std::vector<std::shared_ptr<BLSPrivateKeyShare>>> Skeys =
            BLSPrivateKeyShare::generateSampleKeys(num_signed, num_all)->first;

    std::default_random_engine rand_gen((unsigned int) time(0));
    std::array<uint8_t, 32> hash_byte_arr;
    for ( size_t i = 0; i < 32 ; i++){        //generate random hash
        hash_byte_arr.at(i) = rand_gen() % 255;
    }
    std::shared_ptr<std::array<uint8_t, 32>> hash_ptr =
            std::make_shared< std::array<uint8_t, 32> >(hash_byte_arr);

    BLSSigShareSet sigSet(num_signed, num_all);

    for (size_t i = 0; i < num_signed; ++i) {
        std::shared_ptr<BLSPrivateKeyShare> skey = Skeys->at(i);

// sign with private key of each participant
        std::shared_ptr<BLSSigShare> sigShare = skey->sign(hash_ptr, participants.at(i));

        sigSet.addSigShare(sigShare);
    }

    std::shared_ptr<BLSSignature> common_sig_ptr = sigSet.merge();         //create common signature

//create common private key from private keys of each participant
    BLSPrivateKey common_skey
            (Skeys, std::make_shared<std::vector<size_t>>(participants), num_signed, num_all);

//create common public key from common private key
    BLSPublicKey common_pkey(*(common_skey.getPrivateKey()), num_signed, num_all);

// verify common signature with common public key
    assert(common_pkey.VerifySig(hash_ptr, common_sig_ptr, num_signed, num_all));
}

then run make in build got this error :

[ 50%] Building CXX object CMakeFiles/ReplicaTest.dir/test.cpp.o
In file included from ReplicaTest/include/libBLS/bls/BLSSignature.h:27:0,
                 from /ReplicaTest/include/libBLS/bls/BLSPublicKey.h:28,
                 from ReplicaTest/include/libBLS/bls/BLSPrivateKeyShare.h:28,
                 from ReplicaTest/include/libBLS/bls/BLSPrivateKey.h:28,
                 from ReplicaTest/include/libBLS/libBLS.h:27,
                 from /ReplicaTest/test.cpp:5:
/home/z/GraDesign/test/ReplicaTest/include/libBLS/bls/bls.h:35:10: fatal error: libff/algebra/curves/alt_bn128/alt_bn128_pp.hpp: No such file or directory
 #include <libff/algebra/curves/alt_bn128/alt_bn128_pp.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/ReplicaTest.dir/build.make:62: recipe for target 'CMakeFiles/ReplicaTest.dir/test.cpp.o' failed
make[2]: *** [CMakeFiles/ReplicaTest.dir/test.cpp.o] Error 1
CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/ReplicaTest.dir/all' failed
make[1]: *** [CMakeFiles/ReplicaTest.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

how to fix this situation? did i not point to libff or libBLS in cmakefile?
thanks.

libBLS unit tests fail randonmly

unit tests fail from time to time in random places. need to find the root cause and fix it to make the nighly and unit testing flow more smooth

┆Issue is synchronized with this Jira Bug

Got empty common public key while invoking BLSPrivateKeyShare::generateSampleKeys

I am trying to generate sample keys with BLSPrivateKeyShare::generateSampleKeys following step 2 in using-threshold-signatures.md. However, the two assertions in the code below failed, where keys_->second->getRequiredSigners() and keys_->second->getTotalSigners() both returned 0.

My code:


#include "libBLS.h"

int main()
{
	auto keys_ = BLSPrivateKeyShare::generateSampleKeys(20, 20);
	assert(keys_->second->getRequiredSigners() == 20); // Assertion `keys_->second->getRequiredSigners() == 20' failed
	assert(keys_->second->getTotalSigners() == 20); // Assertion `keys_->second->getTotalSigners() == 20' failed
	return 0;
}

For your convenience, keys_ is of type


std::shared_ptr< std::pair < 
    std::shared_ptr< std::vector< std::shared_ptr< BLSPrivateKeyShare > > >,
    std::shared_ptr< BLSPublicKey > 
> >

My CMake linking configuration is


target_link_libraries(project-name
    libsodium.a
    libbls.a
    libff.a
    libgmpxx.a
    libgmp.a
    libgcov.a
    libssl.a
    libcrypto.a
    libz.so
    libpthread.so
    libdl.so
) 

Am I using the BLSPrivateKeyShare::generateSampleKeys function correctly? Thanks!

add check public shares are in G2 group

The is_well_formed check in libff::alt_bn128_G2 is insufficient. It checks that the projective coordinates (X,Y,Z) satisfy the equation of the curve, but G2 is actually a subgroup of the elliptic curve points. An attacker that controls n-t participants, where n are all participants and t+1 is the number of participants required to sign a message with the common public key, will always be able to corrupt the public key so it is almost impossible to create a common signature, allowing the attacker to escape later detection during the signing phase. With a probability of 1/10069 the attacker can do the same with n-t participants.

┆Issue is synchronized with this Jira Bug

Please add flags to cmake file of libbls to disable warnings

Describe the bug
A clear and concise description of what the bug is.

Los of libbls compiler warnings in skaled build. It make it hard to analyze build logs

To Reproduce
Build skaled

Expected behavior
Please add flags to cmake file of libbls to disable warning

Issues with concurrent execution

Describe the bug
I believe the individual class instances are not thread-safe, but I expected that different class instances can be accessed by different threads. This does not seem to be the case and I am running into segmentation violations due to null pointer dereference(?).

To Reproduce
Build and run the following code:

#include <iostream>
#include <thread>

#include <bls/BLSPrivateKey.h>
#include <bls/BLSPublicKeyShare.h>
#include <bls/BLSSigShare.h>
#include <bls/BLSSigShareSet.h>

#include <libff/common/profiling.hpp>

int inited = 0;
void init() {
    if ( inited == 1 )
        return;
    inited = 1;
    libff::init_alt_bn128_params();
    libff::inhibit_profiling_info = true;
}

void bls_sign_and_verify_test( void ) {
    size_t num_all = 3;
    size_t num_signed = 2;

    std::vector< size_t > participants( num_all );
    for ( size_t i = 0; i < num_signed; ++i )
        participants.at( i ) = i + 1;

    std::shared_ptr< std::vector< std::shared_ptr< BLSPrivateKeyShare > > > Skeys =
        std::make_shared< std::vector< std::shared_ptr< BLSPrivateKeyShare > > >();
    Skeys->emplace_back( std::make_shared< BLSPrivateKeyShare >(
        "13495860062249993865734902048793710375616417009831840885382880613253415974387",
        num_signed, num_all ) );
    Skeys->emplace_back( std::make_shared< BLSPrivateKeyShare >(
        "14432995725644194091092767544667816115262418605728523769974352756346168301805",
        num_signed, num_all ) );
    Skeys->emplace_back( std::make_shared< BLSPrivateKeyShare >(
        "15370131389038394316450633040541921854908420201625206654565824899438920629223",
        num_signed, num_all ) );

    std::shared_ptr< std::vector< std::string > > pkeys =
        std::make_shared< std::vector< std::string > >();
    pkeys->emplace_back( std::string(
        "3872398145671381750051310361161029866141599796961754550720954525373154029641" ) );
    pkeys->emplace_back( std::string(
        "18913992266273626846214164704318441079079824927432633934738241159011855215319" ) );
    pkeys->emplace_back( std::string(
        "7545865829532108925029707269152845926323190473050391644910514830901650171418" ) );
    pkeys->emplace_back( std::string(
        "6044262478369222839265815623050805443715326867730809093545852876997568163314" ) );
    std::shared_ptr< BLSPublicKey > common_pkey =
        std::make_shared< BLSPublicKey >( pkeys, num_signed, num_all );

    std::default_random_engine rand_gen( ( unsigned int ) time( 0 ) );
    std::array< uint8_t, 32 > hash_byte_arr;
    std::string hello = "hello";
    for ( size_t i = 0; i < 32; i++ ) {
        hash_byte_arr.at( i ) = rand() % 255;
    }
    std::shared_ptr< std::array< uint8_t, 32 > > hash_ptr =
        std::make_shared< std::array< uint8_t, 32 > >( hash_byte_arr );

    BLSSigShareSet sigSet( num_signed, num_all );

    for ( size_t i = 0; i < num_signed; i++ ) {
        auto share = Skeys->at( i );
        auto sigShare = share->signWithHelper( hash_ptr, participants.at( i ) );
        sigSet.addSigShare( sigShare );
    }

    std::shared_ptr< BLSSignature > common_sig_ptr = sigSet.merge();  // create common signature

    // create common private key from private keys of each participant
    BLSPrivateKey common_skey(
        Skeys, std::make_shared< std::vector< size_t > >( participants ), num_signed, num_all );

    if ( common_pkey->VerifySig( hash_ptr, common_sig_ptr, num_signed, num_all ) ) {
        printf( "verified!!!\n" );
    }

    // verify common signature with common public key
    assert( common_pkey->VerifySig( hash_ptr, common_sig_ptr, num_signed, num_all ) );
}

void* thread_run(void* _id) {
    int id = *((int*)_id);
    init();
    std::cout << id << std::endl;
    for ( int i = 0; i < 100; i++ ) {
        bls_sign_and_verify_test();
    }
    return NULL;
}

int main() {
    std::cout << "Spawning 3 threads...\n";
    pthread_t threads[3];
    for (int i=0; i < 3; i++)
    {
        pthread_create( &threads[i], NULL, &thread_run, &i );
    }
    std::cout << "Done spawning threads. Now waiting for them to join:\n";
    void *res;
    for (int i=0; i < 3; i++)
    {
        pthread_join(threads[i], &res);
    }
    std::cout << "All threads joined!\n";
    return 0;
}

Expected behavior
Individual threads should be able to produce and verify signatures without any issues.

Environment:

  • OS Platform and Distribution (e.g. Linux Ubuntu 16.04): Ubuntu 18.04
  • GCC/Compiler version: 7.5.0

Additional context
Add any other context about the problem here, such as logs or source code. Please link to a GitHub Gist instead of posting any lengthy content.

cross compile

hi, i wonder if the project can be compiled in windows. How to deal with “bash ./build.sh” in windows environment.

error: missing template arguments before ‘keys’

Hello!
When I compile threshold_encryption/TEPrivateKeyShare.cpp, there is a error:

threshold_encryption/TEPrivateKeyShare.cpp: In static member function ‘static std::pair<std::shared_ptr<std::vector<std::shared_ptr > >, std::shared_ptr > TEPrivateKeyShare::generateSampleKeys(size_t, size_t)’:

threshold_encryption/TEPrivateKeyShare.cpp:128:15: error: missing template arguments before ‘keys’
128 | std::pair keys = std::make_pair(
| ^~~~
threshold_encryption/TEPrivateKeyShare.cpp:131:12: error: ‘keys’ was not declared in this scope; did you mean ‘skeys’?
131 | return keys;

the codes are:

std::pair keys = std::make_pair(
std::make_shared< std::vector< std::shared_ptr< TEPrivateKeyShare > > >( skey_shares ),
std::make_shared< TEPublicKey >( common_public ) );
return keys;

I think the type of variable should be indicated before keys .Am I right? Is there any other solution?

Support of Ubuntu 20.04

  • PRD: SYSTEM UPGRADE
  • Warning: Github Actions will drop Ubuntu 18.04 runner on April 1st (actions/runner-images#6002), which will affect both development and testing.

We need to update libbls to ubuntu 20.04 as it is a part of sgxwallet. Need to:

  • Verify its compatibility with ubuntu 20.04 and 18.04
  • Fix incompatibilities if presented
  • Update CI to use ubuntu 20.04

potential segmentation fault when serializing to string

A stack buffer overflow vulnerability is present in the BLSSignature.cpp and BLSSigShare.cpp. The toString() methods has a fixed buffer of size 512 called str. The function utilizes the hint variable in the gmp_sprintf to add it to the str buffer. However, there is no check on the size of the hint variable which can easily overflow the str buffer of size 512. The hint variable is in the control of the user, and therefore, a buffer overflow can be executed.

serialing TEPrivatekeyShare and TEPublickeyShare

hi, i found the "toString" function in TEPrivateKeyShare and TEPublicKeyShare only encodes the PublicKey and PrivateKey, leaving alone other arguments "SignedTx, requiredSigners and requiredSigners". If i want to recover a TEPrivatekeyshare directly from bytes, could you give a complete function which will encode the entire arguments.

Thank you.

CMake Error at CMakeLists.txt

Hello,I have a cmake error when I do the following command on Ubuntu 16.04TLS:

cmake -H. -Bbuild

and then ,the terminal shows that:

CMake Error at CMakeLists.txt:10 (message):
Require at least gcc-7.0

-- Configuring incomplete, errors occurred!

but when I check the gcc version by gcc -v
it shows:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu116.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1
16.04)

I think my gcc version have reached this lib, but why I have this error? How can I fix it?

"cmake --build build -- -j$(sysctl -n hw.ncpu) " Error

I got a problem when I "cmake --build build -- -j$(nproc)" in ubuntu 18.04 ,gcc version 7.5.0, g++ version 7.5.0

the error are

"Sysctl: could not obtain the file status of /proc/sys/hw/ncpu (stat): there is no file or directory
[ 1%] Building CXX object threshold_encryption/CMakeFiles/te.dir/TEPrivateKey.cpp.o
[ 3%] Building CXX object threshold_encryption/CMakeFiles/te.dir/threshold_encryption.cpp.o
[ 7%] Building CXX object threshold_encryption/CMakeFiles/te.dir//dkg/DKGTEWrapper.cpp.o
[ 9%] Building CXX object threshold_encryption/CMakeFiles/te.dir/TEPrivateKeyShare.cpp.o
[ 12%] Building CXX object threshold_encryption/CMakeFiles/te.dir/TEDecryptSet.cpp.o
[ 14%] Building CXX object threshold_encryption/CMakeFiles/te.dir/TEPublicKeyShare.cpp.o
[ 10%] Building CXX object threshold_encryption/CMakeFiles/te.dir/
/dkg/dkg.cpp.o
[ 16%] Building CXX object threshold_encryption/CMakeFiles/te.dir//tools/utils.cpp.o
[ 5%] Building CXX object threshold_encryption/CMakeFiles/te.dir/TEPublicKey.cpp.o
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:62: recipe for target 'threshold_encryption/CMakeFiles/te.dir/threshold_encryption.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/threshold_encryption.cpp.o] Error 1
make[2]: *** Waiting for unfinished tasks....
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:134: recipe for target 'threshold_encryption/CMakeFiles/te.dir/TEPrivateKey.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/TEPrivateKey.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
[ 18%] Building CXX object threshold_encryption/CMakeFiles/te.dir/
/dkg/DKGTESecret.cpp.o
threshold_encryption/CMakeFiles/te.dir/build.make:110: recipe for target 'threshold_encryption/CMakeFiles/te.dir/TEPrivateKeyShare.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/TEPrivateKeyShare.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:230: recipe for target 'threshold_encryption/CMakeFiles/te.dir//dkg/DKGTEWrapper.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/
/dkg/DKGTEWrapper.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:86: recipe for target 'threshold_encryption/CMakeFiles/te.dir/TEDecryptSet.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/TEDecryptSet.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:206: recipe for target 'threshold_encryption/CMakeFiles/te.dir//dkg/dkg.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/
/dkg/dkg.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:278: recipe for target 'threshold_encryption/CMakeFiles/te.dir//tools/utils.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/
/tools/utils.cpp.o] Error 1
threshold_encryption/CMakeFiles/te.dir/build.make:158: recipe for target 'threshold_encryption/CMakeFiles/te.dir/TEPublicKey.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/TEPublicKey.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:182: recipe for target 'threshold_encryption/CMakeFiles/te.dir/TEPublicKeyShare.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/TEPublicKeyShare.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
threshold_encryption/CMakeFiles/te.dir/build.make:254: recipe for target 'threshold_encryption/CMakeFiles/te.dir//dkg/DKGTESecret.cpp.o' failed
make[2]: *** [threshold_encryption/CMakeFiles/te.dir/
/dkg/DKGTESecret.cpp.o] Error 1
CMakeFiles/Makefile2:777: recipe for target 'threshold_encryption/CMakeFiles/te.dir/all' failed
make[1]: *** [threshold_encryption/CMakeFiles/te.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
[ 20%] Building CXX object CMakeFiles/bls.dir/bls/bls.cpp.o
[ 21%] Building CXX object CMakeFiles/bls.dir/bls/BLSPrivateKeyShare.cpp.o
[ 23%] Building CXX object CMakeFiles/bls.dir/bls/BLSPublicKeyShare.cpp.o
[ 25%] Building CXX object CMakeFiles/bls.dir/bls/BLSPublicKey.cpp.o
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
[ 27%] Building CXX object CMakeFiles/bls.dir/bls/BLSPrivateKey.cpp.o
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
[ 29%] Building CXX object CMakeFiles/bls.dir/bls/BLSSigShareSet.cpp.o
[ 30%] Building CXX object CMakeFiles/bls.dir/bls/BLSSignature.cpp.o
CMakeFiles/bls.dir/build.make:62: recipe for target 'CMakeFiles/bls.dir/bls/bls.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/bls.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:86: recipe for target 'CMakeFiles/bls.dir/bls/BLSPrivateKeyShare.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSPrivateKeyShare.cpp.o] Error 1
[ 32%] Building CXX object CMakeFiles/bls.dir/dkg/dkg.cpp.o
[ 34%] Building CXX object CMakeFiles/bls.dir/dkg/DKGBLSWrapper.cpp.o
[ 36%] Building CXX object CMakeFiles/bls.dir/bls/BLSSigShare.cpp.o
[ 38%] Building CXX object CMakeFiles/bls.dir/dkg/DKGBLSSecret.cpp.o
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
[ 40%] Building CXX object CMakeFiles/bls.dir/tools/utils.cpp.o
CMakeFiles/bls.dir/build.make:158: recipe for target 'CMakeFiles/bls.dir/bls/BLSPublicKey.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSPublicKey.cpp.o] Error 1
[ 41%] Building CXX object CMakeFiles/bls.dir/third_party/cryptlite/base64.cpp.o
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:134: recipe for target 'CMakeFiles/bls.dir/bls/BLSPublicKeyShare.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSPublicKeyShare.cpp.o] Error 1
CMakeFiles/bls.dir/build.make:182: recipe for target 'CMakeFiles/bls.dir/bls/BLSSignature.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSSignature.cpp.o] Error 1
CMakeFiles/bls.dir/build.make:278: recipe for target 'CMakeFiles/bls.dir/dkg/DKGBLSWrapper.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/dkg/DKGBLSWrapper.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:230: recipe for target 'CMakeFiles/bls.dir/bls/BLSSigShareSet.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSSigShareSet.cpp.o] Error 1
CMakeFiles/bls.dir/build.make:254: recipe for target 'CMakeFiles/bls.dir/dkg/dkg.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/dkg/dkg.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:326: recipe for target 'CMakeFiles/bls.dir/third_party/cryptlite/base64.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/third_party/cryptlite/base64.cpp.o] Error 1
CMakeFiles/bls.dir/build.make:110: recipe for target 'CMakeFiles/bls.dir/bls/BLSPrivateKey.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSPrivateKey.cpp.o] Error 1
CMakeFiles/bls.dir/build.make:206: recipe for target 'CMakeFiles/bls.dir/bls/BLSSigShare.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/bls/BLSSigShare.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:302: recipe for target 'CMakeFiles/bls.dir/dkg/DKGBLSSecret.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/dkg/DKGBLSSecret.cpp.o] Error 1
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
cc1plus: error: -Werror=deprecated-copy: no option -Wdeprecated-copy
CMakeFiles/bls.dir/build.make:350: recipe for target 'CMakeFiles/bls.dir/tools/utils.cpp.o' failed
make[2]: *** [CMakeFiles/bls.dir/tools/utils.cpp.o] Error 1
CMakeFiles/Makefile2:210: recipe for target 'CMakeFiles/bls.dir/all' failed
make[1]: *** [CMakeFiles/bls.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2"

and the cmakeputput.log is

"The system is: Linux - 5.4.0-84-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/gcc
Build flags:
Id flags:

The output was:
0

Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"

The C compiler identification is GNU, found in "/home/yorknb/Documents/libBLS/build/CMakeFiles/3.10.2/CompilerIdC/a.out"

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/g++
Build flags:
Id flags:

The output was:
0

Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"

The CXX compiler identification is GNU, found in "/home/yorknb/Documents/libBLS/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out"

Determining if the C compiler works passed with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_0caa1/fast"
/usr/bin/make -f CMakeFiles/cmTC_0caa1.dir/build.make CMakeFiles/cmTC_0caa1.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_0caa1.dir/testCCompiler.c.o
/usr/bin/gcc -o CMakeFiles/cmTC_0caa1.dir/testCCompiler.c.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTC_0caa1
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0caa1.dir/link.txt --verbose=1
/usr/bin/gcc CMakeFiles/cmTC_0caa1.dir/testCCompiler.c.o -o cmTC_0caa1
make[1]: Leave the directory “/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_17d4a/fast"
/usr/bin/make -f CMakeFiles/cmTC_17d4a.dir/build.make CMakeFiles/cmTC_17d4a.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o
/usr/bin/gcc -o CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c
Linking C executable cmTC_17d4a
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_17d4a.dir/link.txt --verbose=1
/usr/bin/gcc -v CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -o cmTC_17d4a
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu118.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1
18.04) a
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17d4a' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccVu4aFP.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_17d4a /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17d4a' '-mtune=generic' '-march=x86-64'
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Parsed C implicit link information from above output:
link line regex: [^( |.[/])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_17d4a/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_17d4a.dir/build.make CMakeFiles/cmTC_17d4a.dir/build]
ignore line: [make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”]
ignore line: [Building C object CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/gcc -o CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c]
ignore line: [Linking C executable cmTC_17d4a]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_17d4a.dir/link.txt --verbose=1]
ignore line: [/usr/bin/gcc -v CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -o cmTC_17d4a ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/gcc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu118.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1
18.04) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17d4a' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccVu4aFP.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_17d4a /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccVu4aFP.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_17d4a] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..]
arg [CMakeFiles/cmTC_17d4a.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []

Detecting C [-std=c11] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_ff12f/fast"
/usr/bin/make -f CMakeFiles/cmTC_ff12f.dir/build.make CMakeFiles/cmTC_ff12f.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_ff12f.dir/feature_tests.c.o
/usr/bin/gcc -std=c11 -o CMakeFiles/cmTC_ff12f.dir/feature_tests.c.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_ff12f
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff12f.dir/link.txt --verbose=1
/usr/bin/gcc CMakeFiles/cmTC_ff12f.dir/feature_tests.c.o -o cmTC_ff12f
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:1c_restrict
Feature record: C_FEATURE:1c_static_assert
Feature record: C_FEATURE:1c_variadic_macros

Detecting C [-std=c99] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_e29a3/fast"
/usr/bin/make -f CMakeFiles/cmTC_e29a3.dir/build.make CMakeFiles/cmTC_e29a3.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_e29a3.dir/feature_tests.c.o
/usr/bin/gcc -std=c99 -o CMakeFiles/cmTC_e29a3.dir/feature_tests.c.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_e29a3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e29a3.dir/link.txt --verbose=1
/usr/bin/gcc CMakeFiles/cmTC_e29a3.dir/feature_tests.c.o -o cmTC_e29a3
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:1c_restrict
Feature record: C_FEATURE:0c_static_assert
Feature record: C_FEATURE:1c_variadic_macros

Detecting C [-std=c90] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_5ddcd/fast"
/usr/bin/make -f CMakeFiles/cmTC_5ddcd.dir/build.make CMakeFiles/cmTC_5ddcd.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_5ddcd.dir/feature_tests.c.o
/usr/bin/gcc -std=c90 -o CMakeFiles/cmTC_5ddcd.dir/feature_tests.c.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_5ddcd
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5ddcd.dir/link.txt --verbose=1
/usr/bin/gcc CMakeFiles/cmTC_5ddcd.dir/feature_tests.c.o -o cmTC_5ddcd
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: C_FEATURE:1c_function_prototypes
Feature record: C_FEATURE:0c_restrict
Feature record: C_FEATURE:0c_static_assert
Feature record: C_FEATURE:0c_variadic_macros

Determining if the CXX compiler works passed with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_b8e29/fast"
/usr/bin/make -f CMakeFiles/cmTC_b8e29.dir/build.make CMakeFiles/cmTC_b8e29.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_b8e29.dir/testCXXCompiler.cxx.o
/usr/bin/g++ -o CMakeFiles/cmTC_b8e29.dir/testCXXCompiler.cxx.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTC_b8e29
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b8e29.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/cmTC_b8e29.dir/testCXXCompiler.cxx.o -o cmTC_b8e29
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_be32e/fast"
/usr/bin/make -f CMakeFiles/cmTC_be32e.dir/build.make CMakeFiles/cmTC_be32e.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/g++ -o CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp
Linking CXX executable cmTC_be32e
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_be32e.dir/link.txt --verbose=1
/usr/bin/g++ -v CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_be32e
Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu118.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1
18.04)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_be32e' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccFhurzq.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_be32e /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_be32e' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Parsed CXX implicit link information from above output:
link line regex: [^( |.[/])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_be32e/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_be32e.dir/build.make CMakeFiles/cmTC_be32e.dir/build]
ignore line: [make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”]
ignore line: [Building CXX object CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/g++ -o CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Linking CXX executable cmTC_be32e]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_be32e.dir/link.txt --verbose=1]
ignore line: [/usr/bin/g++ -v CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_be32e ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/g++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu118.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1
18.04) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_be32e' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccFhurzq.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_be32e /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccFhurzq.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_be32e] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..]
arg [CMakeFiles/cmTC_be32e.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib]
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []

Detecting CXX [-std=c++1z] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_f2f93/fast"
/usr/bin/make -f CMakeFiles/cmTC_f2f93.dir/build.make CMakeFiles/cmTC_f2f93.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_f2f93.dir/feature_tests.cxx.o
/usr/bin/g++ -std=c++1z -o CMakeFiles/cmTC_f2f93.dir/feature_tests.cxx.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_f2f93
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f2f93.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/cmTC_f2f93.dir/feature_tests.cxx.o -o cmTC_f2f93
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:1cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:1cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:1cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:1cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:1cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:1cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:1cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
Feature record: CXX_FEATURE:1cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:1cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates

Detecting CXX [-std=c++14] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_4a2ce/fast"
/usr/bin/make -f CMakeFiles/cmTC_4a2ce.dir/build.make CMakeFiles/cmTC_4a2ce.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_4a2ce.dir/feature_tests.cxx.o
/usr/bin/g++ -std=c++14 -o CMakeFiles/cmTC_4a2ce.dir/feature_tests.cxx.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_4a2ce
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4a2ce.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/cmTC_4a2ce.dir/feature_tests.cxx.o -o cmTC_4a2ce
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:1cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:1cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:1cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:1cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:1cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:1cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:1cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
Feature record: CXX_FEATURE:1cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:1cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates

Detecting CXX [-std=c++11] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_29488/fast"
/usr/bin/make -f CMakeFiles/cmTC_29488.dir/build.make CMakeFiles/cmTC_29488.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_29488.dir/feature_tests.cxx.o
/usr/bin/g++ -std=c++11 -o CMakeFiles/cmTC_29488.dir/feature_tests.cxx.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_29488
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_29488.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/cmTC_29488.dir/feature_tests.cxx.o -o cmTC_29488
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:1cxx_alias_templates
Feature record: CXX_FEATURE:1cxx_alignas
Feature record: CXX_FEATURE:1cxx_alignof
Feature record: CXX_FEATURE:1cxx_attributes
Feature record: CXX_FEATURE:0cxx_attribute_deprecated
Feature record: CXX_FEATURE:1cxx_auto_type
Feature record: CXX_FEATURE:0cxx_binary_literals
Feature record: CXX_FEATURE:1cxx_constexpr
Feature record: CXX_FEATURE:0cxx_contextual_conversions
Feature record: CXX_FEATURE:1cxx_decltype
Feature record: CXX_FEATURE:0cxx_decltype_auto
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:1cxx_default_function_template_args
Feature record: CXX_FEATURE:1cxx_defaulted_functions
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:1cxx_delegating_constructors
Feature record: CXX_FEATURE:1cxx_deleted_functions
Feature record: CXX_FEATURE:0cxx_digit_separators
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
Feature record: CXX_FEATURE:1cxx_explicit_conversions
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
Feature record: CXX_FEATURE:1cxx_extern_templates
Feature record: CXX_FEATURE:1cxx_final
Feature record: CXX_FEATURE:1cxx_func_identifier
Feature record: CXX_FEATURE:1cxx_generalized_initializers
Feature record: CXX_FEATURE:0cxx_generic_lambdas
Feature record: CXX_FEATURE:1cxx_inheriting_constructors
Feature record: CXX_FEATURE:1cxx_inline_namespaces
Feature record: CXX_FEATURE:1cxx_lambdas
Feature record: CXX_FEATURE:0cxx_lambda_init_captures
Feature record: CXX_FEATURE:1cxx_local_type_template_args
Feature record: CXX_FEATURE:1cxx_long_long_type
Feature record: CXX_FEATURE:1cxx_noexcept
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
Feature record: CXX_FEATURE:1cxx_nullptr
Feature record: CXX_FEATURE:1cxx_override
Feature record: CXX_FEATURE:1cxx_range_for
Feature record: CXX_FEATURE:1cxx_raw_string_literals
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
Feature record: CXX_FEATURE:0cxx_return_type_deduction
Feature record: CXX_FEATURE:1cxx_right_angle_brackets
Feature record: CXX_FEATURE:1cxx_rvalue_references
Feature record: CXX_FEATURE:1cxx_sizeof_member
Feature record: CXX_FEATURE:1cxx_static_assert
Feature record: CXX_FEATURE:1cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:1cxx_thread_local
Feature record: CXX_FEATURE:1cxx_trailing_return_types
Feature record: CXX_FEATURE:1cxx_unicode_literals
Feature record: CXX_FEATURE:1cxx_uniform_initialization
Feature record: CXX_FEATURE:1cxx_unrestricted_unions
Feature record: CXX_FEATURE:1cxx_user_literals
Feature record: CXX_FEATURE:0cxx_variable_templates
Feature record: CXX_FEATURE:1cxx_variadic_macros
Feature record: CXX_FEATURE:1cxx_variadic_templates

Detecting CXX [-std=c++98] compiler features compiled with the following output:
Change Dir: /home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_e4d89/fast"
/usr/bin/make -f CMakeFiles/cmTC_e4d89.dir/build.make CMakeFiles/cmTC_e4d89.dir/build
make[1]: 进入目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_e4d89.dir/feature_tests.cxx.o
/usr/bin/g++ -std=c++98 -o CMakeFiles/cmTC_e4d89.dir/feature_tests.cxx.o -c /home/yorknb/Documents/libBLS/build/CMakeFiles/feature_tests.cxx
Linking CXX executable cmTC_e4d89
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e4d89.dir/link.txt --verbose=1
/usr/bin/g++ CMakeFiles/cmTC_e4d89.dir/feature_tests.cxx.o -o cmTC_e4d89
make[1]: 离开目录“/home/yorknb/Documents/libBLS/build/CMakeFiles/CMakeTmp”

Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
Feature record: CXX_FEATURE:0cxx_alias_templates
Feature record: CXX_FEATURE:0cxx_alignas
Feature record: CXX_FEATURE:0cxx_alignof
Feature record: CXX_FEATURE:0cxx_attributes
Feature record: CXX_FEATURE:0cxx_attribute_deprecated
Feature record: CXX_FEATURE:0cxx_auto_type
Feature record: CXX_FEATURE:0cxx_binary_literals
Feature record: CXX_FEATURE:0cxx_constexpr
Feature record: CXX_FEATURE:0cxx_contextual_conversions
Feature record: CXX_FEATURE:0cxx_decltype
Feature record: CXX_FEATURE:0cxx_decltype_auto
Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
Feature record: CXX_FEATURE:0cxx_default_function_template_args
Feature record: CXX_FEATURE:0cxx_defaulted_functions
Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
Feature record: CXX_FEATURE:0cxx_delegating_constructors
Feature record: CXX_FEATURE:0cxx_deleted_functions
Feature record: CXX_FEATURE:0cxx_digit_separators
Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
Feature record: CXX_FEATURE:0cxx_explicit_conversions
Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
Feature record: CXX_FEATURE:0cxx_extern_templates
Feature record: CXX_FEATURE:0cxx_final
Feature record: CXX_FEATURE:0cxx_func_identifier
Feature record: CXX_FEATURE:0cxx_generalized_initializers
Feature record: CXX_FEATURE:0cxx_generic_lambdas
Feature record: CXX_FEATURE:0cxx_inheriting_constructors
Feature record: CXX_FEATURE:0cxx_inline_namespaces
Feature record: CXX_FEATURE:0cxx_lambdas
Feature record: CXX_FEATURE:0cxx_lambda_init_captures
Feature record: CXX_FEATURE:0cxx_local_type_template_args
Feature record: CXX_FEATURE:0cxx_long_long_type
Feature record: CXX_FEATURE:0cxx_noexcept
Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
Feature record: CXX_FEATURE:0cxx_nullptr
Feature record: CXX_FEATURE:0cxx_override
Feature record: CXX_FEATURE:0cxx_range_for
Feature record: CXX_FEATURE:0cxx_raw_string_literals
Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
Feature record: CXX_FEATURE:0cxx_return_type_deduction
Feature record: CXX_FEATURE:0cxx_right_angle_brackets
Feature record: CXX_FEATURE:0cxx_rvalue_references
Feature record: CXX_FEATURE:0cxx_sizeof_member
Feature record: CXX_FEATURE:0cxx_static_assert
Feature record: CXX_FEATURE:0cxx_strong_enums
Feature record: CXX_FEATURE:1cxx_template_template_parameters
Feature record: CXX_FEATURE:0cxx_thread_local
Feature record: CXX_FEATURE:0cxx_trailing_return_types
Feature record: CXX_FEATURE:0cxx_unicode_literals
Feature record: CXX_FEATURE:0cxx_uniform_initialization
Feature record: CXX_FEATURE:0cxx_unrestricted_unions
Feature record: CXX_FEATURE:0cxx_user_literals
Feature record: CXX_FEATURE:0cxx_variable_templates
Feature record: CXX_FEATURE:0cxx_variadic_macros
Feature record: CXX_FEATURE:0cxx_variadic_templates

"

please help me.

Linking error 'undefined reference to '__gmp_printf'' with the dependency 'libff.a'

(Environment: CLion remote development; CMake 3.22.1; gcc 9.4.0)

I got linking problem while trying to invoke libBLS. And I have changed it to rather simple code:

// main.cpp

#include <iostream>
#include "inc/libBLS.h"

int main() {
    DKGBLSWrapper dkg_obj(3, 4);
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

The CMakeLists configuration I am using is

project(tomchain)
set(CMAKE_CXX_STANDARD 14)

include_directories(inc)
link_directories(lib)

add_executable(tomchain main.cpp)

target_link_libraries(tomchain
        libbls.a
        libgmp.a
        libgcov.a
        libff.a
        libssl.a
        libcrypto.a
        libpthread.a
        libdl.so
        )

It does not work with either libgmp.a or libgmp.so. And the error message is:

Consolidate compiler generated dependencies of target tomchain
[ 50%] Linking CXX executable tomchain
/tmp/tmp.vlK1F0idmX/lib/libff.a(alt_bn128_g1.cpp.o): In function `libff::alt_bn128_G1::print_coordinates() const':
alt_bn128_g1.cpp:(.text+0x81b): undefined reference to `__gmp_printf'
/tmp/tmp.vlK1F0idmX/lib/libff.a(alt_bn128_g1.cpp.o): In function `libff::alt_bn128_G1::print() const':
alt_bn128_g1.cpp:(.text+0xc1a): undefined reference to `__gmp_printf'
/tmp/tmp.vlK1F0idmX/lib/libff.a(alt_bn128_g2.cpp.o): In function `libff::alt_bn128_G2::print_coordinates() const':
alt_bn128_g2.cpp:(.text+0xa5f): undefined reference to `__gmp_printf'
/tmp/tmp.vlK1F0idmX/lib/libff.a(alt_bn128_g2.cpp.o): In function `libff::alt_bn128_G2::print() const':
alt_bn128_g2.cpp:(.text+0x13a4): undefined reference to `__gmp_printf'
collect2: error: ld returned 1 exit status
CMakeFiles/tomchain.dir/build.make:96: recipe for target 'tomchain' failed
make[2]: *** [tomchain] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/tomchain.dir/all' failed
make[1]: *** [CMakeFiles/tomchain.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

All information around this problem I can find is https://github.com/zcash/zcash/issues/1992. But it seems not so relevant to this.

Could you help me with this problem? Thanks.

┆Issue is synchronized with this Jira Task

compile libBLS with emscripten

compile libBLS (or specific file) with emscripten (or clang --traget=wasm) to be albe to call them from browser, integrate it in browser

┆Issue is synchronized with this Jira Task

glibtool is not a valid brew package

Describe the bug

As dependency, glibtool is noted in README.md. However, it doesn't exist in brew. Did you mean libtool?

To Reproduce
Steps to reproduce the behavior:
1. Install dependencies by brew install flex bison glibtool automake cmake pkg-config yasm
2. See error: glibtool is not found.

Expected behavior
Package should be installed without an error

Environment:

  • MacOS 10.15.3

Error serializing libff::alt_bn128_Fr during DKG

I am trying to distribute secret shares in the context of DKG.
My plan is to serialize the libff::alt_bn128_Fr objects that DKGBLSWrapper::createDKGSecretShares produces, and distribute them to other participants through TCP network.

However, I got linking errors with the overloaded operator<< of libff::alt_bn128_Fr.

The code segment relevant to this issue is

DKGBLSWrapper dkg_obj(t, n);

// serialize public shares
std::shared_ptr< std::vector< libff::alt_bn128_G2 > > public_shares = dkg_obj.createDKGPublicShares();
std::ostringstream oss_a;
oss_a << public_shares->at(0); // no error reported

// serialize private shares
std::shared_ptr< std::vector< libff::alt_bn128_Fr > > private_shares = dkg_obj.createDKGSecretShares();
std::ostringstream oss_b;
oss_b << private_shares->at(0); // FIXME: undefined reference to overloaded operator

The error info is

    in function `std::ostream& libff::operator<< <4l>(std::ostream&, libff::bigint<4l> const&)': 
    /libff/algebra/fields/bigint.tcc:192: undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'

My linking configs of cmake is

target_link_libraries(project_name
    libsqlite3.so
    libmysqlcppconn.so
    libsodium.a
    libbls.a
    libff.a
    libgmp.so
    libgcov.so
    libssl.so
    libcrypto.a
    libz.so
    libmuduo_net.a
    libmuduo_base.a
    libpthread.so
    libdl.so
)

and cmake reported no errors during generation.

Could you help me with this problem?
In other words, what is the correct way to serialize and distribute public and private shares during DKG? Thanks.

┆Issue is synchronized with this Jira Task

out_of_range exception produced by BLSPublicKey constructor

Describe the bug
The use of the following BLSPublicKey constructor

 BLSPublicKey(
        std::shared_ptr< std::map< size_t, std::shared_ptr< BLSPublicKeyShare > > > map_pkeys_koefs,
        size_t _requiredSigners, size_t _totalSigners );

leads to libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: vector

To Reproduce
The following minimal example can be used to reproduce the error

size_t n = 3;
size_t t = 2;

DKGBLSWrapper dkg_obj1(t, n);
DKGBLSWrapper dkg_obj2(t, n);
DKGBLSWrapper dkg_obj3(t, n);

std::shared_ptr <std::vector<libff::alt_bn128_G2>> public_shares1 = dkg_obj1.createDKGPublicShares();
std::shared_ptr <std::vector<libff::alt_bn128_Fr>> private_shares1 = dkg_obj1.createDKGSecretShares();

std::shared_ptr <std::vector<libff::alt_bn128_G2>> public_shares2 = dkg_obj2.createDKGPublicShares();
std::shared_ptr <std::vector<libff::alt_bn128_Fr>> private_shares2 = dkg_obj2.createDKGSecretShares();

std::shared_ptr <std::vector<libff::alt_bn128_G2>> public_shares3 = dkg_obj3.createDKGPublicShares();
std::shared_ptr <std::vector<libff::alt_bn128_Fr>> private_shares3 = dkg_obj3.createDKGSecretShares();

// Participant 1
std::shared_ptr <std::vector <libff::alt_bn128_Fr>>  private_shares_collected1 = std::make_shared<std::vector <libff::alt_bn128_Fr>>();
private_shares_collected1->push_back(private_shares1->at(0));
private_shares_collected1->push_back(private_shares2->at(0));
private_shares_collected1->push_back(private_shares3->at(0));
BLSPrivateKeyShare privateKeyShare1 = dkg_obj1.CreateBLSPrivateKeyShare(private_shares_collected1);
BLSPublicKeyShare publicKeyShare1(*(privateKeyShare1.getPrivateKey()), t, n);

// Participant 2
std::shared_ptr <std::vector <libff::alt_bn128_Fr>>  private_shares_collected2 = std::make_shared<std::vector <libff::alt_bn128_Fr>>();
private_shares_collected2->push_back(private_shares1->at(1));
private_shares_collected2->push_back(private_shares2->at(1));
private_shares_collected2->push_back(private_shares3->at(1));
BLSPrivateKeyShare privateKeyShare2 = dkg_obj2.CreateBLSPrivateKeyShare(private_shares_collected2);
BLSPublicKeyShare publicKeyShare2(*(privateKeyShare2.getPrivateKey()), t, n);

// Participant 3
std::shared_ptr <std::vector <libff::alt_bn128_Fr>>  private_shares_collected3 = std::make_shared<std::vector <libff::alt_bn128_Fr>>();
private_shares_collected3->push_back(private_shares1->at(2));
private_shares_collected3->push_back(private_shares2->at(2));
private_shares_collected3->push_back(private_shares3->at(2));
BLSPrivateKeyShare privateKeyShare3 = dkg_obj3.CreateBLSPrivateKeyShare(private_shares_collected3);
BLSPublicKeyShare publicKeyShare3(*(privateKeyShare3.getPrivateKey()), t, n);

std::map<size_t, std::shared_ptr< BLSPublicKeyShare>> publicKeyMap;
publicKeyMap[1] = std::make_shared<BLSPublicKeyShare>(publicKeyShare1);
publicKeyMap[2] = std::make_shared<BLSPublicKeyShare>(publicKeyShare2);
publicKeyMap[3] = std::make_shared<BLSPublicKeyShare>(publicKeyShare3);

BLSPublicKey commonPublicKey(std::make_shared<std::map<size_t, std::shared_ptr< BLSPublicKeyShare>>>(publicKeyMap), t, n);

Expected behavior
The constructor should produce a valid BLSPublicKey

Environment:

  • OS Platform and Distribution (e.g. Linux Ubuntu 16.04): macOS Catalina
  • GCC/Compiler version: clang v12.0.0

Additional context
Add any other context about the problem here, such as logs or source code. Please link to a GitHub Gist instead of posting any lengthy content.

┆Issue is synchronized with this Jira Task

CMAKE error

I got a problem when I "cmake --build build -- -j$(nproc)" in ubuntu.

the error msgs are
"
[ 1%] Building CXX object libff/depends/CMakeFiles/zm.dir/ate-pairing/src/zm.cpp.o
cc1plus: error: -Werror=int-in-bool-context: no option -Wint-in-bool-context
libff/depends/CMakeFiles/zm.dir/build.make:62: recipe for target 'libff/depends/CMakeFiles/zm.dir/ate-pairing/src/zm.cpp.o' failed
make[2]: *** [libff/depends/CMakeFiles/zm.dir/ate-pairing/src/zm.cpp.o] Error 1
CMakeFiles/Makefile2:666: recipe for target 'libff/depends/CMakeFiles/zm.dir/all' failed
make[1]: *** [libff/depends/CMakeFiles/zm.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
"

What can I do for it?

error:catching polymorphic type ‘class std::logic_error’ by value [-Werror=catch-value=]

Hello!
I am trying to build the project from source.

I have run the following command.

sudo apt-get update
sudo apt-get install -y automake cmake build-essential libprocps-dev libtool\
                        pkg-config yasm texinfo autoconf flex bison clang-format-6.0
git clone https://github.com/skalenetwork/libBLS.git
cd libBLS
cd deps
bash ./build.sh
cd ..

cmake -H. -Bbuild

Until now , all steps above were done successfully.
When I run

cmake --build build -- -j$(nproc)

It came to the error as the title said:

....
[ 96%] Linking CXX executable bls_unit_test
[ 96%] Built target bls_unit_test
/home/bob/pkg/libBLS/test/unit_tests_dkg.cpp: In member function ‘void DkgAlgorithm::PolynomialValue::test_method()’:
/home/bob/pkg/libBLS/test/unit_tests_dkg.cpp:64:20: error: catching polymorphic type ‘class std::logic_error’ by value [-Werror=catch-value=]
64 | } catch ( std::logic_error ) {
| ^~~~~~~~~~~
[ 98%] Linking CXX executable generate_key_system
[ 98%] Built target generate_key_system
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/dkg_unit_test.dir/build.make:63:CMakeFiles/dkg_unit_test.dir/test/unit_tests_dkg.cpp.o] error 1
make[1]: *** [CMakeFiles/Makefile2:506:CMakeFiles/dkg_unit_test.dir/all] error 2
make: *** [Makefile:141:all] error 2

Seeking help to fix this building error.

Host operating system

Description: Ubuntu 20.04.2 LTS

Compiler information

gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

┆Issue is synchronized with this Jira Task

init_alt_bn128_params()

hi, i am interested about your projects for "threshold encryption" implementation, but comes across a question now. Why "init_alt_bn128_params()" was called many times during whole threshold encryption process. it seems to be a system params setup, which was generally regarded initialed only once, right? Could you give some explainations.
Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.