Repro steps for the recovery module (ecdh is similar)
$ ./configure --enable-benchmark --enable-module-recovery
$ make
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CCLD libsecp256k1.la
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
CC src/bench_verify.o
CCLD bench_verify
CC src/bench_sign.o
CCLD bench_sign
CC src/bench_internal-bench_internal.o
CCLD bench_internal
CC src/bench_ecmult-bench_ecmult.o
CCLD bench_ecmult
CC src/tests-tests.o
CCLD tests
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
CC src/bench_recover.o
src/bench_recover.c:18:6: error: ‘bench_recover’ redeclared as different kind of symbol
void bench_recover(void* arg) {
^~~~~~~~~~~~~
src/bench_recover.c:16:3: note: previous declaration of ‘bench_recover’ was here
} bench_recover;
[...]
Makefile:1009: recipe for target 'src/bench_recover.o' failed
make: *** [src/bench_recover.o] Error 1