Subject: | Upgrade to ExtUtils::ParseXS 3.05 has broken "some" things on Win32/gcc |
Hi,
the issue I am gonna describe is slightly complicated and I am not sure if it is a bug in ExtUtils::ParseXS.
The story started when I tried to install Devel::DProf
1/ on perl 5.14.2/Windows 32bit/gcc-4.4.x compiler + ExtUtils::ParseXS 2.2210 the installation was fine
2/ on perl 5.14.2/Windows 32bit/gcc-4.4.x compiler + ExtUtils::ParseXS 3.05 the installation fails with an error:
DProf.c:852: error: static declaration of 'XS_Devel__DProf_END' follows non-static declaration
DProf.xs:107: note: previous declaration of 'XS_Devel__DProf_END' was here
The only change between my perl environment in testcases 1/ and 2/ was an upgrade of ExtUtils::ParseXS 2.2210 to 3.05
*.C code (generated by ExtUtils::ParseXS 3.05 - causing an error) is:
...
DProf.c:116: XS(XS_Devel__DProf_END); /* used by prof_mark() */ ###kmx-note this corresponds to DProf.xs:107
...
DProf.c:850: #line 851 "DProf.c"
DProf.c:851:
DProf.c:852: XS_EUPXS(XS_Devel__DProf_END); /* prototype to pass -Wmissing-prototypes */
DProf.c:853: XS_EUPXS(XS_Devel__DProf_END)
DProf.c:854: {
DProf.c:855: dVAR; dXSARGS;
DProf.c:856: if (items != 0)
*.C code (generated by ExtUtils::ParseXS 2.2210 - compiling fine) is:
...
DProf.c:116: XS(XS_Devel__DProf_END); /* used by prof_mark() */ ###kmx-note this corresponds to DProf.xs:107
...
DProf.c:760: #line 761 "DProf.c"
DProf.c:761:
DProf.c:762: XS(XS_Devel__DProf_END); /* prototype to pass -Wmissing-prototypes */
DProf.c:763: XS(XS_Devel__DProf_END)
DProf.c:764: {
DProf.c:765: #ifdef dVAR
DProf.c:766: dVAR; dXSARGS;
DProf.c:767: #else
DProf.c:768: dXSARGS;
DProf.c:796: #endif
DProf.c:770: if (items != 0)
from the above mentioned indices I have assumed that it might be somehow related to XS_EUPXS thus "maybe-a-bug" in ExtUtils::ParseXS
Thanks in advance for nay feedback.
--
kmx
the issue I am gonna describe is slightly complicated and I am not sure if it is a bug in ExtUtils::ParseXS.
The story started when I tried to install Devel::DProf
1/ on perl 5.14.2/Windows 32bit/gcc-4.4.x compiler + ExtUtils::ParseXS 2.2210 the installation was fine
2/ on perl 5.14.2/Windows 32bit/gcc-4.4.x compiler + ExtUtils::ParseXS 3.05 the installation fails with an error:
DProf.c:852: error: static declaration of 'XS_Devel__DProf_END' follows non-static declaration
DProf.xs:107: note: previous declaration of 'XS_Devel__DProf_END' was here
The only change between my perl environment in testcases 1/ and 2/ was an upgrade of ExtUtils::ParseXS 2.2210 to 3.05
*.C code (generated by ExtUtils::ParseXS 3.05 - causing an error) is:
...
DProf.c:116: XS(XS_Devel__DProf_END); /* used by prof_mark() */ ###kmx-note this corresponds to DProf.xs:107
...
DProf.c:850: #line 851 "DProf.c"
DProf.c:851:
DProf.c:852: XS_EUPXS(XS_Devel__DProf_END); /* prototype to pass -Wmissing-prototypes */
DProf.c:853: XS_EUPXS(XS_Devel__DProf_END)
DProf.c:854: {
DProf.c:855: dVAR; dXSARGS;
DProf.c:856: if (items != 0)
*.C code (generated by ExtUtils::ParseXS 2.2210 - compiling fine) is:
...
DProf.c:116: XS(XS_Devel__DProf_END); /* used by prof_mark() */ ###kmx-note this corresponds to DProf.xs:107
...
DProf.c:760: #line 761 "DProf.c"
DProf.c:761:
DProf.c:762: XS(XS_Devel__DProf_END); /* prototype to pass -Wmissing-prototypes */
DProf.c:763: XS(XS_Devel__DProf_END)
DProf.c:764: {
DProf.c:765: #ifdef dVAR
DProf.c:766: dVAR; dXSARGS;
DProf.c:767: #else
DProf.c:768: dXSARGS;
DProf.c:796: #endif
DProf.c:770: if (items != 0)
from the above mentioned indices I have assumed that it might be somehow related to XS_EUPXS thus "maybe-a-bug" in ExtUtils::ParseXS
Thanks in advance for nay feedback.
--
kmx