SUMMARY: Problems running CyrAdm - SOLVED
Rob Siemborski
rjs3 at andrew.cmu.edu
Tue Apr 22 11:43:25 EDT 2003
This looks good, I've committed it.
-Rob
On Tue, 22 Apr 2003, Nikola Milutinovic wrote:
> Hi all.
>
> DESCRIPTION
> -----------
> Just to recap, the problem was that running "cyradm" on Perl-5.8.0 belched an
> error saying that there was an undefined symbol "Perl_sv_setsv" in "IMAP.so".
>
> The same modules and the same "cyradm" on Perl-5.6.1 ran just fine (I had some
> quirks with authentication, but Ken helped me sort things out).
>
> PROBLEM SOURCE
> --------------
> It took me some time to track the problem, but here it is. "Perl_sv_setsv" is a
> Perl function specific to Perl 5.6. It doesn't exist under 5.8.0 and there are
> no macros to "bridge the gap". The idea, if I understand correctly, is to use
> "sv_setsv()" which will be expanded via macro into what the actual platform uses.
>
> For 5.6.1 "sv_setsv" expands to "Perl_sv_setsv", while for 5.8.0 it expands to
> "Perl_sv_setsv_flags". Normally, "IMAP.so" with such a symbol reference couldn't
> be loaded and thus the failure.
>
> SOLUTION
> --------
> I manually edited IMAP.xs and changed two lines holding "Perl_sv_setsv" to
> "sv_setsv" and recompiled. Then I placed newly created "IMAP.so" into Perl
> directory and it is working.
>
> As far as I can see "IMAP.xs" is the only file with this, so here is a diff
> output (sorry guys, I don't have GNU diff), I hope you can use it.
>
> PATCH
> -----
> FILE: cyrus-imapd-2.1.12/perl/imap/IMAP.xs
> 605c605,606
> < Perl_sv_setsv(aTHX_ pcb, av_shift(av));
> ---
> > /* Perl_sv_setsv(aTHX_ pcb, av_shift(av)); */
> > sv_setsv(aTHX_ pcb, av_shift(av));
> 608c609,610
> < Perl_sv_setsv(aTHX_ pcb, av_shift(av));
> ---
> > /* Perl_sv_setsv(aTHX_ pcb, av_shift(av)); */
> > sv_setsv(aTHX_ pcb, av_shift(av));
>
> I hope someone else can test it and post a real patch. I haven't tested it under
> 5.6.1 yet, but from what I've seen it should work.
>
> Nix.
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456
Research Systems Programmer * /usr/contributed Gatekeeper
More information about the Info-cyrus
mailing list