Philippe Schaffnit schrieb:
Hi!
I'm in favour of hacking the heuristics, as this seems to do the trick
for me (appart from a warning in the tests...), 8-)
Where does 'perl -V' get the info from? Isn't it available for you to
look up?
It is: use Config; print $Config::Config{libperl}."\n";
But:
I don't understand what's happening in the Makefile.PL exactly. The big
if() block around line 83 is only entered if dynperl is set. (Is it, in
your case? I bet not.) Provided you're not on OS2, it'll take
$Config{libperl} and replace its extension with .so or equivalent.
(Remember: $dynperl is set if we get here)
Of course, your perl being static, libperl.so (or so) isn't found. If I
hack that part not to replace the extension, some dynamic libraries
might not be found any more.
If $dynperl isn't set, the -lperl is removed from the linker flags - I
suppose -lperl wouldn't succeed without a shard lib.
I have no idea how this is supposed to pick up a perl library at all if
perl is static...
What I would do if I was a little more confident in my understanding of
this is the following. (Did I mention I hate C and everything that comes
with it, compilers, linkers, system libraries?)
- Move the library searching code into a subroutine.
- in the elsif($dynperl) branch (line 86 ff), I would keep the extension
replacement and call the library searching subroutine with the modified
file name.
- in the else { part (line 132 right now), add a $libperl =
library_searching_sub($Config{libperl})
I have not idea whether this is even remotely a good idea. I don't want
to put this into a release and see it fail everywhere for reasons I
don't understand. The last preflight either passed tests for everyone
(and now fails on various platforms!) or it was largely ignored. I fear
the latter, so making a preflight phase isn't going to help. Perhaps a
developer release to CPAN would help.
I don't know whom to ask about this either. Audrey hasn't been overly
responsive recently and, more importantly, claims to have no knowledge
of the C stuff at all. Could somebody please step up?
Steffen