[Fwd: Re: PM post on Makefile.PL FAIL for missing libraries]

[email protected] (Michael G Schwern)
Newsgroups perl.makemaker,perl.cpan.testers.discuss
Message-ID <[email protected]>
CPAN testers requests the opinion of someone with MakeMaker / C compiler fu.
They foolishly asked me. :)

Anyone have a thought?


-------- Original Message --------
Subject: Re: PM post on Makefile.PL FAIL for missing libraries
Date: Mon, 24 Sep 2007 19:03:17 -0400
From: David Golden <[email protected]>
To: CPAN Testers Discuss <[email protected]>
CC: Michael G Schwern <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>

On 9/24/07, Barbie <[email protected]> wrote:
> >   die "Required library not installed: libfoo\n";
>
> I would prefer the author didn't force that text, as it implies they are
> doing their own checking for a library, which is not necessarily the
> same as how a compiler would load the library. The better way is to be
> able to parse the compiler output and detect the warning that the
> library is missing.

That makes sense, but requires parsing compiler output for error
messages for missing libraries -- and actually, a missing library is
probably going to fail compilation due to missing headers anyway.  And
then how do you tell if a missing header is really a library problem
or just a typo?

  #include <sdtio.h>

> > >   m/No library found for -l([-\w]+)/g
> >
> > Should I add that to CPAN::Reporter as well?  If so, I'll squeak it in
> > before 1.00.  How portable is that across compilers?
>
> It was working for gcc and Visual Studio, I don't have others so can't
> say whether it is truly portable. If we encourage this it might throw up
> other formats.

Looking into it -- that seems to be a Makefile.PL output from
libraries in LIBS not being found -- generated from a lot of deep
magic buried in ExtUtils::LibList::Kid.  (Which is probably why it's
portable.  And I don't think that Module::Build offers any comparable
capability, either.

Further, the warning is actually this:
    Note (probably harmless): No library found for -lfoo

So is it harmless or not?  I guess it depends on whether make fails,
which might or might not be due to a missing library.  Should a
harmless missing library and a .xs syntax error cause a report to be
thrown away?

Also, at least for CPAN::Reporter, I'd have to add capabilities to
CPAN and CPAN::Reporter to retain output from each phase to the next
so that if "make" fails, I can go back and parse PL output for the "no
library" string.  That's not terribly hard (Andreas and I have already
discussed tacking it onto the CPAN::Distribution object), but it's
more than the trivial addition of a quick regex that I had
anticipated.

> I think we are in agreement that these reports should not be sent, but
> need to find a suitable method to detect the reason for the failure and
> accepting that missing libraries are legitimate reasons for abandoning
> the report.

I've copied Schwern since I'm not sure if he's on the
cpan-testers-discuss list and I think we need the opinion of someone
with more EUMM/compiler-fu...

David


-- 
I have a date with some giant cartoon robots and booze.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.