Sat, 22 Dec 2007 (00:54 +0100 UTC) Vincent Lefevre wrote:
On 2007-12-21 10:34:00 -0500, robert delius royar wrote:
I compiled perl 5.10.0 with the same configuration that macports 5.8.8 used. [I have the perl5.8 port set as the primary perl interpretor and have created links in /usr/local/[bin|lib|share] to make it so that other software finds macports perl before the system one--including apache.]
When I tried to run a module through 5.10.0 from CPAN (Net::TiVo), 5.10.0 failed because a bundle from macports (p5-digest-sha1) referenced a symbol not in the 5.10.0 version: [...]
I'd say that you probably need to recompile every module (well, those that don't contain just Perl code) against 5.10. BTW, that may be a reason to have a single Perl port installed (activated). Otherwise the risk of using some module with a different Perl version for which it has been built would be too high IMHO.
I have the latest version of perl5.8.8 (from macports) installed: % port installed perl5.8 The following ports are currently installed: perl5.8 @5.8.8_0+darwin_8+shared+threads % port outdated perl5.8 No installed ports are outdated However, occasionally I have had to abort installs of other software because that software requires perl5.8 and tries to install it. I would not want that to be the case with software wrt perl5.10 because that could hose a system with a lot of perl 5.8 modules that have been compiled and linked into bundles.
dyld: lazy symbol binding failed: Symbol not found: _Perl_Tstack_sp_ptr Referenced from: /opt/local/lib/perl5/site_perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA1/SHA1.bundle Expected in: dynamic lookup
dyld: Symbol not found: _Perl_Tstack_sp_ptr Referenced from: /opt/local/lib/perl5/site_perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA1/SHA1.bundle Expected in: dynamic lookup
Trace/BPT trap
I suspect there may be a number of these. Perl_Tstack_sp_ptr() was in CORE in 5.8. I believe that it is part of the pre-5.8 legacy code and in there for compatibility with verions that expected functions for what are array or incrementable pointer variables.
It is defined in the 5.8.8 source in perlapi.h but not defined anywhere in the 5.10.0 source.
I don't know what you try to mean exactly, but Digest-SHA1 2.11 is compatible with Perl 5.10 as you can see:
The API has changed and the symbol Perl_Tstack_sp_ptr is not in the current API. It was in 5.8.8 and before. The discussion I have been able to Google points to this symbol being a problem if old code is not recompiled with the new libperl. I think moving up to perl5.10 is more drastic for the user than was 5.6 to 5.8. Somehow the user should be warned that all bundles (I suppose mod-perl and its companionions, also) will need to be reinstalled or recompiled for 5.10 Because macports does not add any earlier directories to @INC, the user would just see these errors as not being able to locate a module, rather than the missing symbol error. Still, it means a bit of work for someone who has a number of bundles. The user should be told that ahead of time.
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
-- Dr. Robert Delius Royar Associate Professor of English Morehead State University Morehead, Kentucky