John E. Malmberg wrote:
Abe Timmerman wrote:

Hi all,

Blead on VMS is still not building. This is on the hp-testdrive machine SPE180:

CC/DECC/NOANSI_ALIAS /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/
NoList/float=ieee/ieee=denorm/Define=PERL_CORE DOIO.C

                if (UNLINK(s))
....................^
%CC-W-NOTCONSTQUAL, In this statement, the referenced type of the pointer value "(s)" is const, but the referenced type of the target of this assignment is not.
at line number 1838 in file USER1:[ABELTJE.PERL-CURRENT]DOIO.C;1

This requires fixing in multiple places.

perl.h, util.c, and embed.fnc, and this seems to require a running perl to rebuild proto.h

There is also an ext/Devel.PPPort/parts/embed.fnc that has a reference. A look at this file shows that it appears to be a few generations behind embed.fnc.

This will get the build to the next compiler warning which is the VMS specific code in mg.c.

The VMS specific code is modifying what the compiler has been told is a pointer to a constant, instead of making a copy and then modifying it.

It is quite possible that the Perl_my_getenv() could actually return a pointer to non-writable memory, so if this compiler warning is suppressed here, it could lead to an access violation at run time.

-John
[EMAIL PROTECTED]
Personal Opinion Only


3472c3472
< I32 unlnk (char*);
---
> I32 unlnk (const char*);
835c835
< Ap    |I32    |unlnk          |NN char* f
---
> Ap    |I32    |unlnk          |NN const char* f
1566c1566
< Perl_unlnk(pTHX_ char *f)     /* unlink all versions of a file */
---
> Perl_unlnk(pTHX_ const char *f)       /* unlink all versions of a file */

Reply via email to