The presence of "filter" from crypto1.c as an exported function depends on the chosen compilation optimization level.
So if the common/crapto1/ and the code using it (here hardnested) are not using the same level, there will be a mismatch,
in this case hardnested_bruteforce.c expecting crypto1.c to provide filter()