Abe Timmerman wrote:
After applying this patch I get this error with MMK:
CC/DECC
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=GLOBALS.obj/NoList/
FLOAT=G_FLOAT/Define=PERL_CORE GLOBALS.C
*/
%VCG-W-BADPSECT, The program section(psect) specified by this statement
has conflicting 'nowrite' attributes with another definition of the same
program section.
At line number 42 in DISK$USER_2:
[TIMMERMAN.KLAD.PERL-CURRENT]GLOBALS.C;1.
%VCG-I-SUMMARY, Completed with 0 error(s), 1 warning(s), and
0 informational messages.
At line number 42 in DISK$USER_2:
[TIMMERMAN.KLAD.PERL-CURRENT]GLOBALS.C;1.
Thanks for trying to keep the VAX fires burning. To pursue this, I
think you'd need to do a debug build and look through globals.lis to
see where the conflicting definitions are coming from.
I've now got the globals.lis file. What am I looking for (remember I don't
know any C)? Just give me a pointer and I'll try to analyze.
First we need to see the line that it is complaining about, which may
have actually started before line number 42.
It should have a declaration of a variable.
The error message is showing the end of a comment. Looking at global.c,
I can see why. This indicates that the problem is actually in perlapi.h
or something that it included. perlapi.h includes perlvars.h.
So based on the way that the C compiler flagged the problem, it should
be in the last variable actually declared by compiled code in perlvars.h
or perlapi.h if there is a declaration that I missed there.
Then we have to find all the other places that this variable is
declared, and see if they match.
In one place, the variable is marked "nowrite", and in the other it is
marked writable.
I would normally look for an "#ifdef VAX" or similar around one of the
definitions, as otherwise this should be affecting ALPHA and I64 builds,
except that I can not find any in the *.h files.
That search did show that there is a potential unrelated bug in thread.h
where code is conditionally compiled for OpenVMS Alpha, but not for
OpenVMS I64, which should be using the same settings.
I suspect something global was changed, and a VAX specific definition
somewhere was not. But I can not find a .h file with VAX specific
definitions in it.
-John
[EMAIL PROTECTED]
Personal Opinion Only