Subject: | Missing linking to stdc++ library |
Hi,
While creating a Debian package of this module, I saw that the shared ELF object is missing a link to the C++ standard library.
Here is the patch I use to allow your module to pass its own tests:
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -12,7 +12,7 @@
($] >= 5.005 ? ## Add these new keywords supported since 5.005
(ABSTRACT_FROM => 'lib/Set/IntervalTree.pm', # retrieve abstract from module
AUTHOR => 'Ben Booth <benbooth@gmail.com>') : ()),
- LIBS => [''], # e.g., '-lm'
+ LIBS => ['-lstdc++'], # e.g., '-lm'
DEFINE => '-Isrc', # e.g., '-DHAVE_SOMETHING'
CC => $CC,
LD => '$(CC)',
Please, apply it in your sources.
With out it, make test gives:
make -j1 test TEST_VERBOSE=1
make[1] : on entre dans le répertoire « /home/vdanjean/debian/mainteneur/libset-intervaltree-perl/build-area/libset-intervaltree-perl-0.10 »
Running Mkbootstrap for Set::IntervalTree ()
chmod 644 "IntervalTree.bs"
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
# Failed test 'use Set::IntervalTree;'
# at t/fetch-nearest.t line 3.
# Tried to use 'Set::IntervalTree'.
# Error: Can't load '/home/vdanjean/debian/mainteneur/libset-intervaltree-perl/build-area/libset-intervaltree-perl-0.10/blib/arch/auto/Set/IntervalTree/IntervalTree.so' for module Set::IntervalTree: /home/vdanjean/debian/mainteneur/libset-intervaltree-perl/build-area/libset-intervaltree-perl-0.10/blib/arch/auto/Set/IntervalTree/IntervalTree.so: undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE at /usr/lib/x86_64-linux-gnu/perl/5.22/DynaLoader.pm line 187.
# at t/fetch-nearest.t line 3.
# Compilation failed in require at t/fetch-nearest.t line 3.
# BEGIN failed--compilation aborted at t/fetch-nearest.t line 3.
&Set::IntervalTree::constant not defined! at t/fetch-nearest.t line 8.
# Looks like you planned 9 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 255 just after 1.
t/fetch-nearest.t .....
1..9
not ok 1 - use Set::IntervalTree;
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 9/9 subtests
[...]