In texlive the declaration (in kpathsea.c)
extern char * kpathsea_version_string;
causes problems, because, kpathsea_version_string has changed
its type (to const char *).
Since texlive-2009, kpathsea/version.h contains the definition of
kpathsea_version_string, so that the declaration should not be necessary.
However, it seems that the definition is necessary of texlive-2008 or earlier:
See the discussion in http://bugs.gentoo.org/show_bug.cgi?id=342817