develooper Front page | perl.perl5.porters | Postings from December 2018

Re: 5.28.1 with -Duseshrplib issues

Thread Previous | Thread Next
From:
David Mertens
Date:
December 5, 2018 12:14
Subject:
Re: 5.28.1 with -Duseshrplib issues
Message ID:
CA+4ieYVmq0GxZ0oTdfqB5Ti11fLWfuz4fb9Stkq6EFRA69Hx5A@mail.gmail.com
Tux (or Merijn?),

This sounds a lot to me like a bug in Module::Build. If you look at the
very top of the "Build" file produced when you run Build.PL, what does it
say?

My initial though was that it is taking the name of the perl interpreter
from a Config entry rather than $^X (though why it would do that is a
mystery to me). When I looked into the source code for Module::Build, I was
left scratching my head. Module::Build::Base constructs the shebang line (
https://metacpan.org/source/Module::Build::Base#L1824) by appending to '#!'
whatever is returned by the object's _startperl method. As a grep shows (
https://grep.metacpan.org/search?qd=Module-Build&source=metacpan&q=startperl),
the default executable comes from config->('startperl'), but I cannot find
where that is defined. Furthermore, Unix platforms override _startperl to
return whatever is returned by the "perl" method. However, I cannot find
that method defined anywhere.

So, it seems to me like a bug in M::B, but it's really a mystery.

David

On Wed, Dec 5, 2018 at 6:26 AM H.Merijn Brand <h.m.brand@xs4all.nl> wrote:

> On Wed, 5 Dec 2018 20:40:47 +1100, Tony Cook <tony@develop-help.com>
> wrote:
>
> > On Wed, Dec 05, 2018 at 10:02:07AM +0100, H.Merijn Brand wrote:
> > > I built, tested and installed 5.28.1 on my laptop using
> > >
> > > ./Configure -Duse64bitall -Duselongdouble -Dusethreads -Duseithreads
> -Duseshrplib -des
> >
> > Did you supply -Dprefix too?
>
> Of course :)
>
> > > I installed it into my usual place: /pro/bin/
> > > the I linked /pro/bin/perl to /pro/bin/perl5.28.0 again to not disrupt
> > > my other tasks while installing all the modules in the 5.28.1 tree
> > >
> > > I always forbid to use modules from the previous installs:
> > >
> > > $ perl -V:.*inc_version.*
> >
> > Is that the new or old perl?
>
> both
>
> > > d_inc_version_list='undef';
> > > inc_version_list=' ';
> > > inc_version_list_init='0';
> > >
> > > What I then not is that when using CPAN in a script like
> > >
> > >  $ perl5.28.1 -MCPAN::Shell -we 'CPAN::Shell->install ($_) for qw( ...
> )'
> > >
> > > all modules that use ExtUtil::MakeMaker install as expected, as the
> usual riddle is
> > >
> > >  perl5.28.1 Makefile.PL && make && make test && make install
> > >
> > > where make invokes the perl used to build the Makefile: perl5.28.1
> > >
> > > and all modules that use Module::Build fail, as the use
> > >
> > >  perl5.28.1 Build.PL && ./Build && ./Build test && ./Build install
> > >
> > > and the shebang of Build is /pro/bin/perl which points to the previous
> perl
> >
> > If your new perl is also being installed as /pro/bin/perl the module
> > build process might be confused.
>
> $ cd perl-5.28.1
> $ make install
> $ cd /pro/bin
> $ rm perl
> $ ln -s perl5.28.0 perl
>
> /pro/bin/perl symlinks to my "current" perl
>
> > > My previous perl (5.28.0) was NOT built with -Duseshrplib
> > >
> > > I (by now) do not know if having the previous perl not having a shared
> > > plib has any influence on the bad behavior of Module::Build and if the
> > > causes havoc on my current perl, but in the new perl I now get some
> > > fails I never saw before:
> >
> > For a Makefile.PL module build try checking the values of PERL and
> > FULLPERL in the generated Makefile to see if it points at
> > /opt/bin/perl (bad) or /opt/bin/perl5.28.1 (good).
>
> All ExtUtils::MakeMaker build succeed as the Makefile.PL is invoked
> with perl5.28.1
>
> > > Does this mean I have to start all over without shared plib or did I
> > > surface a bug in perl core?
> >
> > I'm pretty sure you just confused the build process.
>
> Oké, I'll start afresh and make this perl the default perl
>
> > Tony
>
>
> --
> H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
> using perl5.00307 .. 5.29   porting perl5 on HP-UX, AIX, and openSUSE
> http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
> http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/
>


-- 
 "Debugging is twice as hard as writing the code in the first place.
  Therefore, if you write the code as cleverly as possible, you are,
  by definition, not smart enough to debug it." -- Brian Kernighan

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