GCC 15 treats empty parentheses as (void), conflicting with the actual
lookup_element signature generated by gperf. This was intentionally
done, as version 7.7 removed the arguments because gperf 3.0 generates
`unsigned int` while gperf 3.1 generates `size_t`. However, gperf 3.1 is
nearly 10 years old, so it's reasonable to assume that practically every
system that wants to use GCC 15 will have gperf 3.1 or later.
Nixpkgs uses gperf 3.3, so we use `size_t` in the prototype.
This commit also adds gperf to `nativeBuildInputs` since patching the
.hash file triggers regeneration of the C source.
Fixes#480448