Subject: | Undefined Symbols when compiled against a threaded Perl |
When testing against bleadperl, I ran into the following error when testing.
t/1-basic....
# Failed test 'use Devel::Hints;'
# in t/1-basic.t at line 4.
# Tried to use 'Devel::Hints'.
# Error: Can't load
'/home/steve/.cpan_blead/build/Devel-Hints-0.11/blib/arch/auto/Devel/Hints/Hints.so'
for module Devel::Hints:
/home/steve/.cpan_blead/build/Devel-Hints-0.11/blib/arch/auto/Devel/Hints/Hints.so:
undefined symbol: CopFILEGV_set at
/usr/local/lib/perl5/5.9.3/i686-linux-thread-multi-64int-ld/DynaLoader.pm
line 201.
The problem is that CopFILEGV_set is not defined with a threaded Perl.
The following change got the Hints.xs to compile, but I'm not sure its
what you're looking for.
GV *
cop_filegv(count=0, value=NULL)
I32 count
GV* value
CODE:
#ifdef USE_ITHREADS
ACCESSOR( CopFILE_set, CopFILE );
#else
ACCESSOR( CopFILEGV_set, CopFILEGV );
#endif
OUTPUT:
RETVAL
In fact, it fails the following tests.
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/1-basic.t 3 768 18 3 16.67% 4 10 12
t/2-write.t 1 256 19 3 15.79% 6 19