cryptobiu / libscapi

Comprehensive Open Source Library for Secure Multiparty Computation
MIT License
180 stars 66 forks source link

Error Building SemiHonestYao MPC-Benchmark with libscapi #76

Closed manel1874 closed 4 years ago

manel1874 commented 4 years ago

Hello,

I cloned libscapi and went successfully through all the steps to build it. Then, I was aiming to use MPC-Benchmark implementation of Semi-honest Yao Protocol but received undefined reference errors related with libscapi library.

I do not have header files related to intrin_sequential_ks1_enc1.c, intrin_sequential_ks2_enc2.c, intrin_sequential_ks4_enc4.c and intrin_sequential_ks4_enc8.c inside "libscapi/include" folder. Consequently, the folder "libscapi/obj/circuits_c" is empty. Is this related with libscapi make process?

Steps to reproduce the bug

  1. Install libscapi in my home directory
  2. cd libscapi
  3. git clone https://github.com/cryptobiu/MPC-Benchmark
  4. cd MPC-Benchmark/SemiHonestYao
  5. cmake . && make

Error

[100%] Linking CXX executable SemiHonestYao /home/manel/libscapi/libscapi.a(FourToTwoGarbledBoleanCircuitNoAssumptions.o): In function FourToTwoGarbledBoleanCircuitNoAssumptions::compute(long long vector(2)*, long long vector(2))': /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:483: undefined reference to intrin_sequential_ks2_enc2' /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:451: undefined reference to intrin_sequential_ks2_enc2' /home/manel/libscapi/libscapi.a(FourToTwoGarbledBoleanCircuitNoAssumptions.o): In function FourToTwoGarbledBoleanCircuitNoAssumptions::internalVerify(long long vector(2), long long vector(2))': /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:676: undefined reference to intrin_sequential_ks4_enc8' /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:606: undefined reference to intrin_sequential_ks4_enc4' /home/manel/libscapi/libscapi.a(FourToTwoGarbledBoleanCircuitNoAssumptions.o): In function FourToTwoGarbledBoleanCircuitNoAssumptions::garble(long long __vector(2), long long vector(2)*, std::vector<unsigned char, std::allocator >&, long long vector(2))': /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:247: undefined reference to intrin_sequential_ks4_enc8' /home/manel/libscapi/src/circuits/FourToTwoGarbledBoleanCircuitNoAssumptions.cpp:182: undefined reference to intrin_sequential_ks4_enc4' /home/manel/libscapi/libscapi.a(HalfGatesGarbledBoleanCircuitNoFixedKey.o): In function HalfGatesGarbledBoleanCircuitNoFixedKey::compute(long long vector(2), long long vector(2))': /home/manel/libscapi/src/circuits/HalfGatesGarbledBoleanCircuitNoFixedKey.cpp:295: undefined reference to intrin_sequential_ks2_enc2' /home/manel/libscapi/libscapi.a(HalfGatesGarbledBoleanCircuitNoFixedKey.o): In function HalfGatesGarbledBoleanCircuitNoFixedKey::internalVerify(long long vector(2), long long vector(2))': /home/manel/libscapi/src/circuits/HalfGatesGarbledBoleanCircuitNoFixedKey.cpp:393: undefined reference to intrin_sequential_ks4_enc4' /home/manel/libscapi/libscapi.a(HalfGatesGarbledBoleanCircuitNoFixedKey.o): In function HalfGatesGarbledBoleanCircuitNoFixedKey::garble(long long vector(2), long long vector(2), std::vector<unsigned char, std::allocator >&, long long __vector(2))': /home/manel/libscapi/src/circuits/HalfGatesGarbledBoleanCircuitNoFixedKey.cpp:166: undefined reference to `intrin_sequential_ks4_enc4' collect2: error: ld returned 1 exit status CMakeFiles/SemiHonestYao.dir/build.make:99: recipe for target 'SemiHonestYao' failed make[2]: [SemiHonestYao] Error 1 CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/SemiHonestYao.dir/all' failed make[1]: [CMakeFiles/SemiHonestYao.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

Machine details (please complete the following information): OS: Ubuntu Version 16.04.3-desktop-amd64 Compiler Version: gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 94 Model name: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz Stepping: 3 CPU MHz: 2591.998 BogoMIPS: 5183.99 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 6144K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt

Thank you!

liorko87 commented 4 years ago

Solved at cryptobiu/MPC-Benchmark#6