New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Install Issue, I::CPP Install Fails Due to EU::CppGuess Bug #38
Comments
I am the one trying to get RPerl installed, please ask me if you need any additional information about my operating system, etc. |
A year or so ago we felt strongly that ExtUtils::CPPGuess would be a good separation of concerns for the Inline:::CPP installation process. The idea was that IL::CPP shouldn't have to provide what another module is doing a better, more portable, and more generally useful job of doing already. Even if that module were falling short in some way (the theory was) community support for that module would drive its development at a better rate than "one-off" solutions baked into Inline::CPP. Furthermore, even if we had to do the fixing of ExtUtils::CPPGuess ourselves, it would be better to fix that module so that the community could benefit rather than patching Inline::CPP such that only users of that distribution might benefit. Unfortunately this has not worked out as well as I had hoped. ExtUtils::CPPGuess turns out to need a bit of a rewrite in order to be better extensible, and more portable. And the community (of which I am a part) just haven't stepped in to improve it. The best immediate solution is to modify Inline::CPP so that the ExtUtils::CPPGuess module becomes a "recommends" rather than "requires", and so that Makefile.PL is able to recover gracefully in its absence. The right way to do this is to modify the meta produced by Makefile.PL, and also to modify the modules bundled into inc/ so that they have better fall-back support. Doing so will not be difficult, but will probably have to wait until I get back from vacation in a week or so. I'll try to prioritize it as my non-$work time permits sometime soon after I return. |
@daoswald Also, sorry for interrupting your vacation, I hope y'all have a really fun time. :-) We look forward to working with you when you are back home. |
@daoswald |
@daoswald |
Ping |
@daoswald https://s3.amazonaws.com/archive.travis-ci.org/jobs/191275673/log.txt
|
I haven't had time to investigate. Realistically I'm not sure when I will
have time. If there's someone who is interested in submitting a patch I'm
happy to roll it out. If there is someone who is interested in asking Neil
Watkiss for comaint I'm also happy to support such a request.
…On Thu, Jan 12, 2017 at 2:32 PM, William N. Braswell, Jr. < ***@***.***> wrote:
@daoswald <https://github.com/daoswald>
This bug is still causing fatal failures in Perl v5.24 on Travis, what can
I do in order to help get a fix released???
https://s3.amazonaws.com/archive.travis-ci.org/jobs/191275673/log.txt
t/011_makemaker.t ..... 1/1
Failed test 'build with ExtUtils::MakeMaker' at t/011_makemaker.t line 12. Makefile.PL
output ======================================== Checking if your kit is
complete... Looks good Generating a Unix-style Makefile Writing Makefile
for CppGuessTest Writing MYMETA.yml and MYMETA.json
======================================== make output
======================================== make[1]: Entering directory
`/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker' cp lib/CppGuessTest.pm blib/lib/CppGuessTest.pm Running
Mkbootstrap for CppGuessTest () chmod 644 "CppGuessTest.bs"
"/home/travis/perl5/perlbrew/perls/5.24/bin/perl" -MExtUtils::Command::MM
-e 'cp_nonempty' -- CppGuessTest.bs blib/arch/auto/CppGuessTest/CppGuessTest.bs
644 "/home/travis/perl5/perlbrew/perls/5.24/bin/perl"
"/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/ExtUtils/xsubpp"
-typemap '/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/ExtUtils/typemap'
-typemap '/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker/typemap' CppGuessTest.xs > CppGuessTest.xsc mv
CppGuessTest.xsc CppGuessTest.c cc -c -fwrapv -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xc++ -O2 -DVERSION="0.01" -DXS_VERSION="0.01" -fPIC
"-I/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/x86_64-linux/CORE"
CppGuessTest.c rm -f blib/arch/auto/CppGuessTest/CppGuessTest.so cc
-shared -O2 -L/usr/local/lib -fstack-protector -o
blib/arch/auto/CppGuessTest/CppGuessTest.so -lstdc++ CppGuessTest.o \ \ chmod
755 blib/arch/auto/CppGuessTest/CppGuessTest.so make[1]: Leaving
directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker' ======================================== make
test output ======================================== make[1]: Entering
directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker' "/home/travis/perl5/perlbrew/perls/5.24/bin/perl"
-MExtUtils::Command::MM -e 'cp_nonempty' -- CppGuessTest.bs
blib/arch/auto/CppGuessTest/CppGuessTest.bs 644 PERL_DL_NONLAZY=1
"/home/travis/perl5/perlbrew/perls/5.24/bin/perl"
"-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches;
test_harness(0, 'blib/lib', 'blib/arch')" t/*.t # Failed test 'use
CppGuessTest;' # at t/001_load.t line 6. # Tried to use 'CppGuessTest'. #
Error: Can't load '/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so'
for module CppGuessTest: /home/travis/.cpanm/work/
1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/
blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol:
_ZNSs4_Rep20_S_empty_rep_storageE at /home/travis/perl5/perlbrew/
perls/5.24/lib/5.24.0/x86_64-linux/DynaLoader.pm line 193. # at
t/001_load.t line 6. # Compilation failed in require at t/001_load.t line
6. # BEGIN failed--compilation aborted at t/001_load.t line 6. # Looks
like you failed 1 test of 1. t/001_load.t .. Dubious, test returned 1
(wstat 256, 0x100) Failed 1/1 subtests Can't load
'/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so'
for module CppGuessTest: /home/travis/.cpanm/work/
1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/
blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol:
_ZNSs4_Rep20_S_empty_rep_storageE at /home/travis/perl5/perlbrew/
perls/5.24/lib/5.24.0/x86_64-linux/DynaLoader.pm line 193. at
t/002_base.t line 6. Compilation failed in require at t/002_base.t line 6. BEGIN
failed--compilation aborted at t/002_base.t line 6. # Looks like your
test exited with 255 before it could output anything. t/002_base.t .. Dubious,
test returned 255 (wstat 65280, 0xff00) Failed 2/2 subtests Test Summary
Report ------------------- t/001_load.t (Wstat: 256 Tests: 1 Failed: 1) Failed
test: 1 Non-zero exit status: 1 t/002_base.t (Wstat: 65280 Tests: 0
Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned
2 tests but ran 0. Files=2, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys
+ 0.03 cusr 0.00 csys = 0.06 CPU) Result: FAIL Failed 2/2 test programs.
1/1 subtests failed. make[1]: *** [test_dynamic] Error 255 make[1]:
Leaving directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-
CppGuess-0.11/t/makemaker' ======================================== Looks
like you failed 1 test of 1.
t/011_makemaker.t ..... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
Test Summary Report
t/011_makemaker.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Files=3, Tests=4, 3 wallclock secs ( 0.02 usr 0.01 sys + 1.74 cusr 0.36
csys = 2.13 CPU)
Result: FAIL
Failed 1/3 test programs. 1/4 subtests failed.
make: *** [test_dynamic] Error 1
FAIL
! Installing ExtUtils::CppGuess failed. See /home/travis/.cpanm/work/1484252832.9493/build.log
for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'ExtUtils::CppGuess' is not
installed
! Bailing out the installation for Inline-CPP-0.74.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#38 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA2_-dqLZdx9kVTorpINccftUDnxtyY4ks5rRpvtgaJpZM4I-2PF>
.
--
David Oswald
daoswald@gmail.com
|
Okay I will go down both paths you have suggested. |
I wanted to confirm. Is this bug report in the correct place? It looks to me the issue is with ExtUtils::CppGuess (which I also maintain). However, I fired up a Win7 VirtualBox guest (my only available Windows environment) and installed both EU::MM and Inline::CPP successfully. |
Yes, I believe this is a bug in ExtUtils::CppGuess, I could not find a repo to file an issue for EU::CG so I filed the issue in this repo instead. |
The repo for EU::CppGuess is at https://github.com/tsee/extutils-cppguess . I am also co-maint on it, and the most recent releaser, so it is still under slightly active maintenance. My intent in due course will be to make EU::CppG data-driven rather than an if-ladder, and to pull in all the detection stuff that's currently also in I::CPP so that everything is in one place. Contributions are of course welcome. |
@mohawk2 "The best immediate solution is to modify Inline::CPP so that the ExtUtils::CPPGuess module becomes a "recommends" rather than "requires", and so that Makefile.PL is able to recover gracefully in its absence. The right way to do this is to modify the meta produced by Makefile.PL, and also to modify the modules bundled into inc/ so that they have better fall-back support. Doing so will not be difficult, but will probably have to wait until I get back from vacation in a week or so. I'll try to prioritize it as my non-$work time permits sometime soon after I return." |
Yes it does. I cannot bring myself to believe it is a good idea that |
Well, that comment was two years ago, and in my absence of follow-through I
accept that what might have seemed reasonable to me back then could be
deemed unreasonable by another competent contributor with the capacity to
act far more quickly than I.
…On Tue, Sep 25, 2018, 12:12 PM mohawk2 ***@***.***> wrote:
Yes it does. I cannot bring myself to believe it is a good idea that
Inline::CPP and EU:CppG independently do C++ compiler detection, slightly
differently.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#38 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA2_-ZSXFt98r96ZSH8u65batuStaIDkks5uenIfgaJpZM4I-2PF>
.
|
Ideas evolve! Now the pressure is on me to actually follow through with this :-) |
Closing this, since 0.13+ should fix this or at least provide more info. If it is in fact not fixed, please re-open and provide the info that the new, more verbose tests provide! |
@galactus6x |
This is on an RPerl user's machine (not mine), Ubuntu v12.04 w/ Perlbrew installed Perl v5.20.2, g++ 4.8.1, EU::MM 7.18 both system-wide & single-user via Perlbrew, the error appears near'ish to the bottom of the big paste below, here is a snippet for convenience:
$ cpanm -v ExtUtils::CppGuess
... STUFF HAPPENS ...
t/011_makemaker.t ..... 1/1
_# Failed test 'build with ExtUtils::MakeMaker'
_# at t/011_makemaker.t line 12.
... MORE STUFF AS SEEN IN PASTE DUMP BELOW ...
This is a major problem, can't install Inline::CPP or RPerl for new users! :-(
The text was updated successfully, but these errors were encountered: