9175224
4194672
While I was at it, I also tried a few more 64-bit versions on
other machines (5.10.0, 5.10.1, 5.12.22). All exhibited the same
wonkiness mentioned earlier. So it clearly seems to be a 64-bit incompatibility.
Two more notes:
(1) In your Makefile.PL you have a line
LIBS => $Config{cc} eq 'gcc' || $Config{cc} eq 'cc' ? ['-lstdc++'] :
+ '',
With some of the perls I had tried, $Config{cc} was set to
an absolute path '/usr/local/bin/gcc', or to 'gcc ' (yes,
with a trailing space - not sure where this came from, I didn't
knowingly put it there). So, your check didn't match, and libstdc++ wasn't
linked in, which in turn led to the usual undefined reference to '__gxx_personality_v0' when
Dynaloader tried to load the .so file.
Something like the following might be slightly more robust:
LIBS => $Config{cc} =~ /\bg?cc\s*$/ ? ['-lstdc++'] : '',
(2) When trying to build Devel-Size-0.72 for 5.12.2 with a more
recent and picky gcc (v4.3.2), I got the following errors:
Size.xs: In function 'UV thing_size(const SV*, char* (*)[8192])':
Size.xs:552: error: invalid conversion from 'const void*' to 'void*'
Size.xs:553: error: invalid conversion from 'const void*' to 'void*'
Size.xs:554: error: invalid conversion from 'const void*' to 'void*'
make: *** [Size.o] Error 1
Explicitly casting thing to non-const void* 'fixed' it:
/* Is there something hanging off the arylen element? */
if (AvARYLEN((void*)thing)) {
if (check_new(tv, AvARYLEN((void*)thing))) {
total_size += thing_size(AvARYLEN((void*)thing), tv);
__________
And here the 'perl -V's, just in case:
1)
2)
|