The macosxhints Forums

The macosxhints Forums (http://hintsforums.macworld.com/index.php)
-   UNIX - General (http://hintsforums.macworld.com/forumdisplay.php?f=16)
-   -   Fink and Perl 5.8 = failure (http://hintsforums.macworld.com/showthread.php?t=8200)

V-tach 01-17-2003 05:13 PM

OK, next problem: with perl now I get this error

Code:

% fink list
dyld: perl Undefined symbols:
_Perl_sv_2pv
_perl_get_sv
Trace/BPT trap


The apple link

http://developer.apple.com/internet/macosx/perl.html

refers to the pearldelta page

http://dev.perl.org/perl5/news/2002/...ined%20symbols

where these instructions are found:

Mac OS X dyld undefined symbols



If after installing Perl 5.8.0 you are getting warnings about missing symbols, for example


dyld: perl Undefined symbols
_perl_sv_2pv
_perl_get_sv



you probably have an old pre-Perl-5.8.0 installation (or parts of one) in /Library/Perl (the undefined symbols used to exist in pre-5.8.0 Perls). It seems that for some reason ``make install'' doesn't always completely overwrite the files in /Library/Perl. You can move the old Perl shared library out of the way like this:


cd /Library/Perl/darwin/CORE
mv libperl.dylib libperlold.dylib



and then reissue ``make install''. Note that the above of course is extremely disruptive for anything using the /usr/local/bin/perl. If that doesn't help, you may have to try removing all the .bundle files from beneath /Library/Perl, and again ``make install''-ing.



My problem is that when I followed these instructions perl (which runs in the background on startup) crashed badly, and kept crashing until I reversed the renaming of libperl.dylib

Now can I kill of the perl that is running in the background, or would this cause more things to crash?

I've been looking through the threads at macosx@perl.org archive but I can't find a solution to this particular problem.

V-tach

sao 01-18-2003 02:15 AM

Code:

% fink list
dyld: perl Undefined symbols:
_Perl_sv_2pv
_perl_get_sv
Trace/BPT trap

The release notes for perl 5.8.0 indicate:

"Perl 5.8 is not binary compatible with any earlier Perl release,
XS MODULES WILL HAVE TO BE RECOMPILED!"

Mac OS X users that have fink installed may experience the
following error when executing certain perl operations (see 'EXAMPLE').

dyld: perl Undefined symbols:
_Perl_safefree
_Perl_safemalloc
_Perl_saferealloc
_Perl_sv_2pv
_perl_call_sv
_perl_eval_sv
_perl_get_sv

This error is separate from the similar dyld issue mentioned in the
"Mac OS X dyld undefined symbols" section of perldelta[1].


Fink stable currently includes the following six XS modules. If any
of these were installed prior to installing 5.8.0 you will likely
experience the dyld issue.

- DBD::Mysql
- DBI
- Digest::MD5
- MacOSX::File
- Storable
- Term::ReadKey

You will also experience the dyld issue if any other XS modules are
contained within the /sw/lib/perl5 directory. That is, XS modules
from fink unstable or another source.


Solution:

The following three commands will correct the above issue by removing
the current Storable and replacing it with a recompiled version. These
commands must be executed as the superuser. After these commands are
executed the aforementioned issue will be resolved.

mv /sw/lib/perl5/darwin/Storable.pm /tmp
mv /sw/lib/perl5/darwin/auto/Storable /tmp
fink rebuild storable-pm

It IS first necessary to do the mv's, before the rebuild, since fink is
a perl script that explicitly adds /sw/lib/perl5 to @INC, and exhibits
the behavior mentioned above.

You will need to execute the above commands for every XS module that
is contained within /sw/lib/perl5.

Check this post here:

http://www.mail-archive.com/fink-dev.../msg02454.html


Cheers...

V-tach 01-20-2003 12:20 AM

I started getting multiple crashes and freeze ups that were unpredictable so...

reinstall Jaguar 10.2, archive option

then

delete /sw

then

update to 10.2.3

then

download and re-install Dec 2002 Dev tools

then

install perl 5.8.0 into /usr/local/bin (leaving 5.6.0 pretty much alone)

then

run CPAN

then

download and install fink 0.5.1

elapsed time: 36 hours, but finally everything works!

(and all just for the warm feeling that I have the latest version of perl, as I use it for absolutely nothing)

tas 02-11-2003 08:14 AM

FWIW - maybe this can help somebody sometime... I managed to get my fink installation back to work. I followed the instructions given above like so:
Code:

cd /Library/Perl/darwin/CORE
sudo mv libperl.dylib libperlold.dylib
cd /Library/Perl
find . -name "*.bundle" -delete

I then re-ran "sudo make install" from the perl-5.8.0 directory. After that, fink worked again. I hasten to add that I had to reinstall perl modules I had previously installed, but as these were just a few, it was no bother. Phew, so now I got fink and perl 5.8.0!

gedalin 02-16-2003 07:13 AM

Fink Commander + Perl 5.8.0
 
I am using Fink Commander with Perl 5.8.0 from http://www.serverlogistics.com. The problem is that the fink installed Storable.pm (version 1.0.14-1: /sw/lib/perl5/darwin/Storable.pm and /sw/lib/perl5/darwin/auto/Storable) are incompatible with Perl 5.8.0. I looked for the Storable installed by the Perl 5.8.0 installer and copied it to the above mentioned places. Now Fink Commander lists everything properly. BUT: fink update changes the Storable to the old one, so either avoid uncontrolled updating or copy again after updating.
Michael

edalzell 04-19-2003 01:43 AM

Didn't work!
 
I have 10.2.5 and I followed the instructions on the Apple web page. Turns out I don't have anything in my /Library/Perl/darwin folder!

I can't even run perl -v now!

Help!

edalzell 04-19-2003 01:47 AM

Hmmm...I do have the missing libperl.dylib in /System/Library/Perl/darwin/CORE/libperl.dylib.

When I run 'perl -v' I get:
dyld: perl can't open library: /Library/Perl/darwin/CORE/libperl.dylib (No such file or directory, errno = 2)
Trace/BPT trap

How do I add it to my path?

Thanks

sao 04-19-2003 06:23 AM

edalzell,

Did you set your PERL5 environment variable? It's supposed to get set by /sw/bin/init.csh (or init.sh)?

gedalin 04-19-2003 06:35 AM

Edalzell,

You were supposed to do "sudo make install" once again in your perl-5.8.0 directory. I do not have libperl.dyld in /Library/Perl/darwin either but only in /System/Library/Perl/darwin and this is quite enough for perl. You should however have a bunch of files in /Library/Perl/darwin.

Michael

edalzell 04-19-2003 12:46 PM

sao, I do have PERL5LIB set, but it is set to /sw/lib/perl5. Which is a fink thang...maybe I should set it to something else?

And I did run sudo make install. This is what I am left with. I can run it again.

gedalin 04-19-2003 01:52 PM

edalzell,

I have the same PERL5LIB so this is apparently not the problem. For an experiment I have just downloaded Perl 5.8.0 from http://www.serverlogistics.com and installed. Everything works fine (so far). I do not know what has been changed though.

edalzell 04-19-2003 02:20 PM

I just installed it as well and I still don't have anything under /Library/Perl/darwin.

Now, is it possible that when I removed that directory (to make sure it was clean) I caused the problem?

gedalin 04-19-2003 02:27 PM

If you installed Perl from serverlogistics it is probably ok, since it puts Perl in /System/Library/Perl thus overwriting the original distribution. The Apple directions say that their Perl puts everything in /Library/Perl and the /System/... is simply ignored. See if you have /Library/PerlBackup with something like perl....tar.gz. Make sure that it is /usr/bin/perl (the original binary is overwritten).

edalzell 04-19-2003 02:35 PM

I do have a backup, but it will be a backup of my previous 5.8 installation.

When I run 'perl -v' I get:
dyld: perl can't open library: /Library/Perl/darwin/CORE/libperl.dylib (No such file or directory, errno = 2)
Trace/BPT trap


So it looks like my perl path is wrong.

How can I fix it?

gedalin 04-19-2003 02:40 PM

Which perl is it ? Try /usr/bin/perl -v. And try /usr/local/bin/perl -v.

gedalin 04-19-2003 03:11 PM

I did 'sudo mv /Library/Perl /Library/Perl_old' and perl -v worked.

edalzell 04-20-2003 01:26 AM

Strange thing...when I do 'which perl' I get the one in /usr/local/bin, which returns me the above error.

When I run /usr/bin/perl, everything works fine.

What's the deal? Should I just remove the ones in /usr/local?

Why does one work and one not?

edalzell 04-20-2003 01:35 AM

Well, I moved the perl stuff that was in /usr/local to /usr/bin and it doesn't work there either.

Must be how it was built.

Any ideas?

Thanks

gedalin 04-20-2003 02:14 AM

You should have removed the perl from /usr/local/bin and everything would be ok. Now you have to reinstall Perl from your serverlogistics package. It will put the right thing in /usr/bin.

edalzell 04-20-2003 01:02 PM

Thanks!
 
OK...never again will I attempt to compile things by hand. I will just wait until eithe Apple updates or some smart people put together a nice installer.

I seem to be working now!!
Wahoo!!


All times are GMT -5. The time now is 05:38 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Site design © IDG Consumer & SMB; individuals retain copyright of their postings
but consent to the possible use of their material in other areas of IDG Consumer & SMB.