Hi Dimitry,
perl Makefile.PL DL_LOAD_FLAGS=1
was the solution! No reinstall or anything needed.
Thank you so much!
Ingo
PS: I got syntax errors with this (even when using the right location of
Prima.so). Is this to be run in bash or perl?
openat(AT_FDCWD,
"/usr/local/lib/x86_64-linux-gnu/perl/5.34.0/auto/Prima/Prima.so",
O_RDONLY|O_CLOEXEC) = 5
On 29.05.24 3:17 PM, Dmitry Karasik wrote:
Hi all
Sorry no clue either. But I'd do this:
1) remove all prima and P:D:P stuff, make sure no lingering .so files, then
clean reinstall.
2) nm won't help you here because the linking is done by dlopen() during
runtime, so
try this instead:
$ strace perl -Iblib/arch -Iblib/lib -MPDL::Drawing::Prima -e 1 2>&1 | grep
Prima.so
openat(AT_FDCWD,
"/usr/local/lib/x86_64-linux-gnu/perl/5.34.0/auto/Prima/Prima.so",
O_RDONLY|O_CLOEXEC) = 5
if it cannot find Prima.so then there's something wrong with the installation.
If however it can but cannot bind dynamically it might be that the system is so
old that
Prima couldn't detect that it needs an explicit RTLD_GLOBAL flag. Check this
then:
$ grep dl_load_flags Prima/Config.pm
dl_load_flags => 1,
so if it is not 1, you can try to recompile Prima with this:
perl Makefile.PL DL_LOAD_FLAGS=1
(but this is a really ancient stuff, I think I only used it on Sun/IRIX back
then..)
/dk
On Mon, May 27, 2024 at 10:06:00AM +0000, Ed . wrote:
Hi Ingo,
I don’t know either. Dmitry, any ideas? I re-attach the nm output files.
Best regards,
Ed
________________________________
From: Ingo Schmid<ingo...@gmx.at>
Sent: Monday, May 27, 2024 10:49:04 AM
To: Ed .<ej...@hotmail.com>; pdl-devel<pdl-devel@lists.sourceforge.net>;
perldl<pdl-gene...@lists.sourceforge.net>; David Mertens<dcmertens.p...@gmail.com>
Subject: Re: [Pdl-devel] PDL::Drawing::Prima
Hi Ed,
after further investigation, I think the Makefile is OK. I have essentially to
environments where I need this to run.
1) modern regularly updated linux boxes
2) servers with older stable releases (many kind of different software running,
not easily updated)
Both have perlbreew installations using perl-5.36.0 (with different aliases.
On the modern boxes, P:D:P works fine, while on the server it complains about unresolved
symbols (gimme_the_mate) during make test or apc_get_core_version when perl -Mblib -e
"use PDL::Drawing::Prima;", Both have Prima 1.73 installed.
The build log is inconspicuous, I can load the Utils module.
Checking if you have Prima 1.57 ... Yes (1.73)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.64)
Checking if you have Test::More 0.88 ... Yes (1.302190)
Checking if you have PDL 2.037 ... Yes (2.089)
Building and testing PDL-Drawing-Prima-0.18
I am at a complete loss here. I attached the output of nm
On 24.05.24 5:59 PM, Ed . wrote:
Hi Ingo,
I think the relevant part of the attached Makefile.PL is (as changed by you):
if ($Prima::Config::Config{dlname}){
my ($primalib,
$primapath)=fileparse($Prima::Config::Config{dlname});
$hash{LIBS}->[0] = " -L$primapath -lPrima "
}
You’ve changed it from an append (.=) to an assign, which might explain why it
doesn’t work. Is there a reason you did that? Also, why did you remove the
existing code below?
$hash{LIBS}[0] .= " $Prima::Config::Config{libs}"
if $Prima::Config::Config{libs};
What errors did you get? Are you on Ubuntu? Because I’m using Ubuntu, and
building P:D:Prima here doesn’t need to link Prima - the dynamic linker takes
care of it at runtime.
Best regards,
Ed
________________________________
From: Ingo Schmid via
pdl-devel<pdl-devel@lists.sourceforge.net><mailto:pdl-devel@lists.sourceforge.net>
Sent: Thursday, May 23, 2024 1:05:37 PM
To: pdl-devel<pdl-devel@lists.sourceforge.net><mailto:pdl-devel@lists.sourceforge.net>;
perldl<pdl-gene...@lists.sourceforge.net><mailto:pdl-gene...@lists.sourceforge.net>; David
Mertens<dcmertens.p...@gmail.com><mailto:dcmertens.p...@gmail.com>
Subject: [Pdl-devel] PDL::Drawing::Prima
Hi,
this module does not find Prima.so (from Prima).
Makefile.PL needs to lock at Prima::Config::Config{dlname} and set the correct
LIBS field. I failed to make it work.
I got the parts necessary extracted, but make seems to ignore it. This results
in unresolved symbols from Prima.
Ingo
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel