From: demerphq
Sent: Friday, July 18, 2014 7:40 AM

The above shows what goes wrong. Makemaker decides that PERL_LIB is "../../../../" instead of "/home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4"

below is the diff of the two Makefiles, but the relevant part is as follows:

-PERL_LIB = /home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4
-PERL_ARCHLIB = /home/yorton/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/x86_64-linux
+PERL_LIB = ../../../../lib
+PERL_ARCHLIB = ../../../../lib

I am guessing that MakerMaker decides that is being used as part of building perl, and that it should use it as the location for its header files. I know there is special logic in MakeMaker for this kind of purpose.

I didn't know that.
If we could get a handle on precisely how to detect that this problem might arise, then we could probably have Inline issue a warning that "things might go awry, and if they do then you should move the script to a different (sane) location".

I tried running your demo script on Windows (as try.pl) in C:/git_tree/perl/Porting with perl-5.14.0, EU-MM-6.62 and it still worked fine for me. Might there be a perlbrew component to this issue ? (I'm not at all familiar with perlbrew. I just build my perls the old fashioned way and call them via different shell/batch scripts.)

I see that you're running EU-MM-6.57_05. If you think it's worth the effort I guess you could see if updating to EU-MM-6.62 fixes the problem - or do any other digging you think might be productive. (It's actually a bit interesting.)
Otherwise we can just settle for the "Don't do that" solution ;-)

Cheers,
Rob

Reply via email to