develooper Front page | perl.perl5.porters | Postings from November 2003

Re: [perl #24471] gv.c: identifier "copy" is undefined

From:
Nicholas Clark
Date:
November 14, 2003 14:31
Subject:
Re: [perl #24471] gv.c: identifier "copy" is undefined
Message ID:
20031114223037.GR6287@plum.flirble.org
On Fri, Nov 14, 2003 at 10:15:07AM +0100, Rafael Garcia-Suarez wrote:
> jim@rrsl.rsmas.miami.edu (via RT) wrote:
> > 
> > Since I installed IRIX 7.4.1m compiler updates I cannot build
> > perl (either 5.8.1 or 5.8.2).  I get an error compiling gv.c.
> > 
> > How do I workaround or fix this compilation problem?
> > I don't see anything in README.irix about this issue.
> > 
> > I used IRIX 7.4m compilers to build and install perl 5.8.0.
> 
> I'd say it's a bug with your C preprocessor.
> 
> Can you try the modification below, to see whether it solves your problem?
> (basically it only expands a CAT2 macro)
> 
> 
> ==== //depot/perl/pp.h#54 - /opt/p4/perl/pp.h ====
> @@ -385,7 +385,7 @@
>     changed SV* ref to SV* tmpRef */
>  #define RvDEEPCP(rv) STMT_START { SV* tmpRef=SvRV(rv);      \
>    if (SvREFCNT(tmpRef)>1) {                 \
> -    SvRV(rv)=AMG_CALLun(rv,copy);      \
> +    SvRV(rv)=amagic_call(rv,&PL_sv_undef,copy_amg,AMGf_noright | AMGf_unary) \
>      SvREFCNT_dec(tmpRef);                   \
>    } } STMT_END
>  

If that just moved the error further on, what happens with the build if

a: you edit config.h to remove these lines:

#if 42 == 1
#define CAT2(a,b)	a/**/b
#define STRINGIFY(a)	"a"
		/* If you can get stringification with catify, tell me how! */
#endif

b: you replace those lines, and add a #error directive inside them

Nicholas Clark



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About