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>