herumi/bls-eth-go-binary

Issue when using this package on an intel macbook

dexterlakin-bdm opened this issue · 1 comments

I am having trouble building a project with this package on my intel macbook. The issue is:

/go/pkg/tool/darwin_amd64/link: running clang failed: exit status 1
ld: warning: object file (/Users/dlakin/go/pkg/mod/github.com/herumi/bls-eth-go-binary@v0.0.0-20220509081320-2d8ab06de53c/bls/lib/darwin/amd64/libbls384_256.a(bls_c384_256.o)) was built for newer macOS version (12.0) than being linked (10.12)
ld: warning: object file (/Users/dlakin/go/pkg/mod/github.com/herumi/bls-eth-go-binary@v0.0.0-20220509081320-2d8ab06de53c/bls/lib/darwin/amd64/libbls384_256.a(fp.o)) was built for newer macOS version (12.0) than being linked (10.12)
ld: warning: object file (/Users/dlakin/go/pkg/mod/github.com/herumi/bls-eth-go-binary@v0.0.0-20220509081320-2d8ab06de53c/bls/lib/darwin/amd64/libbls384_256.a(base64.o)) was built for newer macOS version (12.0) than being linked (10.12)
Undefined symbols for architecture x86_64:
"____chkstk_darwin", referenced from:
mcl::FpT<mcl::bn::local::FrTag, 256ul>::getLittleEndian(unsigned char*, unsigned long) const in libbls384_256.a(bls_c384_256.o)
mcl::FpT<mcl::bn::local::FpTag, 384ul>::getLittleEndian(unsigned char*, unsigned long) const in libbls384_256.a(bls_c384_256.o)
_blsMultiVerifySub in libbls384_256.a(bls_c384_256.o)
_blsAggregateVerifyNoCheck in libbls384_256.a(bls_c384_256.o)
_blsVerifyAggregatedHashes in libbls384_256.a(bls_c384_256.o)
mcl::fp::decToArray(unsigned long long*, unsigned long, char const*, unsigned long) in libbls384_256.a(bls_c384_256.o)
void mcl::vint::divNM(unsigned long long*, unsigned long, unsigned long long*, unsigned long long const*, unsigned long, unsigned long long const*, unsigned long) in libbls384_256.a(bls_c384_256.o)
...
"_utimensat", referenced from:
_syscall.libc_utimensat_trampoline.abi0 in go.o
ld: symbol(s) not found for architecture x86_64
clang-11: error: linker command failed with exit code 1 (use -v to see invocation))

The message shows your system is old, so type make clean && make on bls-eth-go-binary to create libbls384_256.a.