Implementation notes: armeabi, novenablue, crypto_sign/picnic3l1

Computer: novenablue
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20200702
Operation: crypto_sign
Primitive: picnic3l1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6007281921267415 52 01292408 512 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020050420200417
6010559181267415 52 01292408 512 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020050420200417
6039958841268323 52 01295224 512 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020050420200417
6064800681268231 52 01294968 512 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020050420200417
6122813261256463 52 01280338 508 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020050420200417

Compiler output

Implementation: crypto_sign/picnic3l1/optimizedct/c
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
lowmc.c: In file included from lowmc.c:15:
lowmc.c: In file included from ./picnic3_impl.h:18:
lowmc.c: In file included from ./picnic_instances.h:14:
lowmc.c: ./picnic3_simulate.h:15:29: warning: redefinition of typedef 'randomTape_t' is a C11 feature [-Wtypedef-redefinition]
lowmc.c: typedef struct randomTape_t randomTape_t;
lowmc.c: ^
lowmc.c: ./lowmc.h:20:29: note: previous definition is here
lowmc.c: typedef struct randomTape_t randomTape_t;
lowmc.c: ^
lowmc.c: In file included from lowmc.c:15:
lowmc.c: In file included from ./picnic3_impl.h:18:
lowmc.c: ./picnic_instances.h:46:3: warning: redefinition of typedef 'picnic_instance_t' is a C11 feature [-Wtypedef-redefinition]
lowmc.c: } picnic_instance_t;
lowmc.c: ^
lowmc.c: ./picnic3_simulate.h:18:34: note: previous definition is here
lowmc.c: typedef struct picnic_instance_t picnic_instance_t;
lowmc.c: ^
lowmc.c: In file included from lowmc.c:16:
lowmc.c: ./picnic3_types.h:27:3: warning: redefinition of typedef 'randomTape_t' is a C11 feature [-Wtypedef-redefinition]
lowmc.c: } randomTape_t;
lowmc.c: ^
lowmc.c: ./picnic3_simulate.h:15:29: note: previous definition is here
lowmc.c: typedef struct randomTape_t randomTape_t;
lowmc.c: ^
lowmc.c: In file included from lowmc.c:16:
lowmc.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimizedct/c
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimizedct/c
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimizedct/c
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimizedct/c
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimizedct/c

Compiler output

Implementation: crypto_sign/picnic3l1/optimizedct/c
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
io.c: io.c: In function 'mzd_to_char_array':
io.c: io.c:20:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
io.c: for (size_t i = word_count; i; --i, dst += sizeof(uint64_t), len -= sizeof(uint64_t)) {
io.c: ^
io.c: io.c:20:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
io.c: io.c: In function 'mzd_from_char_array':
io.c: io.c:30:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
io.c: for (size_t i = word_count; i; --i, data += sizeof(uint64_t), len -= sizeof(uint64_t)) {
io.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimizedct/c
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimizedct/c
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE optimizedct/c
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE optimizedct/c

Compiler output

Implementation: crypto_sign/picnic3l1/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
picnic.c: picnic.c: In function 'print_signature2':
picnic.c: picnic.c:654:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
picnic.c: for(size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:654:5: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
picnic.c: picnic.c:656:16: error: redefinition of 'i'
picnic.c: for(size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:654:16: note: previous definition of 'i' was here
picnic.c: for(size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:656:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
picnic.c: for(size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:664:17: error: redefinition of 'i'
picnic.c: for (size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:656:16: note: previous definition of 'i' was here
picnic.c: for(size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c:664:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
picnic.c: for (size_t i = 0; i < params.numOpenedRounds; i++) {
picnic.c: ^
picnic.c: picnic.c: In function 'print_signature':
picnic.c: picnic.c:724:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
picnic.c: ...

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

Namespace violations

Implementation: crypto_sign/picnic3l1/ref
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
api.o params D
hash.o HashFinal T
hash.o HashInit T
hash.o HashSqueeze T
hash.o HashUpdate T
hash.o HashUpdateIntLE T
hash.o fromLittleEndian T
hash.o toLittleEndian T
lowmc_constants.o KMatrix T
lowmc_constants.o KMatrixInv T
lowmc_constants.o LMatrix T
lowmc_constants.o LMatrixInv T
lowmc_constants.o RConstant T
picnic.o get_param_set T
picnic.o get_transform T
picnic.o is_picnic3 T
picnic.o picnic_get_param_name T
picnic.o picnic_keygen T
picnic.o picnic_read_private_key T
picnic.o picnic_read_public_key T
picnic.o picnic_sign T
picnic.o picnic_signature_size T
picnic.o picnic_validate_keypair T
picnic.o picnic_verify T
picnic.o picnic_write_private_key T
picnic.o picnic_write_public_key T
picnic.o print_signature T
picnic3_impl.o ceil_log2 T
picnic3_impl.o deserializeSignature2 T
picnic3_impl.o serializeSignature2 T
picnic3_impl.o sign_picnic3 T
picnic3_impl.o verify_picnic3 T
picnic_impl.o Commit T
picnic_impl.o G T
picnic_impl.o H3 T
picnic_impl.o LowMCEnc T
picnic_impl.o arePaddingBitsZero T
picnic_impl.o computeSeeds T
picnic_impl.o createRandomTape T
picnic_impl.o deserializeSignature T
picnic_impl.o getBit T
picnic_impl.o getBitFromWordArray T
picnic_impl.o getChallenge T
picnic_impl.o matrix_mul T
picnic_impl.o mpc_AND T
picnic_impl.o mpc_AND_verify T
picnic_impl.o mpc_LowMC T
picnic_impl.o mpc_LowMC_verify T
picnic_impl.o mpc_matrix_mul T
picnic_impl.o mpc_substitution T
picnic_impl.o mpc_substitution_verify T
picnic_impl.o mpc_xor T
picnic_impl.o mpc_xor_constant T
picnic_impl.o mpc_xor_constant_verify T
picnic_impl.o numBytes T
picnic_impl.o parity T
picnic_impl.o printHex T
picnic_impl.o prove T
picnic_impl.o random_bytes_supercop T
picnic_impl.o serializeSignature T
picnic_impl.o setBit T
picnic_impl.o setBitInWordArray T
picnic_impl.o setChallenge T
picnic_impl.o sign_picnic1 T
picnic_impl.o verify T
picnic_impl.o verifyProof T
picnic_impl.o xor_array T
picnic_impl.o xor_three T
picnic_impl.o zeroTrailingBits T
picnic_types.o allocateCommitments T
picnic_types.o allocateCommitments2 T
picnic_types.o allocateGCommitments T
picnic_types.o allocateInputs T
picnic_types.o allocateMsgs T
picnic_types.o allocateProof T
picnic_types.o allocateProof2 T
picnic_types.o allocateRandomTape T
picnic_types.o allocateSeeds T
picnic_types.o allocateShares T
picnic_types.o allocateSignature T
picnic_types.o allocateSignature2 T
picnic_types.o allocateView T
picnic_types.o allocateViews T
picnic_types.o freeCommitments T
picnic_types.o freeCommitments2 T
picnic_types.o freeGCommitments T
picnic_types.o freeInputs T
picnic_types.o freeMsgs T
picnic_types.o freeProof T
picnic_types.o freeProof2 T
picnic_types.o freeRandomTape T
picnic_types.o freeSeeds T
picnic_types.o freeShares T
picnic_types.o freeSignature T
picnic_types.o freeSignature2 T
picnic_types.o freeView T
picnic_types.o freeViews T
picnic_types.o getTapeSizeBytes T
tree.o addMerkleNodes T
tree.o buildMerkleTree T
tree.o createTree T
tree.o exists T
tree.o expandSeeds T
tree.o freeTree T
tree.o generateSeeds T
tree.o getLeaf T
tree.o getLeaves T
tree.o getParent T
tree.o getSibling T
tree.o hasLeftChild T
tree.o hasRightChild T
tree.o hasSibling T
tree.o hashSeed T
tree.o isLeafNode T
tree.o isLeftChild T
tree.o openMerkleTree T
tree.o openMerkleTreeSize T
tree.o printLeaves T
tree.o printSeeds T
tree.o reconstructSeeds T
tree.o revealSeeds T
tree.o revealSeedsSize T
tree.o verifyMerkleTree T

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref