In article <p04320401b5ad5cc9c0e9@[192.168.56.173]>, "Craig A. Berry"
<[EMAIL PROTECTED]> writes:
> When attempting a threaded build of perl@6409 with DEC C 6.2, it quit
> with the following complaint on av.c:
>
> E extern int Perl___notused
> 3 50254 (void)SvREFCNT_inc(sv);
> ..................1
> %CC-E-BIFPROTO, (1) In this statement, the built-in function,
> "__ATOMIC_INCREMENT_LONG", requires a prototype declaration from
> <builtins.h>.
>
> E ((thr->TSv)=(SV*)(sv), ((thr->TSv) &&
> __ATOMIC_INCREMENT_LONG(&(((thr->TSv))->sv_refcnt))), (SV *)(thr->T
> E Sv))
> 2 50255 }
>
>
> The following seems to fix it, but I have no idea whether that's
> really the best place to put it. I didn't see an obvious place in
> vmsish.h and putting it in thread.h seemed to have no effect. Any
> thoughts? Has this head always been available on VMS, or do we need
> a wrapper checking for OS or compiler version?
>
I *know* that the __ATOMIC_(IN|DE)CREMENT_LONG is not available for
DECC/VAX, VMS7.1 and compiler version (*mumble*).
We probably should use _ADAWI which is available for both VAX and AXP
although for some reason the number of leading underscores differ.
And, of course, it does words not longwords. Do we use ref counts >64K?
--
Drexel University \V --Chuck Lane
======]---------->--------*------------<-------[===========
(215) 895-1545 _/ \ Particle Physics
FAX: (215) 895-5934 /\ /~~~~~~~~~~~ [EMAIL PROTECTED]