After upgrading Perl, cannot reinstall modules - Cwd.so: Undefined symbol "perl_get_sv

Mark Kane mark at mkproductions.org
Sun Nov 27 20:29:14 GMT 2005


Michael C. Shultz wrote:
> On Saturday 26 November 2005 22:20, Mark Kane wrote:
> 
>>Michael C. Shultz wrote:
>>
>>>On Saturday 26 November 2005 19:25, Michael C. Shultz wrote:
>>>
>>>>On Saturday 26 November 2005 18:48, Mark Kane wrote:
>>>>
>>>>>Michael C. Shultz wrote:
>>>>>
>>>>>>On Saturday 26 November 2005 17:13, Mark Kane wrote:
>>>>>>
>>>>>>>Hi everyone. I finally did a big portupgrade on a 4.9-RELEASE system
>>>>>>>today and I'm having some problems with Perl.
>>>>>>>
>>>>>>>I got it updated to 5.8.7 (was 5.6.x before), ran "use.perl port", and
>>>>>>>ran the perl-after-upgrade script which were all said in UPDATING. Now
>>>>>>>it's time to force upgrade/recompile the Perl modules for the new
>>>>>>>version.
>>>>>>>
>>>>>>>Unfortunately this is where I get stuck:
>>>>>>>
>>>>>>>xeon1# portupgrade -f p5-\*
>>>>>>>
>>>>>>>[snip]
>>>>>>>
>>>>>>>===>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5.8.7 -
>>>>>>>found ===>   p5-HTML-Tagset-3.10 depends on file:
>>>>>>>/usr/local/bin/perl5.8.7 - found ===>  Configuring for
>>>>>>>p5-HTML-Tagset-3.10
>>>>>>>/usr/libexec/ld-elf.so.1:
>>>>>>>/usr/local/lib/perl5/5.8.7/mach/auto/Cwd/Cwd.so: Undefined symbol
>>>>>>>"perl_get_sv"
>>>>>>>*** Error code 1
>>>>>>>------------------------------------
>>>>>>>
>>>>>>>The remaining Perl modules that are supposed to be upgraded/recompiled
>>>>>>>either error out with the same message or are skipped because one that
>>>>>>>it requires errored out.
>>>>>>>
>>>>>>>I tried Googling for that error, but nothing came up. Other info that
>>>>>>>might be useful:
>>>>>>>
>>>>>>>xeon1# pkg_which /usr/local/lib/perl5/5.8.7/mach/auto/Cwd/Cwd.so
>>>>>>>perl-5.8.7
>>>>>>>-----
>>>>>>>xeon1# pkg_info | grep p5
>>>>>>>p5-Authen-SASL-2.04 Perl5 module for SASL authentication
>>>>>>>p5-Compress-Zlib-1.41 Perl5 interface to zlib compression library
>>>>>>>p5-DBD-mysql-2.1026_1 MySQL driver for the Perl5 Database Interface
>>>>>>>(DBI) p5-DBI-1.38         The perl5 Database Interface.  Required for
>>>>>>>DBD::* modules
>>>>>>>p5-Digest-1.13      Modules that calculate message digests
>>>>>>>p5-Digest-MD5-2.27  Perl5 interface to the MD5 algorithm
>>>>>>>p5-HTML-Parser-3.31 Perl5 module for parse HTML tag
>>>>>>>p5-HTML-Tagset-3.03 Some useful data table in parsing HTML
>>>>>>>p5-MIME-Base64-2.20 Perl5 module for Base64 and Quoted-Printable
>>>>>>>encodings p5-Net-1.16,1       Perl5 modules to access and use network
>>>>>>>protocols p5-URI-1.25         Perl5 interface to Uniform Resource
>>>>>>>Identifier (URI) refere
>>>>>>>p5-libvorbis-0.04   Perl extension for Ogg Vorbis streams
>>>>>>>p5-libwww-5.69      Perl5 library for WWW access
>>>>>>>-----
>>>>>>>
>>>>>>>Thanks very much in advance as this is a production server which uses
>>>>>>>Perl all the time.
>>>>>>>
>>>>>>>-Mark
>>>>>>>FreeBSD 4.9-RELEASE i386
>>>>>>
>>>>>>On a 4.11 system sysutils/portmanager has no problem with perl5.8 and
>>>>>>www/p5-HTML-Tagset, just tested it, not sure if it will run on 4.9 but
>>>>>>you you may want to give it a try.
>>>>>>
>>>>>>-Mike
>>>>>
>>>>>Thanks for the reply. I have never used portmanager, but I did give it a
>>>>>try like you said. Unfortunately it produced the same error when
>>>>>building that portupgrade did. I should also point out that I did try
>>>>>just a "make" from the port directory to see if it had something to do
>>>>>with portupgrade, and that failed with the same message about
>>>>>"perl_get_sv" as well.
>>>>>
>>>>>Here is the output from portmanager. I have omitted other errors that
>>>>>were about other Perl modules that were not installed via ports at all.
>>>>>
>>>>>xeon1# portmanager www/p5-HTML-Tagset
>>>>>
>>>>>[snip]
>>>>>
>>>>>--------------------
>>>>>update p5-HTML-Tagset-3.10
>>>>>MGPMrUpdate 0.3.9_2 localProperty.command: #9 of 14  cd
>>>>>/usr/ports/www/p5-HTML-Tagset; make
>>>>>------------------------------------------------------------------------
>>>>>===>  Vulnerability check disabled, database not found
>>>>>===>  Extracting for p5-HTML-Tagset-3.10
>>>>>=> MD5 Checksum OK for HTML-Tagset-3.10.tar.gz.
>>>>>===>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5.8.7 -
>>>>>found ===>  Patching for p5-HTML-Tagset-3.10
>>>>>===>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5.8.7 -
>>>>>found ===>   p5-HTML-Tagset-3.10 depends on file:
>>>>>/usr/local/bin/perl5.8.7 - found ===>  Configuring for
>>>>>p5-HTML-Tagset-3.10
>>>>>/usr/libexec/ld-elf.so.1:
>>>>>/usr/local/lib/perl5/5.8.7/mach/auto/Cwd/Cwd.so: Undefined symbol
>>>>>"perl_get_sv"
>>>>>*** Error code 1
>>>>>
>>>>>Stop in /usr/ports/www/p5-HTML-Tagset.
>>>>>MGPMrUpdate 0.3.9_2 error: make returned an error, adding
>>>>>/www/p5-HTML-Tagset to ignore.db
>>>>>reverting bsd.port.mk patch -=>cd /usr/ports/Mk; patch -R <
>>>>>/usr/local/share/portmanager/patch-bsd.port.mk-0.3.6;
>>>>>Hmm...  Looks like a unified diff to me...
>>>>>The text leading up to this was:
>>>>>--------------------------
>>>>>
>>>>>|--- /usr/ports/Mk/bsd.port.mk  Tue Nov  8 01:02:51 2005
>>>>>|+++ bsd.port.mk        Wed Nov 16 02:16:57 2005
>>>>>
>>>>>--------------------------
>>>>>Patching file bsd.port.mk using Plan A...
>>>>>Hunk #1 succeeded at 2049.
>>>>>done
>>>>>rCreateInstalledDbVerifyContentsFile 0.3.9_2 error: "@comment ORIGIN:"
>>>>>not found in /var/db/pkg/bsdpan-XML-Parser-2.34/+CONTENTS
>>>>>               bsdpan-XML-Parser-2.34 installation is corrupt!
>>>>>               recomend running "pkg_delete -f bsdpan-XML-Parser-2.34"
>>>>>then manually reinstalling this port
>>>>>--------------------
>>>>>
>>>>>Thanks
>>>>>
>>>>>-Mark
>>>>
>>>>I dug a little and think have figured the problem but not positive.  I
>>>>think your running perl configure from the original perl and not the one
>>>
>>>>from ports.
>>>
>>>>Assuming you use csh as your shell try in .cshrc to change the order of
>>>>the path staement so it looks at /usr /local directories first.
>>>>
>>>>from:
>>>>
>>>>set path =
>>>>(/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin
>>>>/usr/X11R6/bin $HOME/bin /home/mike/SCRIPTS /root/bin )
>>>>
>>>>to
>>>>
>>>>set path =
>>>>( /usr/local/sbin /usr/local/bin /sbin /bin /usr/sbin /usr/bin /usr/games
>>>>/usr/X11R6/bin $HOME/bin /home/mike/SCRIPTS /root/bin )
>>>>
>>>>
>>>>-Mike
>>>
>>>I am nearly certain your using /usr/bin/perl
>>>instead of /usr/local/bin/perl, here is how to test:
>>>
>>>cd
>>>/usr/ports/www/p5-HTML-Tagset/work/HTML-Tagset-3.10
>>>
>>>try
>>>perl Makefile.PL
>>>and I bet you get the error
>>>and if you try:
>>>
>>>/usr/local/bin/perl Makefile.PL
>>>
>>>I bet it works ok.....
>>
>>Thanks for your replies. Your explanation makes sense about the /usr/bin
>>vs /usr/local/bin, however if I do: /usr/bin/perl --version, I get:
>>
>>This is perl, v5.8.7 built for i386-freebsd-64int
>>(with 1 registered patch, see perl -V for more detail)
>>
>>If I do: /usr/local/bin/perl --version, I get:
>>
>>This is perl, v5.8.7 built for i386-freebsd-64int
>>(with 1 registered patch, see perl -V for more detail)
>>
>>Looks like /usr/bin/perl is a link to another file:
>>
>>xeon1# ls -l /usr/bin/perl
>>lrwxr-xr-x  1 root  wheel  24 Nov 26 18:32 /usr/bin/perl ->
>>/usr/local/bin/perl5.8.7
>>
>>Finally, I tried what you said anyway:
>>
>>xeon1# perl Makefile.PL
>>/usr/libexec/ld-elf.so.1:
>>/usr/local/lib/perl5/5.8.7/mach/auto/Cwd/Cwd.so: Undefined symbol
>>"perl_get_sv"
>>xeon1# /usr/local/bin/perl Makefile.PL
>>/usr/libexec/ld-elf.so.1:
>>/usr/local/lib/perl5/5.8.7/mach/auto/Cwd/Cwd.so: Undefined symbol
>>"perl_get_sv"
>>
>>Thanks.
>>
>>-Mark
> 
> 
> Beats me what is wrong then.  This is from running:  perldoc perl58delta.pod 
> 
>  Perl_get_sv
> 
>        You may get errors like ’Undefined symbol "Perl_get_sv"’ or "can’t
>        resolve symbol ’Perl_get_sv’", or the symbol may be "Perl_sv_2pv".
>        This probably means that you are trying to use an older shared Perl
>        library (or extensions linked with such) with Perl 5.8.0 executable.
>        Perl used to have such a subroutine, but that is no more the case.
>        Check your shared library path, and any shared Perl libraries in those
>        directories.
> 
>        Sometimes this problem may also indicate a partial Perl 5.8.0 installa‐
>        tion, see "Mac OS X dyld undefined symbols" for an example and how to
>        deal with it.
> 
> 
> -Mike
> 
> 
> 

Well I tried to find some more info and ended up doing a force reinstall
of perl. I also ran "use.perl port" and perl-after-upgrade again (which
didn't show anything as moved or needed to be done so I did not continue
with -f).

Now there is a different error when trying to force upgrade/recompile
the perl modules:

===>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5.8.7 - found
===>  Configuring for p5-HTML-Tagset-3.10
Checking if your kit is complete...
Segmentation fault (core dumped)
*** Error code 139

Stop in /usr/ports/www/p5-HTML-Tagset.

Any ideas? Again, this is a live production server that heavily relies
on Perl.

Thanks.

-Mark

-- 
GnuPG Public Key:
http://www.mkproductions.org/mk_pubkey.asc

Internet Radio:
Party107 (Trance/Electronic) - http://www.party107.com
Rock 101.9 The Edge (Rock) - http://www.rock1019.net

IRC:
MIXXnet IRC Network - irc.mixxnet.net (Nick: MIXX941)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20051127/f577aea3/signature.bin


More information about the freebsd-questions mailing list