{"record":{"id":"40b98e0e037f9cd3","repo":"ethereum/go-ethereum","slug":"bench-schnorr-signatures-module-not-enabled-n","errorCode":null,"errorMessage":"./bench: Schnorr signatures module not enabled.\\n","messagePattern":"\\./bench: Schnorr signatures module not enabled\\.\\\\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"crypto/secp256k1/libsecp256k1/src/bench.c","lineNumber":219,"sourceCode":"#ifndef ENABLE_MODULE_ECDH\n    if (have_flag(argc, argv, \"ecdh\")) {\n        fprintf(stderr, \"./bench: ECDH module not enabled.\\n\");\n        fprintf(stderr, \"Use ./configure --enable-module-ecdh.\\n\\n\");\n        return EXIT_FAILURE;\n    }\n#endif\n\n#ifndef ENABLE_MODULE_RECOVERY\n    if (have_flag(argc, argv, \"recover\") || have_flag(argc, argv, \"ecdsa_recover\")) {\n        fprintf(stderr, \"./bench: Public key recovery module not enabled.\\n\");\n        fprintf(stderr, \"Use ./configure --enable-module-recovery.\\n\\n\");\n        return EXIT_FAILURE;\n    }\n#endif\n\n#ifndef ENABLE_MODULE_SCHNORRSIG\n    if (have_flag(argc, argv, \"schnorrsig\") || have_flag(argc, argv, \"schnorrsig_sign\") || have_flag(argc, argv, \"schnorrsig_verify\")) {\n        fprintf(stderr, \"./bench: Schnorr signatures module not enabled.\\n\");\n        fprintf(stderr, \"Use ./configure --enable-module-schnorrsig.\\n\\n\");\n        return EXIT_FAILURE;\n    }\n#endif\n\n#ifndef ENABLE_MODULE_ELLSWIFT\n    if (have_flag(argc, argv, \"ellswift\") || have_flag(argc, argv, \"ellswift_encode\") || have_flag(argc, argv, \"ellswift_decode\") ||\n        have_flag(argc, argv, \"encode\") || have_flag(argc, argv, \"decode\") || have_flag(argc, argv, \"ellswift_keygen\") ||\n        have_flag(argc, argv, \"ellswift_ecdh\")) {\n        fprintf(stderr, \"./bench: ElligatorSwift module not enabled.\\n\");\n        fprintf(stderr, \"Use ./configure --enable-module-ellswift.\\n\\n\");\n        return EXIT_FAILURE;\n    }\n#endif\n\n    /* ECDSA benchmark */\n    data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE);\n","sourceCodeStart":201,"sourceCodeEnd":237,"githubUrl":"https://github.com/ethereum/go-ethereum/blob/6bb0588ad8e7f922e4ad5580f51265a4097af08f/crypto/secp256k1/libsecp256k1/src/bench.c#L201-L237","documentation":"Compile-time guard for the Schnorr signature module in the bench tool: when ENABLE_MODULE_SCHNORRSIG is undefined and the command line contains 'schnorrsig', 'schnorrsig_sign', or 'schnorrsig_verify', the tool prints this message and exits with EXIT_FAILURE. It prevents benchmarking code that was never compiled in.","triggerScenarios":"Running './bench schnorrsig' (or the sign/verify sub-names) on a build configured without --enable-module-schnorrsig — the default for plain ./configure builds of libsecp256k1.","commonSituations":"Manually configured builds of the vendored libsecp256k1 inside geth; benchmark scripts carried over from a full-featured system build; newer vendored versions where schnorr is opt-in.","solutions":["Rebuild with ./configure --enable-module-schnorrsig","Drop the schnorr benchmark tokens from the command line","Verify enabled modules by inspecting the generated config.h before benching"],"exampleFix":"# before\n./configure && make && ./src/bench schnorrsig   # -> module not enabled\n\n# after\n./configure --enable-module-schnorrsig && make && ./src/bench schnorrsig","handlingStrategy":"validation","validationCode":"#!/bin/sh\nif grep -q 'ENABLE_MODULE_SCHNORRSIG' config.h 2>/dev/null; then\n  ./src/bench schnorrsig\nelse\n  echo \"schnorr module off; skipping\" >&2\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pass --enable-module-schnorrsig when you plan to benchmark schnorr paths","Regenerate config.h checks whenever you re-vendor libsecp256k1","Don't assume module availability across versions; schnorr has been optional historically"],"tags":["secp256k1","benchmark","build-config","schnorr"],"backgroundTag":null,"analyzedSha":"6bb0588ad8e7f922e4ad5580f51265a4097af08f","analyzedAt":"2026-08-15T10:06:53.996Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}