liboqs
liboqs copied to clipboard
Falcon tests hang on ARM32 when compiled with GCC-12
On armv7hf
architecture 0.7.1
and later tests hang more than hour than time out. There are such processes in ps
output:
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig_mem Falcon-1024 0
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/kat_sig Falcon-1024
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/kat_sig Falcon-512
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig_mem Falcon-512 0
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig Falcon-512
/usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig Falcon-1024
I am unable to see backtraces yet, because our build system does not allow gdb
to work properly there (becasue of reead-only /proc
, which I'm requested admins to change later and I will report results).
ps. Raw output is like this:
builder@armh:~/RPM/BUILD/liboqs-0.7.2$ /usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig Falcon-512
Testing signature algorithms using liboqs version 0.7.2-rc2
Configuration info
==================
Target platform: armv8l-Linux-5.15.59-std-def-alt1
Compiler: gcc (12.1.1)
Compile options: [-Werror;-Wall;-Wextra;-Wpedantic;-Wstrict-prototypes;-Wshadow;-Wformat=2;-Wfloat-equal;-Wwrite-strings;-Wstrict-overflow;-ggdb3;-Wbad-function-cast]
OQS version: 0.7.2-rc2
Git commit: unknown
OpenSSL enabled: Yes (OpenSSL 1.1.1q 5 Jul 2022)
AES: OpenSSL
SHA-2: OpenSSL
SHA-3: C
OQS build flags: BUILD_SHARED_LIBS OQS_DIST_BUILD OQS_OPT_TARGET=generic CMAKE_BUILD_TYPE=RelWithDebInfo
CPU exts active:
================================================================================
Sample computation for signature Falcon-512
================================================================================
Hangs there.
pps. BTW, there is no GCC warnings when compiling on this arch,
I'm able to view backtraces:
root@armh:~/RPM/BUILD/liboqs-0.7.2# gdb --args /usr/src/RPM/BUILD/liboqs-0.7.2/build/tests/test_sig Falcon-512
...
[New Thread 0xb6a8f3a0 (LWP 184)]
================================================================================
Sample computation for signature Falcon-512
================================================================================
After minute I press ^C
Thread 1 "test_sig" received signal SIGINT, Interrupt.
0xb6c71cf4 in __libc_do_syscall () from /lib/libc.so.6
(gdb) t a a bt
Thread 2 (Thread 0xb6a8f3a0 (LWP 184) "test_sig"):
#0 0xb6e333b4 in PQCLEAN_FALCON512_CLEAN_FPR (m=<optimized out>, e=<optimized out>, s=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/fpr.c:138
#1 PQCLEAN_FALCON512_CLEAN_fpr_add (x=<optimized out>, y=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/fpr.c:427
#2 0xb6e3406a in poly_big_to_fp (d=<optimized out>, f=0xb6a8b274, flen=<optimized out>, fstride=<optimized out>, logn=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:2041
#3 0xb6e35474 in solve_NTRU_intermediate (logn_top=<optimized out>, f=<optimized out>, g=<optimized out>, depth=2, tmp=<optimized out>, tmp@entry=0xb6a8ae00) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:3129
#4 0xb6e3670e in solve_NTRU (tmp=0xb6a8ae00, lim=127, g=0xb6a8e834 "\376", f=0xb6a8e634 "\376\001\005\376\376\377\003\377", G=0x0, G@entry=0x1 <error: Cannot access memory at address 0x1>, F=<optimized out>, logn=9) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:3959
#5 PQCLEAN_FALCON512_CLEAN_keygen (rng=rng@entry=0xb6a8a9fc, f=f@entry=0xb6a8e634 "\376\001\005\376\376\377\003\377", g=g@entry=0xb6a8e834 "\376", F=F@entry=0xb6a8ea34 "\266!", G=<optimized out>, G@entry=0x0, h=<optimized out>, h@entry=0xb6a8aa00, logn=<optimized out>, logn@entry=9, tmp=<optimized out>, tmp@entry=0xb6a8ae00 "\255\362$;\310\231\366Z\374>") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:4222
#6 0xb6e37d22 in PQCLEAN_FALCON512_CLEAN_crypto_sign_keypair (pk=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., sk=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/pqclean.c:63
#7 0xb6ec6286 in OQS_SIG_keypair (sig=sig@entry=0xb6100740, public_key=public_key@entry=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., secret_key=secret_key@entry=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/sig.c:864
#8 0x00401148 in sig_test_correctness (method_name=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:88
#9 0x0040137e in test_wrapper (arg=0xbefff35c) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:179
#10 0xb6cb2160 in start_thread (arg=0x998b6bb0) at pthread_create.c:442
#11 0xb6d0b6c0 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0xb6ff3020 (LWP 181) "test_sig"):
#0 0xb6c71cf4 in __libc_do_syscall () from /lib/libc.so.6
#1 0xb6caf4e6 in __futex_abstimed_wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word=<optimized out>) at futex-internal.c:40
#2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0xb6a8f408, expected=184, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, private@entry=128, cancel=<optimized out>, cancel@entry=true) at futex-internal.c:99
#3 0xb6caf5cc in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xb6a8f408, expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>, private@entry=128) at futex-internal.c:139
#4 0xb6cb3768 in __pthread_clockjoin_ex (threadid=3064525728, thread_return=0x0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, block=<optimized out>, block@entry=true) at pthread_join_common.c:105
#5 0xb6cb365c in ___pthread_join (threadid=<optimized out>, thread_return=<optimized out>) at pthread_join.c:24
#6 0x00400c64 in main (argc=<optimized out>, argv=0xbefff574) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:236
(gdb) c
Continuing.
After several minutes ^C again::
Thread 1 "test_sig" received signal SIGINT, Interrupt.
0xb6c71cf4 in __libc_do_syscall () from /lib/libc.so.6
(gdb) t a 2 bt
Thread 2 (Thread 0xb6a8f3a0 (LWP 184) "test_sig"):
#0 0xb6e333be in PQCLEAN_FALCON512_CLEAN_fpr_add (x=<optimized out>, y=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/fpr.c:428
#1 0xb6e3406a in poly_big_to_fp (d=<optimized out>, f=0xb6a8b5e0, flen=<optimized out>, fstride=<optimized out>, logn=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:2041
#2 0xb6e35488 in solve_NTRU_intermediate (logn_top=<optimized out>, f=<optimized out>, g=<optimized out>, depth=4, tmp=<optimized out>, tmp@entry=0xb6a8ae00) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:3130
#3 0xb6e3670e in solve_NTRU (tmp=0xb6a8ae00, lim=127, g=0xb6a8e834 "\004\003\373\001", f=0xb6a8e634 "\376", G=G@entry=0x1 <error: Cannot access memory at address 0x1>, F=<optimized out>, logn=9) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:3959
#4 PQCLEAN_FALCON512_CLEAN_keygen (rng=rng@entry=0xb6a8a9fc, f=f@entry=0xb6a8e634 "\376", g=g@entry=0xb6a8e834 "\004\003\373\001", F=F@entry=0xb6a8ea34 "\266!", G=<optimized out>, G@entry=0x0, h=<optimized out>, h@entry=0xb6a8aa00, logn=<optimized out>, logn@entry=9, tmp=<optimized out>, tmp@entry=0xb6a8ae00 "\357\030\252q? \020a\017\273z[[\231\024),:\325|\377\377\377\177\377\377\377\177") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:4222
#5 0xb6e37d22 in PQCLEAN_FALCON512_CLEAN_crypto_sign_keypair (pk=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., sk=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/pqclean.c:63
#6 0xb6ec6286 in OQS_SIG_keypair (sig=sig@entry=0xb6100740, public_key=public_key@entry=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., secret_key=secret_key@entry=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/sig.c:864
#7 0x00401148 in sig_test_correctness (method_name=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:88
#8 0x0040137e in test_wrapper (arg=0xbefff35c) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:179
#9 0xb6cb2160 in start_thread (arg=0x998b6bb0) at pthread_create.c:442
#10 0xb6d0b6c0 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) c
Continuing.
Another ^C:
(gdb) t a 2 bt
Thread 2 (Thread 0xb6a8f3a0 (LWP 184) "test_sig"):
#0 0xb6e34380 in poly_small_mkgauss (rng=rng@entry=0xb6a8a9fc, f=f@entry=0xb6a8e834 "\001\002\004\003\375\a\372\004\001\375\b\002\373\376", logn=logn@entry=9) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:4054
#1 0xb6e35cb0 in PQCLEAN_FALCON512_CLEAN_keygen (rng=rng@entry=0xb6a8a9fc, f=f@entry=0xb6a8e634 "", g=g@entry=0xb6a8e834 "\001\002\004\003\375\a\372\004\001\375\b\002\373\376", F=F@entry=0xb6a8ea34 "\266!", G=<optimized out>, G@entry=0x0, h=<optimized out>, h@entry=0xb6a8aa00, logn=<optimized out>, logn@entry=9, tmp=<optimized out>, tmp@entry=0xb6a8ae00 "\351Ez\352\372\303\362\277\006\213l\246\254o\037@\226jM\214\360}\031\300`R\343\031\217\365\342?H\313\364\334\244\251\330?\370\314\067\214\331e\t@\f4\034mK\204\361?\200\332\266\276\017\230\037@E\363\066\232U\367\030@\224\222\250\237VL\362\277&\333O\335\236^\001@\035\060\002|\320\064\033\300,f\033\226\250\270\006@\364\016\b\307\027\362\030\300n\033\312\335\017\216\367?fF!R\304U\006\300\300rh\214\307x\305\277T\312\220U_a\375?\375[MJs\222\030\300\030\361\312u\304\064\v@\200\307~+\265\030\330?\330\372\350\314\374\202\b@\355p\331\\\302\261\v\300\326\003\243\032\263\336\023\300+U\361\351(\302\373\277"...) at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/keygen.c:4137
#2 0xb6e37d22 in PQCLEAN_FALCON512_CLEAN_crypto_sign_keypair (pk=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., sk=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/falcon/pqclean_falcon-512_clean/pqclean.c:63
#3 0xb6ec6286 in OQS_SIG_keypair (sig=sig@entry=0xb6100740, public_key=public_key@entry=0xb6100787 "\361\323\266\270\220\062\257\233\003\327\005'\217,)u\334YX\206\214#\356\065\265\t29\211\fG\376t\247\353r\201.;\366\215C\343\355k\330\314x~\351o\337G0U\336K\vA\377\267\314\026\346Z\323\030\226\f.\203\a/\247\320g\231X@-\026p5\300\061=P\204\277\316\307\035\234\220q\343\066\313\210{&}\200\060\035s\242&\356m\340\253\027\212U\227T\a8\337[]dRTq\346~\222\235\372\tVFz1C0\025\271>_\233V\344~\032\377\246\341\371\020\320\033\361\222\213\271eT\327\063\070\213\266qg\354\330\004Yw\250\247\020\352\260L\032R\022\037\246m\017\006\340j\231\226\311\064\nMS\226p\256!N"..., secret_key=secret_key@entry=0xb6100b4f "V\237\037EQ\\\022\036A|\255Z\322\177\270\002\212\271\202E\026n\341\315{\264\250\343\324\247_:\022\223\t\240\247B\204\371/\236\311\245\237\302\035\253\263m`\016\265)\344\061\223\323!\265\204\374\035\207\177\033\271b\202\215\037\205\345\215n\215\351\027S\263b['\004I\304I\243\333l\251?.7\304\020\016\340\273\373\254\261\027\360\373\336\a\032\250\206\063|\313\264+\276\312\255M\337\254\376\360\231\320\207\226") at /usr/src/RPM/BUILD/liboqs-0.7.2/src/sig/sig.c:864
#4 0x00401148 in sig_test_correctness (method_name=<optimized out>) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:88
#5 0x0040137e in test_wrapper (arg=0xbefff35c) at /usr/src/RPM/BUILD/liboqs-0.7.2/tests/test_sig.c:179
#6 0xb6cb2160 in start_thread (arg=0x998b6bb0) at pthread_create.c:442
#7 0xb6d0b6c0 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
So it seems to be looping in PQCLEAN_FALCON512_CLEAN_keygen
.
It seems to be looping in for (;;)
loop with many continue
statements in PQCLEAN_FALCON512_CLEAN_keygen
. I briefly tried to step it over in gdb
in case there is some obvious error but do not recognize anything suspicious.
In case it's useful there is the full build log: armh-build-log.txt (1.2MB).
Previous compilation used GCC-12. I tried to compile with Clang 12, 13, and 14 — it does not hang after compiled with Clang.
Thanks for the various tests. In CI we test armv7hf via cross compilation using gcc (arm-linux-gnueabihf-gcc (Debian 8.3.0-2) 8.3.0
) and falcon passes, so maybe it's even an issue with the compiler version? Could you re-test in your harness using an older gcc?
Could you re-test in your harness using an older gcc?
I will try it later.
Currently I found that it's compilation of src/sig/falcon/pqclean_falcon-512_clean/keygen.c
affects it will hang Falcon-512 or not. Also I found that optimization options affect result too — it does not hang with -O0
and -O3
and hangs with -O1
and -O2
), and finally I found if I pass -fno-ipa-modref -fno-ipa-pure-const`` (to disable some optimizations) to
-O1/-O2` it stops to hang too.
Results of running test_sig Falcon-512
when liboqs compiled 'by default' (without additional options to compiler):
GCC 8.5.0 - does not hang
GCC 9.4.1 - does not hang
GCC 10.3.1 - does not hang
GCC 11.2.1 - does not hang
GCC 12.1.1 - hangs
So it's GCC-12 issue related to optimization.
if I pass -fno-ipa-modref -fno-ipa-pure-const`` (to disable some optimizations) to -O1/-O2` it stops to hang too
Thank you very much for this thorough analysis, @vt-alt ; so I guess it's safe to state there's a bug with that particular optimization with gcc-12... Worthwhile reporting it to gcc maintainers (sorry to state I don't know whether that version is in active maintenance even)?
They usually will need reproducer for an effective bug report, but here we don't even know what was went wrong except some complicated tests hang. So if we report like this, I fear. it will be never resolved bug. And to investigate more will require too much time it seems.
I will try to add something like -O3
to our ARM32 build and see.
I will try to add something like
-O3
to our ARM32 (which we call "armh") build and see.
JFYI. Adding -O3
(to -DCMAKE_C_FLAGS=
) didn't work because there is more occurrences of -O2
in final FLAGS string and it gets overridden, but adding specific -fno-ipa-modref -fno-ipa-pure-const
worked OK. So I will leave it like this for our build.
With that change 0.7.2-rc2
built and tested good in all our architectures (aarch64, armh, i586, ppc64le, x86_64).
adding specific -fno-ipa-modref -fno-ipa-pure-const worked OK
Any objections/drawbacks for liboqs
adding these flags to all ARM gcc
builds to avoid others falling into this trap again? @dstebila ?
adding specific -fno-ipa-modref -fno-ipa-pure-const worked OK
Any objections/drawbacks for
liboqs
adding these flags to all ARMgcc
builds to avoid others falling into this trap again? @dstebila ?
I don't know enough to have an opinion, but if you guys are fine with it, then go ahead.