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

Michael C. Shultz ringworm01 at gmail.com
Sun Nov 27 20:35:01 GMT 2005


On Sunday 27 November 2005 12:29, Mark Kane wrote:
> 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


I need to see more context, are you manually trying to install p5-HTML-Tagset
or are you using portupgrade/portmanager for example.

-Mike


More information about the freebsd-questions mailing list