develooper Front page | perl.perl5.porters | Postings from June 2012

perl build failures 5.14.2(SuSE), 5.16.0(SuSE & perlbrew)

Thread Next
Linda W
June 20, 2012 21:19
perl build failures 5.14.2(SuSE), 5.16.0(SuSE & perlbrew)
Message ID:
The failure to build on 5.14.2 I've traced to a faulty C file
DynaLoader.c has, at the end the file an invalid "#line" statement
on line #481.   This causes the C preprocessor to emit a fatal
error in it's thread -- while another thread continued into
building the unicode tables -- making it look like it might have
been there -- but no error occurred there in 5.14.2 or 5.16 --

474         newXS("DynaLoader::dl_error", XS_DynaLoader_dl_error, file);
475 #if XSubPPtmpAAAA
476         newXS("DynaLoader::CLONE", XS_DynaLoader_CLONE, file);
477 #endif
479     /* Initialisation Section */
481 #line  "DynaLoader.xs"
482 #line 157 "DynaLoader.xs"
483     (void)dl_private_init(aTHX);
485 #if XSubPPtmpAAAA
486 #endif
487 #line 488 "DynaLoader.c"
489     /* End of Initialisation Section */
491 #if (PERL_REVISION == 5 && PERL_VERSION >= 9)
492   if (PL_unitcheckav)
493        call_list(PL_scopestack_ix, PL_unitcheckav);
494 #endif
496 }
Possibly of more interest, is the failure to build 5.16.0 in both the
suse rpmbuild method and the "perlbrew install 5.16.0 -- with VERY
different options, they fail in the same place -- in the build of the
cpan file "" in the 2nd-stage build (miniperl built without
showing this problem).   The make file has a bad line:

MM_VERSION  = 6.6302

# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
MAKE =                     <<<<<<<<<<<<<<<<------------<<<<<<<<<<
FULLEXT = Encode
BASEEXT = Encode
INC = -I./Encode
LINKTYPE = dynamic

The make=nothing line undefines MAKE (/usr/bin/make), so later on, at this
# --- MakeMaker subdirs section:

# The default clean, realclean and test targets in this Makefile
# have automatically been given entries for each subdir.

subdirs ::
    $(NOECHO) cd Byte && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) all 

The make fails with the error:

make[1]: Leaving directory 
Making all in cpan/Filter-Util-Call
 make all PERL_CORE=1 LINKTYPE=dynamic
make[1]: Entering directory 
/bin/sh: -f: command not found   
make[1]: *** [subdirs] Error 127
make[1]: Leaving directory `/home/packages/build/perl-5.16.0/cpan/Encode'
Unsuccessful make(cpan/Encode): code=512 at line 466.
make: *** [lib/auto/Encode/] Error 25
make: *** Waiting for unfinished jobs....

'configure' issues the message that 'Make' sets MAKE to the binary -- and
miniperl builds ok,... but somehow the bad Makefile gets produced (I think)
from the Makefile.PL.


the perlbrew was built as 'me', while I've tried both rpms (5.14.2
& 5.16.0) as myself and as root...

These failures do not appear to be happening at random.

(Trying to build a debug version in order to have a chance to debug
the other problem)....

FWIW, I ran the build with the job constrained to 1 processor -- ran
quite a bit slower, but failed in the same place, so it's not like to
be parallelism related.

Open to suggestions...should I file bugs on these as I know they have
to be specific to my config...(sigh)...

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About