develooper Front page | perl.perl5.porters | Postings from May 2013

Re: Build failed in Jenkins: perl5 #2285

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
May 7, 2013 08:56
Subject:
Re: Build failed in Jenkins: perl5 #2285
Message ID:
20130507085545.GI3729@plum.flirble.org
On Tue, May 07, 2013 at 10:38:01AM +0200, demerphq wrote:
> On 7 May 2013 09:48,  <dennis+p5p-jenkins@kaarsemaker.net> wrote:
> 
> > chmod 755 ../../../lib/auto/Encode/Unicode/Unicode.so
> > make[2]: Leaving directory `<http://perl5.git.perl.org:8080/job/perl5/ws/cpan/Encode/Unicode'>
> > make[1]: Leaving directory `<http://perl5.git.perl.org:8080/job/perl5/ws/cpan/Encode'>
> > Making test script
> > Updating 'mktables.lst'
> > Build step 'Execute shell' marked build as failure
> 
> I dont see any compile failures, it just stops there. I dont
> understand why. I also dont understand why jenkins is using g++.

I think that Jenkins is showing the tail of a parallel make. Which isn't
actually useful because it shows the $n-1 slow jobs still running, not the
1 job that failed quickly.

As to why Jenkins is running g++ not gcc - not sure. There was probably a
discussion about it at some point, and it was assumed that threaded g++
would give the most "bang for your buck" in terms of one configuration to
find the most problems.

As to g++ generally - it's to prove that all the headers are valid C++ so
that C++ XS code still works. We screwed this one up once (5.8.8, IIRC)

> Can anybody replicate this?

Util.xs: In function 'void XS_Hash__Util_hash_traversal_mask(CV*)':
Util.xs:94: error: invalid conversion from 'const HV*' to 'HV*'
Util.xs:94: error:   initializing argument 1 of 'void Perl_hv_rand_set(HV*, U32)'
make[1]: *** [Util.o] Error 1
make[1]: Leaving directory `/home/nick/Perl/perl/ext/Hash-Util'
Unsuccessful make(ext/Hash-Util): code=512 at make_ext.pl line 490.
make: *** [lib/auto/Hash/Util/Util.so] Error 2

It's passing a const HV* pointer to a function taking HV*

    if (SvROK(rhv) && SvTYPE(SvRV(rhv))==SVt_PVHV && !SvMAGICAL(SvRV(rhv))) {
        const HV * const hv = (const HV *) SvRV(rhv);
        if (items>1) {
            hv_rand_set(hv, SvUV(ST(1)));


I don't know if the right fix is to change that line from 'const HV * const hv'
or to change Perl_hv_rand_set to take a const HV * parameter.

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About