Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the ExtUtils-ParseXS CPAN distribution.

Report information
The Basics
Id: 71808
Status: rejected
Priority: 0/
Queue: ExtUtils-ParseXS

People
Owner: Nobody in particular
Requestors: kmx [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 3.05
Fixed in: (no value)



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
Hi, thanks for reporting the issue. It's not related to win32. This is a combination of changes in ExtUtils::ParseXS and Devel::DProf being too cozy with Perl internals. The same issue was reported as RT #71655 in the ExtUtils::ParseXS bug tracker and as RT #70629 in Devel::DProf's. I will mark this ticket as rejected because I expect the problem to be solved on Devel::DProf's side of things. The change is rather trivial. Add the following line to DProf.xs: #define PERL_EUPXS_ALWAYS_EXPORT Best regards, Steffen