Implementation notes: amd64, alder2,1f626960,3300000, crypto_dh/curve2251

Computer: alder2,1f626960,3300000
Microarchitecture: amd64; Gracemont (906a4-20)
Architecture: amd64
CPU ID: GenuineIntel-000906a4-20-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_dh
Primitive: curve2251
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
34596453134 385024 110477279 385900 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35162939709 385024 110461775 385900 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35250839733 385024 110461823 385900 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35635031981 385024 110453517 385892 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35754928701 385024 110449367 385892 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35805653110 385024 110477231 385900 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
35866332005 385024 110453565 385892 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
36315128677 385024 110449383 385892 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
81196861406 385024 110485383 385900 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
81205436973 385024 110457471 385892 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
83972948005 385024 110469927 385900 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
84068340277 385024 110461669 385892 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625

Compiler output


curve2_251.c: curve2_251.c:4:10: fatal error: 'gmp.h' file not found
curve2_251.c: #include <gmp.h>
curve2_251.c:          ^~~~~~~
curve2_251.c: 1 error generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:mpfqclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mpfqclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mpfqclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mpfqclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mpfqclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


curve2_251.c: curve2_251.c:4:10: fatal error: gmp.h: No such file or directory
curve2_251.c:     4 | #include <gmp.h>
curve2_251.c:       |          ^~~~~~~
curve2_251.c: compilation terminated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:mpfqgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mpfqgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mpfqgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mpfqgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


curve2251.c: curve2251.c:21:6: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:         int l;
curve2251.c:             ^
curve2251.c: 1 warning generated.
relic.c: In file included from relic.c:4:
relic.c: ./src/relic_rand.c:117:8: warning: implicit declaration of function 'time' is invalid in C99 [-Wimplicit-function-declaration]
relic.c:         srand(time(NULL));
relic.c:               ^
relic.c: In file included from relic.c:3:
relic.c: ./src/relic_bench.c:124:13: warning: unused function 'empty' [-Wunused-function]
relic.c: static void empty(int *a) {
relic.c:             ^
relic.c: 2 warnings generated.
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: ./src/eb/relic_eb_curve.c:238:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:         int i;
relic_eb.c:             ^
relic_eb.c: ./src/eb/relic_eb_curve.c:266:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:         int i;
relic_eb.c:             ^
relic_eb.c: 2 warnings generated.
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:6: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:             ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:12: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:                   ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:15: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:                      ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:43:12: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:         int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:                   ^
relic_fb.c: 4 warnings generated.
relic_low.S: relic_low.S:5:1: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S: .section .note.GNU-stack,"",@progbits
relic_low.S: ^

Number of similar (implementation,compiler) pairs: 10, namely:
ImplementationCompiler
T:relic/amd64-avxclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-avxclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-clmulclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-clmulclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-clmulclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-clmulclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-clmulclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_avx_timingleaks_keypair':
curve2251.c: curve2251.c:21:6: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |  int l;
curve2251.c:       |      ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |  srand(time(NULL));
relic.c:       |        ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |  int i;
relic_eb.c:       |      ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |  int i;
relic_eb.c:       |      ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:12: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |  int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |            ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:15: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |               ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:12: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |            ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:6: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |      ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_clmul_timingleaks_keypair':
curve2251.c: curve2251.c:21:6: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |  int l;
curve2251.c:       |      ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |  srand(time(NULL));
relic.c:       |        ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |  int i;
relic_eb.c:       |      ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |  int i;
relic_eb.c:       |      ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:12: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |  int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |            ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:15: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |               ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:12: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |            ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:6: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |      ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-clmulgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-clmulgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-clmulgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-clmulgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


curve2251.c: curve2251.c:21:6: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:         int l;
curve2251.c:             ^
curve2251.c: 1 warning generated.
relic.c: In file included from relic.c:4:
relic.c: ./src/relic_rand.c:117:8: warning: implicit declaration of function 'time' is invalid in C99 [-Wimplicit-function-declaration]
relic.c:         srand(time(NULL));
relic.c:               ^
relic.c: In file included from relic.c:3:
relic.c: ./src/relic_bench.c:124:13: warning: unused function 'empty' [-Wunused-function]
relic.c: static void empty(int *a) {
relic.c:             ^
relic.c: 2 warnings generated.
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: ./src/eb/relic_eb_curve.c:238:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:         int i;
relic_eb.c:             ^
relic_eb.c: ./src/eb/relic_eb_curve.c:266:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:         int i;
relic_eb.c:             ^
relic_eb.c: 2 warnings generated.
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:6: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:             ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:12: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:                   ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:40:15: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:         int i, j, x, y, u[11];
relic_fb.c:                      ^
relic_fb.c: ./src/low/relic_fb_inv_low.c:43:12: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:         int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:                   ^
relic_fb.c: 4 warnings generated.
relic_low.S: ./src/low/relic_fb_mul_low.s:2339:2: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S:  .section .note.GNU-stack,"",@progbits
relic_low.S:  ^
relic_low.S: relic_low.S:5:1: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S: .section .note.GNU-stack,"",@progbits
relic_low.S: ^

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:relic/amd64-ssse3clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-ssse3clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-ssse3clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-ssse3clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:relic/amd64-ssse3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_ssse3_timingleaks_keypair':
curve2251.c: curve2251.c:21:6: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |  int l;
curve2251.c:       |      ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |  srand(time(NULL));
relic.c:       |        ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |  int i;
relic_eb.c:       |      ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:6: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |  int i;
relic_eb.c:       |      ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:12: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |  int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |            ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:15: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |               ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:12: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |            ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:6: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |  int i, j, x, y, u[11];
relic_fb.c:       |      ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-ssse3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-ssse3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-ssse3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:relic/amd64-ssse3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)