Next Perl update, and plans beyo nd…

Chris H bsd-lists at bsdforge.com
Tue Dec 9 16:52:33 UTC 2014


On Tue, 9 Dec 2014 17:30:39 +0100 Mathieu Arnold <mat at FreeBSD.org> wrote

> Hello there,
> 
> In a few days, I'll be changing the way Perl works wrt compiled modules
> it produces.  The current patch[1] is on our code review tool.
> 
> Right now, we have:
> 
> $ readelf -d /usr/local/lib/perl5/5.18/mach/CORE/libperl.so|grep SONAME
>  0x000000000000000e (SONAME)             Library soname: [libperl.so.5.18]
> $
> 
> That is, libperl.so has a name, and it is versionned, and the version
> will change if you have 5.16 or 5.20.  If your libperl.so does not have
> a SONAME, you don't have an up-to-date Perl.
> 
> Which is good, because if some app is linked with libperl.so, it has:
> # readelf -d /usr/local/bin/vim|grep perl
>  0x0000000000000001 (NEEDED)             Shared library: [libperl.so.5.18]
>  0x000000000000000f (RPATH)              Library rpath:
> [/usr/local/lib:/usr/local/lib/perl5/5.18/mach/CORE]  0x000000000000001d
> (RUNPATH)            Library runpath:
> [/usr/local/lib:/usr/local/lib/perl5/5.18/mach/CORE] 
>
> So if you change your Perl version, pkg will know it has to upgrade vim
> too because a NEEDED shlib changed.
> 
> Now, for Perl modules, it's not like that, it reads like this:
> 
> $ readelf -d
> /usr/local/lib/perl5/site_perl/mach/5.18/auto/DateTime/DateTime.so|grep perl
> $
> 
> So what the patch[1] does, is force linking with libperl.so.x.yy.  After
> the patch, a compiled Perl module will look like this:
> 
> $ readelf -d
> /usr/local/lib/perl5/site_perl/mach/5.18/auto/DateTime/DateTime.so | grep
> perl  0x0000000000000001 (NEEDED)             Shared library:
> [libperl.so.5.18]  0x000000000000000f (RPATH)              Library rpath:
> [/usr/local/lib/perl5/5.18/mach/CORE]  0x000000000000001d (RUNPATH)          
>  Library runpath: [/usr/local/lib/perl5/5.18/mach/CORE] $
Apologies if I seem a bit obtuse. But as I read this, it appears
that Perl modules go from being text based (DateTime.pm) to becoming
compiled?
I *must* be missing something obvious.

--Chris

> 
> So pkg will detect it needs to be reinstalled when the Perl version
> change.
> 
> 
> As for the plans beyond that I was talking about in the subject, there
> will be a Perl 5.22 released next May, (and 5.24 the May after that,)
> when that happens, I'll change the default Perl to be 5.20, and
> deprecate 5.18 which won't, then, be supported.  Sometime at the end of
> the summer, like sometime September, I'll change the default Perl to
> 5.22 and try to keep it that way, that is, a new Perl goes in in May,
> and gets to be the default in September.
> 
> 
> 1: <https://reviews.freebsd.org/D1241>
> 
> -- 
> Mathieu Arnold




More information about the freebsd-ports mailing list