Implementation notes: ppc32, nintendowiilinuxngx, crypto_aead/omdsha256k256n248tau256v2

Computer: nintendowiilinuxngx
Architecture: ppc32
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_aead
Primitive: omdsha256k256n248tau256v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
35120414008 8 037777 772 788refgcc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
4266246492 8 027401 772 788refgcc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
5043003852 8 022409 764 788refgcc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010620191221
5254685752 8 026249 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/ccXwArUm.s: Assembler messages:
encrypt.c: /tmp/ccXwArUm.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccXwArUm.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccXwArUm.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccXwArUm.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccXwArUm.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccXwArUm.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccXwArUm.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccXwArUm.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccXwArUm.s:17: Error: missing operand
encrypt.c: /tmp/ccXwArUm.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccXwArUm.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccXwArUm.s:20: Error: missing operand
encrypt.c: /tmp/ccXwArUm.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccXwArUm.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccXwArUm.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccXwArUm.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/cc1cjGlx.s: Assembler messages:
encrypt.c: /tmp/cc1cjGlx.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/cc1cjGlx.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/cc1cjGlx.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc1cjGlx.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc1cjGlx.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc1cjGlx.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc1cjGlx.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc1cjGlx.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/cc1cjGlx.s:17: Error: missing operand
encrypt.c: /tmp/cc1cjGlx.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/cc1cjGlx.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/cc1cjGlx.s:20: Error: missing operand
encrypt.c: /tmp/cc1cjGlx.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc1cjGlx.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc1cjGlx.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc1cjGlx.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/cc7Zbirj.s: Assembler messages:
encrypt.c: /tmp/cc7Zbirj.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/cc7Zbirj.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/cc7Zbirj.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc7Zbirj.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc7Zbirj.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc7Zbirj.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc7Zbirj.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/cc7Zbirj.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/cc7Zbirj.s:17: Error: missing operand
encrypt.c: /tmp/cc7Zbirj.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/cc7Zbirj.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/cc7Zbirj.s:20: Error: missing operand
encrypt.c: /tmp/cc7Zbirj.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/cc7Zbirj.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc7Zbirj.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/cc7Zbirj.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/ccj2zmDo.s: Assembler messages:
encrypt.c: /tmp/ccj2zmDo.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccj2zmDo.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccj2zmDo.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccj2zmDo.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccj2zmDo.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccj2zmDo.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccj2zmDo.s:16: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccj2zmDo.s:17: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccj2zmDo.s:17: Error: missing operand
encrypt.c: /tmp/ccj2zmDo.s:18: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccj2zmDo.s:19: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccj2zmDo.s:20: Error: missing operand
encrypt.c: /tmp/ccj2zmDo.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:29: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccj2zmDo.s:30: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccj2zmDo.s:31: Error: unrecognized opcode: `vmovdqa'
encrypt.c: /tmp/ccj2zmDo.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/ccX0lccm.s: Assembler messages:
encrypt.c: /tmp/ccX0lccm.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccX0lccm.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccX0lccm.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccX0lccm.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccX0lccm.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccX0lccm.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccX0lccm.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccX0lccm.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccX0lccm.s:16: Error: missing operand
encrypt.c: /tmp/ccX0lccm.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccX0lccm.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccX0lccm.s:19: Error: missing operand
encrypt.c: /tmp/ccX0lccm.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccX0lccm.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccX0lccm.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccX0lccm.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/ccEAk4RF.s: Assembler messages:
encrypt.c: /tmp/ccEAk4RF.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccEAk4RF.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccEAk4RF.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccEAk4RF.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccEAk4RF.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccEAk4RF.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccEAk4RF.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccEAk4RF.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccEAk4RF.s:16: Error: missing operand
encrypt.c: /tmp/ccEAk4RF.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccEAk4RF.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccEAk4RF.s:19: Error: missing operand
encrypt.c: /tmp/ccEAk4RF.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccEAk4RF.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccEAk4RF.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccEAk4RF.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/ccfgKaSo.s: Assembler messages:
encrypt.c: /tmp/ccfgKaSo.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccfgKaSo.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccfgKaSo.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccfgKaSo.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccfgKaSo.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccfgKaSo.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccfgKaSo.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccfgKaSo.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccfgKaSo.s:16: Error: missing operand
encrypt.c: /tmp/ccfgKaSo.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccfgKaSo.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccfgKaSo.s:19: Error: missing operand
encrypt.c: /tmp/ccfgKaSo.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccfgKaSo.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccfgKaSo.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccfgKaSo.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/ccGBw8Fx.s: Assembler messages:
encrypt.c: /tmp/ccGBw8Fx.s:6: Error: unknown pseudo-op: `.intel_syntax'
encrypt.c: /tmp/ccGBw8Fx.s:9: Warning: alignment too large: 31 assumed
encrypt.c: /tmp/ccGBw8Fx.s:11: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccGBw8Fx.s:12: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccGBw8Fx.s:13: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccGBw8Fx.s:14: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccGBw8Fx.s:15: Error: unrecognized opcode: `push'
encrypt.c: /tmp/ccGBw8Fx.s:16: Error: operand out of range (32 is not between 0 and 31)
encrypt.c: /tmp/ccGBw8Fx.s:16: Error: missing operand
encrypt.c: /tmp/ccGBw8Fx.s:17: Error: unrecognized opcode: `shl'
encrypt.c: /tmp/ccGBw8Fx.s:18: Error: unrecognized opcode: `jz'
encrypt.c: /tmp/ccGBw8Fx.s:19: Error: missing operand
encrypt.c: /tmp/ccGBw8Fx.s:20: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:21: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:22: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:23: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:24: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:25: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:26: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:27: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:28: Error: unrecognized opcode: `mov'
encrypt.c: /tmp/ccGBw8Fx.s:29: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccGBw8Fx.s:30: Error: unrecognized opcode: `movdqa'
encrypt.c: /tmp/ccGBw8Fx.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