[Raleigh-talk] Integrating latest threads::shared(3pm) into older perl 5.8.5

James Olin Oden james.oden at gmail.com
Mon Mar 12 08:41:58 PDT 2007


So far I've got it building (replaced ext/threads/shared tree, and
updated global MANIFEST), and it builds, but when I run the tests I
get:

   perl: symbol lookup error: ../lib/auto/threads/shared/shared.so:
undefined symbol: SvREFCNT_inc_void


I did some research and it turns out this internal perl API symbol was
introduced in perl 5.9.x.  Looking at the source for threads::shared
version 1.07 (which is what I'm using) there is a ppport.h file that
has a redefinition for SvREFCNT_inc_void() if it does not exist.  If I
build this module outside of the perl sources, it actually uses this
redefinition and seems to work fine(otherwise my script I was testing
would not work...the goal here was to chase down a memory leak in a
script of mine that turned out to be in threads::shared).  When I try
to build it from the perl sources it does not ssem to use the ppport.h
file.

So my question is simply what am I doing wrong?  More specifically
theough what do I need to tweak so the ppport.h file will get used?

I know of course I can just patch the stinken shared.xs file to have
the redefinition directly inline, but I'd like to avoid that.

Thanks...james


More information about the Raleigh-talk mailing list