in reply to What's happened to Yaswi?

error blah DynaLoader blah blah

means run ldd ...blib/arch/auto/Language/Prolog/Yaswi/Low/Low.so and adjust LD_LIBRARY_PATH

Replies are listed 'Best First'.
Re^2: What's happened to Yaswi?
by Eliya (Vicar) on Aug 24, 2011 at 12:42 UTC

    I think adjusting LD_LIBRARY_PATH won't help here, as the problem rather seems to be that .../Low.so isn't even linked against the Prolog library libswipl.so in the first place (which then of course leads to the "undefined symbol: PL_open_foreign_frame" error).

    The link command does add a link-time library search path for swi-prolog

    cc -shared -O2 -g -L/usr/local/lib -fstack-protector Low.o callba +ck.o callperl.o hook.o perl2swi.o swi2perl.o plconfig.o argv.o query. +o vars.o context.o engines.o o +paque.o -o ../blib/arch/auto/Language/Prolog/Yaswi/Low/Low.so \ -lgmp -lrt -lreadline -lncurses -lm -lrt -ldl -L/usr/lib/sw +i-prolog/lib/i386/ ^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^

    but the actual link instruction -lswipl, which should follow it, is missing...   even though the library is listed as "PLLIB: -lswipl" in the SWI-Prolog configuration check.

    The message "No library found for -lpl" suggests that it's looking for libpl.so instead of libswipl.so.

      Yes, that was the problem, the name used for the library got changed on SWI-Prolog 5.10.

      I will release a new version shortly.

        Hi Salva

        Thank you so much.

        Please could you advise me when it is released?

        Regards

        Steve

      I think adjusting LD_LIBRARY_PATH won't help here, as the problem rather seems to be that .../Low.so isn't even linked against the Prolog library libswipl.so in the first place (which then of course leads to the "undefined symbol: PL_open_foreign_frame" error).

      If that were the case, there would be no .so file generated, there would be no .so file to try to load

        If that were the case, there would be no .so file generated

        That's not correct. The above link command would surely create the Low.so file (which is the XS binding), but that library won't have libswipl.so listed as a dependency.  In other words, the dynamic linker wouldn't even go looking for the latter library, no matter what LD_LIBRARY_PATHs you tell it to look in...