Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^3: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??

by syphilis (Canon)
on Dec 31, 2012 at 07:01 UTC ( #1011009=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
in thread Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??

When you installed B::Hooks::OP::Annotation, you would have built and installed (among other things) a file named:

/usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int/auto/B/Hooks/OP/Annotation/Annotation.dll.

Devel::Pragma assumes that /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int/auto/B/Hooks/OP/Annotation/libAnnotation.a would also have been built and installed ... but I *now* think that didn't happen.
So, one option is to build an import lib named libAnnotation.a (in the same directory as Annotation.dll).
You can do this by cd'ing to the directory that contains Annotation.dll and running:

gendef Annotation.dll dlltool --kill-at --input-def Annotation.def --output-lib libAnnotatio +n.a
(At least that's what I would run on MS Windows with MinGW, and I think it would be the same command for Cygwin.)
You probably already have dlltool (my Cygwin does) and there's a gendef package available for Cygwin if you don't already have it.

You then need to repeat the same procedure for B::Hooks::OP::Check - ie create a libCheck.a for the Check.dll that was built and installed when you installed B::Hooks::OP::Check.

With any luck, Devel::Pragma will then build straight out of the box for you. Then there's the fun of working out what the bug is, and whose responsibility it is.
Welcome to the wonderful world of ExtUtils::Depends.

Cheers,
Rob


Comment on Re^3: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
Download Code
Re^4: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
by mascip (Pilgrim) on Jan 15, 2013 at 21:12 UTC

    Two weeks and two computer crashes later (on my other computer), here i am. My reasons for using Windows have been re-assessed, and i will simply stop and go back to Linux.

    I have made a bit more effort to install Devel::Pragma though, in case it will help someone with the same problem.

    First, gendef was not installed on my computer and i wasn't told during B::Hooks::OP::Annotation installation. Whose reponsibility was it to tell me? Can i/should i send a bug report somewhere?

    So, i installed it and did what you said. Now the "libAnnotation.a bug" is fixed! Thank you!

    But i encounter a new obstacle: chmod doesn't always work in Cygwin. It is explained here, as well as a way to fix it: http://cygwin.com/faq/faq-nochunks.html#faq.using.chmod.

    But for people like me who don't know these technicalities, there are 3-4 pages documentation that you have to read, if you want to fix chmod. I just don't have the time now, as i'm going back to Linux. I think that this kind of information should be included in this page: http://search.cpan.org/~rjbs/perl-5.16.2/README.cygwin
    I have sent a draft paragraph and send it to this page's authors.

      Thank you so much for this!! After reading your post, I finally able to install Method::Signatures (this is on cygwin's perl 5.14.2)

        Wow, i'm really really glad it helped someone, thanks for writing it here! It took my several days and i didn't even make it to the end.

        I'm back under Linux and it's so comfortable to have most CPAN modules install seamlessly :-)

Re^4: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
by mindthemonkey (Initiate) on Feb 06, 2013 at 11:49 UTC
    Thanks, building the two lib_.a files for Annotation and Check fixed this issue for me and I can build Method::Signatures now.

    Out of interest, (and I know you've mentioned the wonderful world of ExtUtils::Depends, but I'll ask anyway :) why?

    From reading about dlltool it sounds like this is building an interface library for the exported functions from the real dll. Is this just a missing artefact from the the B::Hooks::OP::_ builds on cygwin then? .a files don't appear to be common to the perl modules I have on my system, most just have a .dll.
Re^4: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
by Anonymous Monk on Feb 23, 2013 at 22:36 UTC
    Thank you so much for posting this! I was battling the same problem and stumbled across this post and it really saved the day. I was finally able to install Method::Signatures in Cygwin Perl 5.14.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1011009]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2014-09-18 03:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (105 votes), past polls