On Tue, Oct 17, 2006 at 05:38:55PM +0400, Alexey I. Froloff wrote: > * Alexey Tourbin [061017 17:37]: > > > > > if_perl.c:799: error: static declaration of 'XS_VIM_Msg' follows non-static declaration > > > > > if_perl.xs:750: error: previous declaration of 'XS_VIM_Msg' was here > > > > > if_perl.c:840: error: static declaration of 'XS_VIM_SetOption' follows non-static declaration > > > > > if_perl.xs:751: error: previous declaration of 'XS_VIM_SetOption' was here > > > > ... > > > > > if_perl.c:1459: error: static declaration of 'XS_VIBUF_Append' follows non-static declaration > > > > > if_perl.xs:767: error: previous declaration of 'XS_VIBUF_Append' was here > > > > Ой, аштойта??? > > > Боюсь что я виноват. > > Но исправлять придется тебе. :) > Как? И что сказать апстриму? В перле есть генератор сишного кода из *.xs файлов, типа препроцессор, называется xsubpp, он же ExtUtils::ParseXS. В 99% случаев все функции-генераты (то есть с префиксом XS_$module_*; кроме одной, которая называется boot_$module) не используются за пределами сгенеренного сишного файла. В общем я сделал все XS_* функции-генераты static по умолчанию. Варианты решения: 1) export XSUBPP_NO_STATIC_XS=1 2) подправить или убить опережающие определения В твоем случае можно именно что убить, потому что они не нужны. --- if_perl.xs- 2006-10-17 14:17:17 +0000 +++ if_perl.xs 2006-10-17 14:18:20 +0000 @@ -747,6 +747,7 @@ err: } } +#if 0 XS(XS_VIM_Msg); XS(XS_VIM_SetOption); XS(XS_VIM_DoCommand); @@ -765,6 +766,7 @@ XS(XS_VIBUF_Get); XS(XS_VIBUF_Set); XS(XS_VIBUF_Delete); XS(XS_VIBUF_Append); +#endif XS(boot_VIM); static void