in reply to Re^5: SWIG and conflicting definitions
in thread SWIG and conflicting definitions

I agree mostly. Using
#include "perl.h" #include "XSUB.h" #undef XSPROTO #define XSPROTO(name) void name(pTHX_ struct cv* cv)
instead of
#define CV __perl_CV #include "perl.h" #include "XSUB.h" #undef XSPROTO #define XSPROTO(name) void name(pTHX_ __perl_CV* cv) #undef CV
is much more elegant and better. But both variants should work.

However SWIG_init is declared with two parameters.

In 'SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);' macro 'pTHHXo_' expands to 'PerlInterpreter*,'.

With the comma at the end there are suddenly two parameters.