On Mon, Dec 03, 2007 at 09:43:51PM -0500, Koen van der Drift wrote: > First of all, thanks for all the help and suggestions. Little by > little I am undestanding more of the whole building process. > > Now for the results :) > > Using JF's test, I don't see any errors, ie nm doesn't print any > symbol names. (BTW, could that script be useful in the validation code > of fink?) Using oTool -L on all the libs, I now see, with Dan's patch > that much more libs are linked. [...] > Unfortunately, I still get the same error: > > t/1....Can't load '/sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle' for module > Bio::Emboss: dlopen(/sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle, 1): Symbol not > found: _XS_Bio__Emboss_ajStrTokenCount > Referenced from: /sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle > Expected in: dynamic lookup > > This is with the line > > BEGIN { delete $ENV{PERL_DL_NONLAZY}; }; > > NOT commented out (the code as is). And based on Peter's comment, that > means that there is still something missing [...] > Actually, if I *do* comment out that line, the error changes to: > > t/1....Can't load '/sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle' for module > Bio::Emboss: dlopen(/sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle, 2): Symbol not > found: _XS_Bio__Emboss_ajStrTokenCount > Referenced from: /sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio- > Emboss-5.0.0.1/blib/arch/auto/Bio/Emboss/Emboss.bundle > Expected in: dynamic lookup > at t/1.t line 11 > > Note the 2) instead of the 1) > > So then I thought, maybe there are symbols or libs missing in > Emboss.bundle? oTool -L on that file shows: > > /sw/src/fink.build/bio-emboss-pm588-5.0.0.1-1/Bio-Emboss-5.0.0.1/blib/ > arch/auto/Bio/Emboss/Emboss.bundle: > /sw/lib/EMBOSS/libnucleus.5.dylib (compatibility version 6.0.0, > current version 6.0.0) > /sw/lib/EMBOSS/libajax.5.dylib (compatibility version 6.0.0, current > version 6.0.0) > /sw/lib/EMBOSS/libajaxg.5.dylib (compatibility version 6.0.0, current > version 6.0.0) > /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current > version 1.0.0) > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current > version 111.0.0) > > That seems ok to me, since ajStrTokenCount is part of libajax.
Careful...the missing symbol is _XS_Bio__Emboss_ajStrTokenCount not just ajStrTokenCount. "XS" are symbols from compiled perl modules themselves, not the libs they link. On my 10.3 machine (to which I back-ported the 10.4/5 emboss packages and added my emboss.patch hacks but did not change the PERL_DL_NONLAZY line), bio-emboss-pm586 passes all its tests. That symbol is defined within the Emboss.bundle (one of the results of 'nm Emboss.bundle | grep _XS_Bio__Emboss_ajStrTokenCount' lists it as "T"). In particular, it's supplied by the deprecated_Emboss_str.o file in the bio-emboss-pm586 build dir ("nm" on that file reports it as "T"). Do you have that .o file at all? In the actual compiler command that creates the Emboss.bundle file (a few lines before the tests are run), is that .o included in the list of .o files? Bug that doesn't affect anything: in the bio-emboss-pm.patch, $EMB_EXT_LIBS should be "[EMAIL PROTECTED]@/lib" (need to pass the actual linker flag, not just the pathname where the libs are). dan -- Daniel Macks [EMAIL PROTECTED] http://www.netspace.org/~dmacks ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel