Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Nov 2005 22:35:27 -0800
From:      "Michael C. Shultz" <ringworm01@gmail.com>
To:        Mark Kane <mark@mkproductions.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: After upgrading Perl, cannot reinstall modules - Cwd.so: Undefined symbol "perl_get_sv
Message-ID:  <200511262235.29561.ringworm01@gmail.com>
In-Reply-To: <4389504B.3020606@mkproductions.org>
References:  <43890854.8060901@mkproductions.org> <200511261949.41078.ringworm01@gmail.com> <4389504B.3020606@mkproductions.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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", a=
nd
> >>>>>ran the perl-after-upgrade script which were all said in UPDATING. N=
ow
> >>>>>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]
> >>>>>
> >>>>>=3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/per=
l5.8.7 -
> >>>>>found =3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file:
> >>>>>/usr/local/bin/perl5.8.7 - found =3D=3D=3D>  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/recompil=
ed
> >>>>>either error out with the same message or are skipped because one th=
at
> >>>>>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
> >>>----------------------------------------------------------------------=
=2D-
> >>>=3D=3D=3D>  Vulnerability check disabled, database not found
> >>>=3D=3D=3D>  Extracting for p5-HTML-Tagset-3.10
> >>>=3D> MD5 Checksum OK for HTML-Tagset-3.10.tar.gz.
> >>>=3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5=
=2E8.7 -
> >>>found =3D=3D=3D>  Patching for p5-HTML-Tagset-3.10
> >>>=3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl5=
=2E8.7 -
> >>>found =3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file:
> >>>/usr/local/bin/perl5.8.7 - found =3D=3D=3D>  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 -=3D>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 =3D
> >>(/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 =3D
> >>( /usr/local/sbin /usr/local/bin /sbin /bin /usr/sbin /usr/bin /usr/gam=
es
> >>/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.po=
d=20

 Perl_get_sv

       You may get errors like =E2=80=99Undefined symbol "Perl_get_sv"=E2=
=80=99 or "can=E2=80=99t
       resolve symbol =E2=80=99Perl_get_sv=E2=80=99", 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 tho=
se
       directories.

       Sometimes this problem may also indicate a partial Perl 5.8.0 instal=
la=E2=80=90
       tion, see "Mac OS X dyld undefined symbols" for an example and how to
       deal with it.


=2DMike



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511262235.29561.ringworm01>