Implementation notes: amd64, avx512imath, crypto_kem/rsa2048

Computer: avx512imath
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20210125
Operation: crypto_kem
Primitive: rsa2048

Compiler output

Implementation: T:gmp
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `crypto_kem_rsa2048_gmp_timingleaks_dec':
try.c: dec.c:(.text+0x...): undefined reference to `__gmpz_init'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_init'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_init'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_init'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_init'
try.c: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o):dec.c:(.text+0x...): more undefined references to `__gmpz_init' follow
try.c: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `crypto_kem_rsa2048_gmp_timingleaks_dec':
try.c: dec.c:(.text+0x...): undefined reference to `__gmpz_add'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_fdiv_q_ui'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_powm'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_add'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_fdiv_q_ui'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_powm'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_sub'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_mul'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_mod'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_mul'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_add'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_clear'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_clear'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_clear'
try.c: /usr/bin/ld: dec.c:(.text+0x...): undefined reference to `__gmpz_clear'
try.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp

Compiler output

Implementation: T:gmpxx
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `crypto_kem_rsa2048_gmpxx_timingleaks_dec':
try.cpp: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul_2exp'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_q_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul_2exp'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_q_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_r'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_add'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init_set'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmpxx
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmpxx

Compiler output

Implementation: T:gmpxx
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `crypto_kem_rsa2048_gmpxx_timingleaks_dec':
try.cpp: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul_si'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_q_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul_si'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_q_ui'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_tdiv_r'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_mul'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_add'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init_set'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmpxx

Compiler output

Implementation: T:gmpxx
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `crypto_kem_rsa2048_gmpxx_timingleaks_dec':
try.cpp: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_sub'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_add'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_add'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_init_set'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: dec.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o):dec.cpp:(.text+0x...): more undefined references to `__gmpz_clear' follow
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `__gmp_binary_multiplies::eval(__mpz_struct*, __mpz_struct const*, unsigned long)':
try.cpp: dec.cpp:(.text._ZN23__gmp_binary_multiplies4evalEP12__mpz_structPKS0_m[_ZN23__gmp_binary_multiplies4evalEP12__mpz_structPKS0_m]+0x5): undefined reference to `__gmpz_mul_ui'
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `__gmp_binary_divides::eval(__mpz_struct*, __mpz_struct const*, unsigned long)':
try.cpp: dec.cpp:(.text._ZN20__gmp_binary_divides4evalEP12__mpz_structPKS0_m[_ZN20__gmp_binary_divides4evalEP12__mpz_structPKS0_m]+0x5): undefined reference to `__gmpz_tdiv_q_ui'
try.cpp: /usr/bin/ld: crypto_kem_rsa2048.a(dec.o): in function `__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::__gmp_expr<__gmp_binary_expr<__gmp_expr<__mpz_struct [1], __gmp_binary_expr<__gmp_expr<__mpz_struct [1], __gmp_binary_expr<long, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>, __gmp_binary_multiplies> >, long, __gmp_binary_minus> >, long, __gmp_binary_divides> >(__gmp_expr<__mpz_struct [1], __gmp_binary_expr<__gmp_expr<__mpz_struct [1], __gmp_binary_expr<__gmp_expr<__mpz_struct [1], __gmp_binary_expr<long, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>, __gmp_binary_multiplies> >, long, __gmp_binary_minus> >, long, __gmp_binary_divides> > const&)':
try.cpp: dec.cpp:(.text._ZN10__gmp_exprIA1_12__mpz_structS1_EC2I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E[_ZN10__gmp_exprIA1_12__mpz_structS1_EC5I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E]+0xf): undefined reference to `__gmpz_init'
try.cpp: /usr/bin/ld: dec.cpp:(.text._ZN10__gmp_exprIA1_12__mpz_structS1_EC2I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E[_ZN10__gmp_exprIA1_12__mpz_structS1_EC5I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E]+0x25): undefined reference to `__gmpz_mul_si'
try.cpp: /usr/bin/ld: dec.cpp:(.text._ZN10__gmp_exprIA1_12__mpz_structS1_EC2I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E[_ZN10__gmp_exprIA1_12__mpz_structS1_EC5I17__gmp_binary_exprIS_IS1_S4_IS_IS1_S4_IlS2_23__gmp_binary_multipliesEEl18__gmp_binary_minusEEl20__gmp_binary_dividesEEERKS_IS1_T_E]+0x3a): undefined reference to `__gmpz_sub_ui'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmpxx

Compiler output

Implementation: T:ntl
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `redc(_ntl_gbigint_body*, _ntl_gbigint_body*, long, unsigned long, _ntl_gbigint_body*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: /usr/bin/ld: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_rem_struct_basic::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_reduce_struct_montgomery::eval(_ntl_gbigint_body**, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: /usr/bin/ld: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_crt_struct_basic::eval(_ntl_gbigint_body**, long const*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `gmod_simple(_ntl_gbigint_body*, _ntl_gbigint_body*, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_tdiv_qr'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_rem_struct_fast::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_rem_struct_medium::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_grshift(_ntl_gbigint_body*, long, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_rshift'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_glshift(_ntl_gbigint_body*, long, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_lshift'
try.cpp: /usr/bin/ld: /home/pascal/supercop-20210125/supercop-data/avx512imath/amd64/lib/libntl.a(lip.o): in function `_ntl_gadd(_ntl_gbigint_body*, _ntl_gbigint_body*, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /usr/bin/ld: lip.cpp:(.text+0x...): undefined reference to `__gmpn_add_n'
try.cpp: /usr/bin/ld: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /usr/bin/ld: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl