Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C API for Ethereum BLS signatures #228

Merged
merged 13 commits into from
Apr 18, 2023
Merged

C API for Ethereum BLS signatures #228

merged 13 commits into from
Apr 18, 2023

Conversation

mratsim
Copy link
Owner

@mratsim mratsim commented Apr 17, 2023

cc @ec2 @willemolding

This PR productionizes Constantine as a backend for Ethereum Consensus.

The PR can be tested with:

git clone https://github.com/mratsim/constantine
cd constantine
nimble refresh --verbose -y
nimble install --verbose -y gmp jsony asynctools # Not needed per se. GMP for the curve bindings, jsony and asynctools for the full testsuite
nimble bindings --verbose # Compile the .so and .a
nimble test_bindings --verbose

A C header is available in include/constantine_ethereum_bls_signatures.h
The dynamic and static library will be placed in lib/ as libconstantine_ethereum_bls_signatures.so (or .dll or .dylib)
The example C file is in example_c/ethereum_bls_signatures.c

Prerequisites

  • Nim v1.6.12 (latest, it probably work with all the 1.6.x series)
  • A C compiler
  • For testing
    • Ethereum BLS signatures: nothing else
    • For testing BLS12-381 primitives: GMP

TODOs

Feedback on API welcome.

@mratsim
Copy link
Owner Author

mratsim commented Apr 18, 2023

CI:

In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_733’,
    inlined from ‘mul2x_fp2_complex_asm_adx__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_480’ at /home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@sassembly@sfp2_asm_x86_adx_bmi2.nim.c:270:2:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@sassembly@sfp2_asm_x86_adx_bmi2.nim.c:257:9: warning: ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’ accessing 48 bytes in a region of size 32 [-Wstringop-overflow=]
  257 |         submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757((*r).limbs2x, (*a).limbs2x, (*b).limbs2x, BN254_Nogami_Modulus__OOZOOZconstantineZmathZconfigZcurves95declaration_679.limbs);
      |         ^
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@sassembly@sfp2_asm_x86_adx_bmi2.nim.c: In function ‘mul2x_fp2_complex_asm_adx__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_480’:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@sassembly@sfp2_asm_x86_adx_bmi2.nim.c:257:9: note: referencing argument 4 of type ‘NU64 *’
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c:25:15: note: in a call to function ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’
   25 | N_LIB_PRIVATE N_NIMCALL(void, submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757)(NU64* r, tyArray__9cHI9ce3NOVpqam1bGmXg5vw a, tyArray__9cHI9ce3NOVpqam1bGmXg5vw b, tyArray__4RmROn7lE6QlXejY1MVycQ M) {
      |               ^
In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_733’,
    inlined from ‘prod2x_complex__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_963’ at /home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:339:2:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: warning: ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’ accessing 48 bytes in a region of size 32 [-Wstringop-overflow=]
  326 |         submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757((*r).limbs2x, (*a).limbs2x, (*b).limbs2x, BN254_Nogami_Modulus__OOZOOZconstantineZmathZconfigZcurves95declaration_679.limbs);
      |         ^
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c: In function ‘prod2x_complex__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_963’:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: note: referencing argument 4 of type ‘NU64 *’
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c:25:15: note: in a call to function ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’
   25 | N_LIB_PRIVATE N_NIMCALL(void, submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757)(NU64* r, tyArray__9cHI9ce3NOVpqam1bGmXg5vw a, tyArray__9cHI9ce3NOVpqam1bGmXg5vw b, tyArray__4RmROn7lE6QlXejY1MVycQ M) {
      |               ^
In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_733’,
    inlined from ‘prod2x__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2842’ at /home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:363:2:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: warning: ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’ accessing 48 bytes in a region of size 32 [-Wstringop-overflow=]
  326 |         submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757((*r).limbs2x, (*a).limbs2x, (*b).limbs2x, BN254_Nogami_Modulus__OOZOOZconstantineZmathZconfigZcurves95declaration_679.limbs);
      |         ^
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c: In function ‘prod2x__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2842’:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: note: referencing argument 4 of type ‘NU64 *’
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c:25:15: note: in a call to function ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’
   25 | N_LIB_PRIVATE N_NIMCALL(void, submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757)(NU64* r, tyArray__9cHI9ce3NOVpqam1bGmXg5vw a, tyArray__9cHI9ce3NOVpqam1bGmXg5vw b, tyArray__4RmROn7lE6QlXejY1MVycQ M) {
      |               ^
In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_733’,
    inlined from ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2996’ at /home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:383:3:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: warning: ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’ accessing 48 bytes in a region of size 32 [-Wstringop-overflow=]
  326 |         submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757((*r).limbs2x, (*a).limbs2x, (*b).limbs2x, BN254_Nogami_Modulus__OOZOOZconstantineZmathZconfigZcurves95declaration_679.limbs);
      |         ^
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c: In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2996’:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: note: referencing argument 4 of type ‘NU64 *’
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c:25:15: note: in a call to function ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’
   25 | N_LIB_PRIVATE N_NIMCALL(void, submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757)(NU64* r, tyArray__9cHI9ce3NOVpqam1bGmXg5vw a, tyArray__9cHI9ce3NOVpqam1bGmXg5vw b, tyArray__4RmROn7lE6QlXejY1MVycQ M) {
      |               ^
stack trace: (most recent call last)
/tmp/nimblecache-946033505/nimscriptapi_1279836830.nim(187, 16)
/home/runner/work/constantine/constantine/constantine/constantine.nimble(702, 8) test_parallelTask
/home/runner/work/constantine/constantine/nim-version-1-6-amd64/lib/system/nimscript.nim(273, 7) exec
In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_733’,
/home/runner/work/constantine/constantine/nim-version-1-6-amd64/lib/system/nimscript.nim(273, 7) Error: unhandled exception: FAILED: build/pararun test_parallel.txt [OSError]
    inlined from ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2996’ at /home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:386:3:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: warning: ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’ accessing 48 bytes in a region of size 32 [-Wstringop-overflow=]
  326 |         submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757((*r).limbs2x, (*a).limbs2x, (*b).limbs2x, BN254_Nogami_Modulus__OOZOOZconstantineZmathZconfigZcurves95declaration_679.limbs);
      |         ^
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c: In function ‘diff2xMod__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_2996’:
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sextension_fields@stowers.nim.c:326:9: note: referencing argument 4 of type ‘NU64 *’
/home/runner/work/constantine/constantine/constantine/nimcache/tests/math/t_pairing_bn254_nogami_multi.nim/@m..@s..@sconstantine@smath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c:25:15: note: in a call to function ‘submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757.constprop’
   25 | N_LIB_PRIVATE N_NIMCALL(void, submod2x_asm__OOZOOZconstantineZmathZconstantsZbn50535295nogami95pairings_757)(NU64* r, tyArray__9cHI9ce3NOVpqam1bGmXg5vw a, tyArray__9cHI9ce3NOVpqam1bGmXg5vw b, tyArray__4RmROn7lE6QlXejY1MVycQ M) {
      |               ^

------------------------------------------------------

test_pairing_bn254_nogami_multi xoshiro512** seed: 1681809783
N=1, Simple: 0.0005s, Multi: 0.0005s
No stack traceback available
Error: unhandled exception: t_pairing_bn254_nogami_multi.nim(59, 12) `bool GTsimple == GTmulti`  [AssertionDefect]
Error: execution of an external program failed: '/home/runner/work/constantine/constantine/constantine/build/testsuite/t_pairing_bn254_nogami_multi '

Windows https://github.com/mratsim/constantine/actions/runs/4730674374/jobs/8394686963#step:21:43 (probably #230)

 [Bindings: examples_c/ethereum_bls_signatures.c] Testing dynamically linked library constantine_ethereum_bls_signatures.dll
lto-wrapper.exe: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper.exe: note: see the '-flto' option documentation for more information
stack trace: (most recent call last)
Signature verification failure: status 1 - cttBLS_VerificationFailure

MacOS https://github.com/mratsim/constantine/actions/runs/4730674374/jobs/8394687314#step:19:25

Compiling static library:  lib/libconstantine_ethereum_bls_signatures.a.arm
Compiling static library:  lib/libconstantine_ethereum_bls_signatures.a.x64
Compiling dynamic library: lib/libconstantine_ethereum_bls_signatures.dylib.arm
Compiling dynamic library: lib/libconstantine_ethereum_bls_signatures.dylib.x64
ld: inline assembly requires more registers than available at line 1976 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: execution of an external program failed: 'clang   -shared -o /Users/runner/work/constantine/constantine/constantine/lib/libconstantine_ethereum_bls_signatures.dylib.x64  /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@m..@s..@snim-version-1-6-amd64@slib@sstd@sprivate@sdigitsutils.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@m..@s..@snim-version-1-6-amd64@slib@ssystem.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mplatforms@sisa@scpuinfo_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@m..@s..@snim-version-1-6-amd64@slib@sposix@sposix.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@m..@s..@snim-version-1-6-amd64@slib@spure@stimes.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhashes@ssha256@ssha256_generic.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhashes@ssha256@ssha256_x86_ssse3.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhashes@ssha256@ssha256_x86_shaext.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhashes@sh_sha256.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhashes.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_mul_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_mul_x86_adx_bmi2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@slimbs_extmul.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@slimbs_unsaturated.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@slimbs_exgcd.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sio@sio_bigints.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconfig@scurves_declaration.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconfig@scurves_prop_field_derived.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_modular_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_redc_mont_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_mul_mont_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_redc_mont_x86_adx_bmi2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_mul_mont_x86_adx_bmi2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_sqrt.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sarithmetic@sassembly@slimbs_asm_modular_dbl_prec_x86.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sextension_fields@sassembly@sfp2_asm_x86_adx_bmi2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sextension_fields@stowers.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_sqrt_fp2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sextension_fields@ssquare_root_fp2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_constants.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@selliptic@sec_shortweierstrass_affine.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@selliptic@sec_shortweierstrass_jacobian.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@selliptic@sec_shortweierstrass_projective.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@selliptic@sec_shortweierstrass_batch_ops.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_endomorphisms.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_frobenius.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sisogenies@sfrobenius.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@selliptic@sec_endomorphism_accel.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_subgroups.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@spairings@scyclotomic_subgroups.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@spairings@slines_eval.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@spairings@smiller_loops.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_pairings.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@spairings@spairings_bls12.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@spairings@smiller_accumulators.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_generators.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mmath@sconstants@sbls12_381_hash_to_curve_g2.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhash_to_curve@sh2c_hash_to_field.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhash_to_curve@sh2c_utilities.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhash_to_curve@sh2c_map_to_isocurve_swu.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhash_to_curve@sh2c_isogeny_maps.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@mhash_to_curve@shash_to_curve.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@msignatures@sbls_signatures.nim.c.o /Users/runner/work/constantine/constantine/constantine/nimcache/bindings_protocols/ethereum_bls_signatures/@methereum_bls_signatures.nim.c.o  -lm -lm  -target x86_64-apple-macos10.12 -flto  -ldl'

@mratsim
Copy link
Owner Author

mratsim commented Apr 18, 2023

I'll fix the issues introduced by LTO in another PR as it's getting quite long and distracting. So LTO is disabled for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant