Implementation notes: ppc32, nintendowiilinuxngx, crypto_aead/omdsha256k256n104tau160v2

Computer: nintendowiilinuxngx
Architecture: ppc32
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_aead
Primitive: omdsha256k256n104tau160v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
35030413992 8 037569 772 788refgcc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
4246446460 8 027177 772 788refgcc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
5034963852 8 022409 764 788refgcc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
5257445684 8 026009 768 788refgcc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221

Compiler output

Implementation: avx1
Security model: unknown
Compiler: gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/ccF9F9K2.s: Assembler messages:
encrypt.c: /tmp/ccF9F9K2.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccF9F9K2.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccF9F9K2.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccF9F9K2.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccF9F9K2.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccF9F9K2.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccF9F9K2.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccF9F9K2.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccF9F9K2.s:17: Error: missing operand
encrypt.c: /tmp/ccF9F9K2.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccF9F9K2.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccF9F9K2.s:20: Error: missing operand
encrypt.c: /tmp/ccF9F9K2.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccF9F9K2.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccF9F9K2.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccF9F9K2.s:32: Error: unrecognized opcode: `vmovdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx1

Compiler output

Implementation: avx1
Security model: unknown
Compiler: gcc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/ccFTxGY7.s: Assembler messages:
encrypt.c: /tmp/ccFTxGY7.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccFTxGY7.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccFTxGY7.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccFTxGY7.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccFTxGY7.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccFTxGY7.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccFTxGY7.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccFTxGY7.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccFTxGY7.s:17: Error: missing operand
encrypt.c: /tmp/ccFTxGY7.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccFTxGY7.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccFTxGY7.s:20: Error: missing operand
encrypt.c: /tmp/ccFTxGY7.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccFTxGY7.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccFTxGY7.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccFTxGY7.s:32: Error: unrecognized opcode: `vmovdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx1

Compiler output

Implementation: avx1
Security model: unknown
Compiler: gcc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/ccldKCf6.s: Assembler messages:
encrypt.c: /tmp/ccldKCf6.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccldKCf6.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccldKCf6.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccldKCf6.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccldKCf6.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccldKCf6.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccldKCf6.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccldKCf6.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccldKCf6.s:17: Error: missing operand
encrypt.c: /tmp/ccldKCf6.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccldKCf6.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccldKCf6.s:20: Error: missing operand
encrypt.c: /tmp/ccldKCf6.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccldKCf6.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccldKCf6.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccldKCf6.s:32: Error: unrecognized opcode: `vmovdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx1

Compiler output

Implementation: avx1
Security model: unknown
Compiler: gcc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/cc9e0oS2.s: Assembler messages:
encrypt.c: /tmp/cc9e0oS2.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/cc9e0oS2.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/cc9e0oS2.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc9e0oS2.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc9e0oS2.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc9e0oS2.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc9e0oS2.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc9e0oS2.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/cc9e0oS2.s:17: Error: missing operand
encrypt.c: /tmp/cc9e0oS2.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/cc9e0oS2.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/cc9e0oS2.s:20: Error: missing operand
encrypt.c: /tmp/cc9e0oS2.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc9e0oS2.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc9e0oS2.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc9e0oS2.s:32: Error: unrecognized opcode: `vmovdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx1

Compiler output

Implementation: sse4
Security model: unknown
Compiler: gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/cck6Zw6j.s: Assembler messages:
encrypt.c: /tmp/cck6Zw6j.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/cck6Zw6j.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/cck6Zw6j.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cck6Zw6j.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cck6Zw6j.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cck6Zw6j.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cck6Zw6j.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cck6Zw6j.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/cck6Zw6j.s:16: Error: missing operand
encrypt.c: /tmp/cck6Zw6j.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/cck6Zw6j.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/cck6Zw6j.s:19: Error: missing operand
encrypt.c: /tmp/cck6Zw6j.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cck6Zw6j.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/cck6Zw6j.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/cck6Zw6j.s:31: Error: unrecognized opcode: `movdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sse4

Compiler output

Implementation: sse4
Security model: unknown
Compiler: gcc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/cc2ylhmd.s: Assembler messages:
encrypt.c: /tmp/cc2ylhmd.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/cc2ylhmd.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/cc2ylhmd.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc2ylhmd.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc2ylhmd.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc2ylhmd.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc2ylhmd.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc2ylhmd.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/cc2ylhmd.s:16: Error: missing operand
encrypt.c: /tmp/cc2ylhmd.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/cc2ylhmd.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/cc2ylhmd.s:19: Error: missing operand
encrypt.c: /tmp/cc2ylhmd.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc2ylhmd.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/cc2ylhmd.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/cc2ylhmd.s:31: Error: unrecognized opcode: `movdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sse4

Compiler output

Implementation: sse4
Security model: unknown
Compiler: gcc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/ccgYMJaf.s: Assembler messages:
encrypt.c: /tmp/ccgYMJaf.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccgYMJaf.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccgYMJaf.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccgYMJaf.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccgYMJaf.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccgYMJaf.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccgYMJaf.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccgYMJaf.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccgYMJaf.s:16: Error: missing operand
encrypt.c: /tmp/ccgYMJaf.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccgYMJaf.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccgYMJaf.s:19: Error: missing operand
encrypt.c: /tmp/ccgYMJaf.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccgYMJaf.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccgYMJaf.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccgYMJaf.s:31: Error: unrecognized opcode: `movdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sse4

Compiler output

Implementation: sse4
Security model: unknown
Compiler: gcc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: /tmp/ccbQcrGk.s: Assembler messages:
encrypt.c: /tmp/ccbQcrGk.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccbQcrGk.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccbQcrGk.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccbQcrGk.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccbQcrGk.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccbQcrGk.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccbQcrGk.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccbQcrGk.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccbQcrGk.s:16: Error: missing operand
encrypt.c: /tmp/ccbQcrGk.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccbQcrGk.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccbQcrGk.s:19: Error: missing operand
encrypt.c: /tmp/ccbQcrGk.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccbQcrGk.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccbQcrGk.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccbQcrGk.s:31: Error: unrecognized opcode: `movdqa'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sse4

Namespace violations

Implementation: ref
Security model: unknown
Compiler: gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
omdsha256.o calc_L_i T
omdsha256.o double_block T
omdsha256.o final_masking_associated_data T
omdsha256.o final_masking_message T
omdsha256.o hash T
omdsha256.o increment_masking_associated_data T
omdsha256.o increment_masking_message T
omdsha256.o key_func T
omdsha256.o l2b T
omdsha256.o ntz T
omdsha256.o omdsha256_process T
omdsha256.o triple_block T
omdsha256.o xor_block T
sha256.o sha256_comp T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref