Rosenbaum, Larry M. writes:
> > > 2) I tried to compile the rules to see how much speed increase I
> could
> > > get, but it didn't work.  After running sa-compile and uncommenting
> the
> > > Rule2XSBody plugin, I got the following error:
> > >
> > > # spamassassin --lint
> > > ld.so.1: /usr/local/bin/spamassassin: fatal: relocation error: file
> > >
> /var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/CompiledR
> > > egexps/body_0/body_0.so: symbol
> > > Mail_SpamAssassin_CompiledRegexps_body_0_scan17: referenced symbol
> not
> > > found
> > > Killed
> > >
> > > This is with rc2 on Solaris 8.  I haven't tried it with rc3 yet
> because
> > > it takes about 3 hours to compile on our development system.
> > 
> > Again, sounds like some kind of -R related issue.  However, this
> *should*
> > work since this module is simply built using the ExtUtils::MakeMaker
> > support for building XS modules.  Are you able to build XS modules
> > (e.g. HTML::Parser) from source ok on that system?
> 
> I have no trouble compiling other XS Perl modules.
> 
> It doesn't seem to be a problem finding the dynamic libraries:
> 
> # ldd /var/lib/spamassassin/compiled/3.002000/auto/Mail/
> SpamAssassin/CompiledRegexps/body_0/body_0.so
>         libc.so.1 =>     /usr/lib/libc.so.1
>         libdl.so.1 =>    /usr/lib/libdl.so.1
>         /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
> 
> It's more a matter of finding the symbols:
> 
> # ldd -r /var/lib/spamassassin/compiled/3.002000/auto/Mail/
> SpamAssassin/CompiledRegexps/body_0/body_0.so
>         libc.so.1 =>     /usr/lib/libc.so.1
>         libdl.so.1 =>    /usr/lib/libdl.so.1
>         /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
>         symbol not found: main
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: PL_markstack_ptr
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: PL_stack_sp
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: PL_sv_yes
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: PL_stack_base
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_newSVpvn_share
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_av_push
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_sv_2pvutf8
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_newAV
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_sv_2mortal
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found:
> Mail_SpamAssassin_CompiledRegexps_body_0_scan17
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_croak
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_newRV
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_form
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_get_sv
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_sv_2pv_flags
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)
>         symbol not found: Perl_newXS
> (/var/lib/spamassassin/compiled/3.002000/auto/Mail/SpamAssassin/Compiled
> Regexps/body_0/body_0.so)

Those Perl_* symbols are because you're not linking against libperl.so.
but Mail_SpamAssassin_CompiledRegexps_body_0_scan17 should be appearing.
could you open a bug about this -- and about the spamc LD_RUN_PATH build
issue?

--j.

Reply via email to