Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Nov 2005 12:50:02 -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:  <200511271250.02806.ringworm01@gmail.com>
In-Reply-To: <438A1CEA.2020000@mkproductions.org>
References:  <43890854.8060901@mkproductions.org> <200511271239.15344.ringworm01@gmail.com> <438A1CEA.2020000@mkproductions.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 27 November 2005 12:54, Mark Kane wrote:
> Michael C. Shultz wrote:
> > 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]
> >>>>>>>>>>>
> >>>>>>>>>>>=3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file:
> >>>>>>>>>>>/usr/local/bin/perl5.8.7 - found =3D=3D=3D>   p5-HTML-Tagset-3=
=2E10
> >>>>>>>>>>>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/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 in=
fo
> >>>>>>>>>>>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 Databa=
se
> >>>>>>>>>>> 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-Printab=
le
> >>>>>>>>>>>encodings p5-Net-1.16,1       Perl5 modules to access and use
> >>>>>>>>>>>network protocols p5-URI-1.25         Perl5 interface to Unifo=
rm
> >>>>>>>>>>>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 whi=
ch
> >>>>>>>>>>>uses Perl all the time.
> >>>>>>>>>>>
> >>>>>>>>>>>-Mark
> >>>>>>>>>>>FreeBSD 4.9-RELEASE i386
> >>>>>>>>>>
> >>>>>>>>>>On a 4.11 system sysutils/portmanager has no problem with perl5=
=2E8
> >>>>>>>>>>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 o=
ut
> >>>>>>>>> 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.8.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.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
> >>>>>>>>>
> >>>>>>>>>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/+CONTEN=
TS
> >>>>>>>>>             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 positiv=
e.
> >>>>>>>>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/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 --versio=
n,
> >>>>>>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 =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 old=
er
> >>>>>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=E2=80=90 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:
> >>>>
> >>>>=3D=3D=3D>   p5-HTML-Tagset-3.10 depends on file: /usr/local/bin/perl=
5.8.7 -
> >>>>found =3D=3D=3D>  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 thi=
s:
> >>
> >>--->  Upgrading 'p5-HTML-Tagset-3.03' to 'p5-HTML-Tagset-3.10'
> >>(www/p5-HTML-Tagset)
> >>--->  Building '/usr/ports/www/p5-HTML-Tagset'
> >>=3D=3D=3D>  Cleaning for perl-5.8.7
> >>=3D=3D=3D>  Cleaning for p5-HTML-Tagset-3.10
> >>=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.=
8.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.=
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
> >>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)     =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)  =20
> >> (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
>
> Nope, no portupgrade.core. Tried manually, same deal. Even on another one:
>
> =3D=3D=3D>   p5-MIME-Base64-3.05 depends on file: /usr/local/bin/perl5.8.=
7 -
> found =3D=3D=3D>  Configuring for p5-MIME-Base64-3.05
> Checking if your kit is complete...
> Segmentation fault (core dumped)
> *** Error code 139
>
> Stop in /usr/ports/converters/p5-MIME-Base64.
>
> -Mark

Well something is core dumping, most likely perl since its not portupgrade.=
 Do=20
a search if it isn't in the current directory, like this to check the whole=
=20
drive:

find /. | grep ".core"

If it's perl that is core dumping I think you should a) go back to using th=
e=20
one in base or b) upgrade at least to 4.11

=2DMike




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