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

Michael C. Shultz ringworm01 at gmail.com
Sun Nov 27 20:50:43 GMT 2005


On Sunday 27 November 2005 12:42, Mark Kane wrote:
> Michael C. Shultz wrote:
> > 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
>
> I am doing as /usr/ports/UPDATING says to upgrade/reinstall all the Perl
> modules, which is to do:
>
> portupgrade -f p5-\*
>
> p5-HTML-Tagset is just the first one that it tries, and it produces this:
>
> --->  Upgrading 'p5-HTML-Tagset-3.03' to 'p5-HTML-Tagset-3.10'
> (www/p5-HTML-Tagset)
> --->  Building '/usr/ports/www/p5-HTML-Tagset'
> ===>  Cleaning for perl-5.8.7
> ===>  Cleaning for p5-HTML-Tagset-3.10
> ===>  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
> Checking if your kit is complete...
> Segmentation fault (core dumped)
> *** Error code 139
>
> Stop in /usr/ports/www/p5-HTML-Tagset.
> ** Command failed [exit code 1]: /usr/bin/script -qa
> /tmp/portupgrade52316.0 make
> ** Fix the problem and try again.
> --------------------
>
> It attempts the other Perl modules as well but fails with the same. Here
> is the final report:
>
> --------------------
> ** Listing the failed packages (*:skipped / !:failed)
>         ! www/p5-HTML-Tagset (p5-HTML-Tagset-3.03)      (coredump)
>         ! converters/p5-MIME-Base64 (p5-MIME-Base64-2.20)       (coredump)
>         * security/p5-Digest (p5-Digest-1.13)
>         ! security/p5-Authen-SASL (p5-Authen-SASL-2.04) (coredump)
>         ! databases/p5-DBI (p5-DBI-1.38)        (coredump)
>         ! audio/p5-libvorbis (p5-libvorbis-0.04)        (coredump)
>         * net/p5-URI (p5-URI-1.25)
>         * net/p5-Net (p5-Net-1.16,1)
>         * www/p5-HTML-Parser (p5-HTML-Parser-3.31)
>         * databases/p5-DBD-mysql (p5-DBD-mysql-2.1026_1)
>         ! security/p5-Digest-MD5 (p5-Digest-MD5-2.27)   (coredump)
>         ! archivers/p5-Compress-Zlib (p5-Compress-Zlib-1.41)    (coredump)
>         * www/p5-libwww (p5-libwww-5.69)
> --->  Packages processed: 0 done, 0 ignored, 6 skipped and 7 failed
> --------------------
>
> Thanks
>
> -Mark

Are you getting a portupgrade.core?  Looks like that is what is coredumping, 
If so try manually upgrading one or two of these and see what happens.

-Mike


More information about the freebsd-questions mailing list