[EMAIL PROTECTED] wrote:
On Sun, 28 Oct 2007 13:59:56 +0100, <[EMAIL PROTECTED]> wrote:

On Sun, 28 Oct 2007 00:22:48 +0200, Craig A. Berry <[EMAIL PROTECTED]> wrote:

At 6:58 PM +0200 10/25/07, [EMAIL PROTECTED] wrote:

On Thu, 25 Oct 2007 05:24:16 +0200, Craig A. Berry <[EMAIL PROTECTED]> wrote:


You'll get listing files which would tell you a lot about what the
compiler is or is not seeing.  Upgrading the compiler would probably
be a lot less work.  And yes, I understand you've pursued this as far
as you want to, which is fine.


Well, you never know...  Sorry, I don't have gnu diff on the vms box.


But now I am stuck or rather have the eperts here tell me the DECC specialties:

A400> mmk
CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/Define=PERL_CORE VMS.C

/*  End of vms.c */
...................^
%CC-E-OPENBRACE, Missing "{".
at line number 13240 in file TMP:[AI26.perl-current]vms.c;2

Compiler is lost because of an earlier problem.

/*  End of vms.c */
...................^
%CC-E-BADSTMT, Invalid statement.
at line number 13240 in file TMP:[AI26.perl-current]vms.c;2

Same as above.

   FILE *fp = fdopen(fd, mode);
........................^
%CC-W-NOTCONSTQUAL, In the initializer for fp, the referenced type of the pointer value "mode" is const, but the referenced type of
the target of this assignment is not.
at line number 10194 in file TMP:[AI26.perl-current]vms.c;2

fdopen is prototyped wrong, or something overriding it is prototyped wrong. Are you up to date on your CRTL patches?

If you compile with the debug option in configure, it will produce a compiler listing that will show if fdopen has been replaced with a macro.

It will also have the version of the CRTL headers and the compiler in the predefines at the bottom of the listing, which may be needed to come up with a work around, if it is a bug in the headers.

         const __align (LONGWORD) int spare[8] = {0};
.....................................^
%CC-E-PARMINIT, In the definition of the function "__align", a parameter declaration cannot include an initializer.
at line number 13213 in file TMP:[AI26.perl-current]vms.c;2

Seems to me __align is unknown to my C.  But how to fix?


As you noted, your compiler is too old to support the __align qualifier.

It may work to put temporarily put the following line before the first reference. For a longer term fix, it needs to be surrounded by an #if testing your compiler version or earlier.

#define __align(a)

Well, it's been a little quiet on this.  Any tips?  I don't have
an idea really what all this stuff at the end of vms.c is supposed
to do.  Can I just scrap it (via #define)?

I would not recommend scrapping it. What it is doing is looking up how the C library is configured, and some Perl options and setting up perl to match.

This code is executed before the main() function. For the options that are valid on ALPHA, this is required.

Many of the options do not apply to VAX though.

But looking at it found a bug in testing the currently undocumented VMS_UNLINK_ALL_VERSIONS feature setting.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to