GNV x86 diff

OpenVMS x86 Field Test questions, reports, and feedback.
Post Reply

Topic author
danielg
Newbie
Posts: 4
Joined: Sat Jul 17, 2021 2:16 am
Reputation: 0
Status: Offline

GNV x86 diff

Post by danielg » Tue Dec 06, 2022 7:50 am

Is there anyone building GNV for VMSx86 now?
I am looking for GNV diff.exe for x86 for testing purposes.

Daniel


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by sms » Tue Dec 06, 2022 10:18 am

Code: Select all

> Is there anyone building GNV for VMSx86 now?

   I doubt it.  Certainly not I.  But, ...

> I am looking for GNV diff.exe for x86 for testing purposes.

   I tried that with E9.2, before that field test ended (and with it, my
access to VMS on x85_64).  There were a couple of (cross-)compiler
failures.  One involved a "long double", which I'd expect could be
worked around:

#%CC-I-INCLUDEINFO, Header file
 "ITS$DKA0:[SYS0.SYSCOMMON.X86_XTOOLS$ROOT.][SYSLIB]DECC$RTLDEF.TLB;1"
 included.
at line number 42 in module WCHAR of text library
 X86_XTOOLS$ROOT:[SYSLIB]DECC$RTLDEF.TLB;1

#include <stdarg.h>
.
%CC-I-INCLUDEINFO, Header file
 "ITS$DKA0:[SYS0.SYSCOMMON.X86_XTOOLS$ROOT.][SYSLIB]DECC$RTLDEF.TLB;1"
 included.
at line number 45 in file
 ITS$DKA0:[UTILITY.SOURCE.DIFF.diffutils-3_3b_vms.lib]printf-args.h;1
va_arg for f80 not yet implemented

UNREACHABLE executed
 at 
LLVM$:[LLVM.STABLE.llvm-342.lib.Target.X86]X86ISelLowering.cpp;96
:
11045
!

   If it weren't for the other problem, I'd've tried disabling the code
to handle "long double" (which I doubt that "diff" needs).  But regex.c
(apparently a compiler test disguised as useful code) did this:

REGEX                           Source Listing                 
 29-JUN-2022 14:54:39  VSI C X7.4-547-50V6F              Page 1
V1.0                                                           
 21-MAR-2013 23:21:35  regex.c;1

Integrity check error:  Illegal result type (INT8) for operand 2 of
 STORE tuple at 08618788
    STORE.UINT8 (086186A0+56, 08618758 : &ADDRESS=08618788,
 LOCATOR={14157:2-21}, PREV_TUPLE=08618758, NEXT_TUPLE=086187E0, MARK1,
            EFFECTS=081AAFE0 : NULL)
Compilation terminated because of GEM integrity check errors


   I gather that there was a later cross-tools update, but, as a peon, I
was not eligible for it, so I don't know if either problem has been
fixed there.  My bug report (SPS-646, 2022-06-22) status is still "Under
Investigation", so I know nothing more.  Especially involving any native
compiler, none of which I've seen.

   My expectations would be low, but if you're in an adventurous mood:

      http://antinode.info/dec/sw/diffutils.html


jreagan
VSI Expert
Master
Posts: 135
Joined: Tue Dec 01, 2020 8:40 am
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by jreagan » Wed Dec 07, 2022 3:02 am

/L_DOUBLE=64 turns all those "long double"s into "double"s. Didn't that work? And by the way, we'll never support f80 floating. Future native compilers will do f128 for "long double" just like Alpha and Itanium.

/SWITCH=NOCHECK turns off the GEM Integrity Checker. The bug in the C frontend has been there for years (assigning a signed char into an unsigned char but didn't put an explicit conversion in the GEM CIL stream). The shipping Alpha and Itanium compilers are "release" compilers which do not run the integrity checked by default. The x86 cross-compiler is built as a "debug" compiler so it does run the integrity checked by default.


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by sms » Wed Dec 07, 2022 6:59 am

Code: Select all

> [...] Didn't that work? [...]

   I don't recall seeing either of those (apparently useful) suggestions
before, so I hadn't tried them.  If VSI ever again grants me the right
to use VMS on x86_64, I'll probably run the experiment.  I'm not holding
my breath, however.

   In the mean time, for anyone who is able to do it, I'd expect a
command like the following (untested by me) to add those options to the
compiler commands when building Diffutils from my kit:

      mms /macro = CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK"

> [...] we'll never support f80 [...]

   Fine with me.  I don't recall asking anyone to use f80.  (Nor did I
know what it was (or that it was a thing) when I got the message
originally.)

   Thanks for the additional info.
Added in 15 minutes 35 seconds:

Code: Select all

>       mms /macro = CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK"

   Or, to be more complete for the cross-tools stuff (still untested):

      mms /macro = (ARCH=X86_64, -
       COM1=SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM, -
       CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK")


jreagan
VSI Expert
Master
Posts: 135
Joined: Tue Dec 01, 2020 8:40 am
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by jreagan » Wed Dec 07, 2022 8:05 am

The /L_DOUBLE=64 qualifier is documented and is an option you'll find in clang and gcc as well.

The /SWITCH qualifier is an undocumented qualifier that can set many different internal developer options. In this case, NOCHECK flips the CHECK flag in the compiler to off.

I already know about this failure and it is on the list to resolve.


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by sms » Wed Dec 07, 2022 12:54 pm

Code: Select all

> The /L_DOUBLE=64 qualifier is documented [...]

   I saw that, but only after I learned of its existence (here). 
Nothing in the error message(s) pointed me to it.

> The /SWITCH qualifier is an undocumented qualifier [...]

   I saw that, too, but, again, nothing in the error message(s) pointed
me to it.  (Nor, because it's undocumented, would a vague suggestion
about it have been much help.)

> I already know about this failure and it is on the list to resolve.

   Swell.  Sadly, my field-test PAKs for E9.2 expired 30-SEP-2022, so,
until someone at VSI deems me worthy to possess PAKs which would allow
me to play with this stuff (on V9.2?), my interest will be limited.

   But again, Thanks for the additional info.


Topic author
danielg
Newbie
Posts: 4
Joined: Sat Jul 17, 2021 2:16 am
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by danielg » Sun Dec 11, 2022 4:36 am

I got some time to try to build, I got these problems. diff3.exe, sdiff.exe and cmp.exe runs but diff.exe fails.

Code: Select all

LINK /notraceback /map = [-.SRC.X86_64L]DIFF.MAP /cross_reference /full   /executable = [-.SRC.X86_64L]DIFF.EXE          [.X86_64L]D
IFF.OBJ          , sys$disk:[-.src.X86_64L]DIFF.OLB /library     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library        , sys$disk:
[-.vmslib.X86_64L]VMSLIB.OLB /library /include = vms     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library
%ILINK-W-COMPWARN, compilation warnings
        module: VMS
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMSLIB.OLB;1
%ILINK-W-NUDFSYMS, 21 undefined symbols:
%ILINK-I-UDFSYM,        RPL_REGCOMP
%ILINK-I-UDFSYM,        RPL_REGEXEC
%ILINK-I-UDFSYM,        RPL_REGFREE
%ILINK-I-UDFSYM,        RPL_RE_COMPILE_PATTERN
%ILINK-I-UDFSYM,        RPL_RE_SEARCH
%ILINK-I-UDFSYM,        RPL_RE_SET_SYNTAX
%ILINK-I-UDFSYM,        S_ISCTG
%ILINK-I-UDFSYM,        S_ISDOOR
%ILINK-I-UDFSYM,        S_ISMPB
%ILINK-I-UDFSYM,        S_ISMPC
%ILINK-I-UDFSYM,        S_ISMPX
%ILINK-I-UDFSYM,        S_ISNAM
%ILINK-I-UDFSYM,        S_ISNWK
%ILINK-I-UDFSYM,        S_ISOFD
%ILINK-I-UDFSYM,        S_ISOFL
%ILINK-I-UDFSYM,        S_ISPORT
%ILINK-I-UDFSYM,        S_ISWHT
%ILINK-I-UDFSYM,        S_TYPEISMQ
%ILINK-I-UDFSYM,        S_TYPEISSEM
%ILINK-I-UDFSYM,        S_TYPEISSHM
%ILINK-I-UDFSYM,        S_TYPEISTMO

$ gdiff
%SYSTEM-F-CALLUNDEFSYM, Call using undefined function symbol

  Improperly handled condition, image exit forced by last chance handler.
    Signal arguments:   Number = 0000000000000003
                        Name   = 0000000000003434
                                 000000008004EB20
                                 000000000000001B
    Register dump:
    RAX = 0000000000000100  RDI = 0000000000100001  RSI = 0000000000003434
    RDX = 0000000000004014  RCX = 0000000000004000  R8  = 00000000000062CC
    R9  = FFFFFFFF802161C0  RBX = 000000000000A660  RBP = 000000007ACE9920
    R10 = 0000000000006304  R11 = 0000000000000216  R12 = 0000000000002088
    R13 = 0000000000000000  R14 = 000000007ACE989C  R15 = 000000007ACE9898
    RIP = 000000008004EB20  RSP = 000000007ACE9638  SS  = 000000000000001B
/Daniel


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by sms » Sun Dec 11, 2022 10:00 am

Code: Select all

> I got some time to try to build, [...]

   Perhaps you might also find the time to provide a more useful problem
description.  That is, one which includes some basic information.

   "build" _what_, exactly, _how_, exactly, on _what_, exactly, using
which versions of which tools?

> %ILINK-W-COMPWARN, compilation warnings

   I can't see them from here.

> %ILINK-I-UDFSYM, RPL_REGCOMP

   Finding "regcomp" (and its friends) in the source should be easy
enough.  I can't see what's in your "config.h", either.

> %ILINK-I-UDFSYM, S_ISCTG

   I can't see what's in your "stat.h", either.

> %SYSTEM-F-CALLUNDEFSYM, Call using undefined function symbol

   After "%ILINK-W-NUDFSYMS, 21 undefined symbols", that would not
amaze me.


Topic author
danielg
Newbie
Posts: 4
Joined: Sat Jul 17, 2021 2:16 am
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by danielg » Mon Dec 12, 2022 2:28 am

Yes, you are right.
I downloaded http://antinode.info/ftp/diffutils/diff ... 8a_vms.zip.
I am using VSI C X7.4-547 (GEM 50V6F) for X86 on OpenVMS IA64 V8.4-2L1.

I tried to build another time with CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK" and was more successful.

Code: Select all

$ sh def
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.VMS]
$ mms /macro = (ARCH=X86_64, COM1=SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM, CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK")...

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  ( GETOPT, OPTARG,
 OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]VMS.OBJ /define = (HAVE_CONFIG_H
=1  , _LARGEFILE  ) [-.VMSLIB]VMS.C

#define va_copy gl_va_copy
................^
%CC-W-MACROREDEF, The redefinition of the macro "va_copy" conflicts with a current definition because one is object-like and the oth
er is function-like.  The redefinition is now in effect.
at line number 2452 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]config.h;1
%MMS-F-ABORT, For target [.X86_64L]VMS.OBJ, CLI returned abort status: %X10B91260.
%MMS-F-ABORT, For target [-.VMSLIB.X86_64L]VMSLIB.OLB, CLI returned abort status: %X10EE8034.
%MMS-F-ABORT, For target [-.SRC.X86_64L]CMP.EXE, CLI returned abort status: %X10EE8034.

----

With /ignore=warning I was able to link and run diff.exe even with some warnings.

$ mms /macro = (ARCH=X86_64, COM1=SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM, CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK") /ignore=warning

----

OpenVMS V9.2 X86
$ ty hej1.txt
Hej1
Hej2
Hej3
$ ty hej2.txt
Hej1
Hej5
Hej3
$ gdiff hej1.txt hej2.txt
2c2
< Hej2
---
> Hej5

----

Daniel

[size=85][color=green]Added in     16 minutes 15 seconds:[/color][/size]
Here is most of the output, I cut some parts to get below 60000 characters.

I see these warnings.
%CC-W-MACROREDEF, The redefinition of the macro "va_copy" conflicts with a current definition because one is object-like and the other is function-like.  The redefinition is now in effect.

%ILINK-W-NUDFSYMS, 3 undefined symbols:
%ILINK-I-UDFSYM,        GL_DYNARRAY_AT_FAILURE
%ILINK-I-UDFSYM,        GL_DYNARRAY_EMPLACE_ENLARGE
%ILINK-I-UDFSYM,        GL_DYNARRAY_FINALIZE

$ mms /macro = (ARCH=X86_64, COM1=SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM, CCOPTS="/L_DOUBLE=64 /SWITCH=NOCHECK") /ignore=warning

@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM

  12-DEC-2022 09:03:43

   Destination: [.X86_64L]

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]CONTEXT.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE  ) [-.SRC]CONTEXT.C

          if (LONG_MIN <= TYPE_MINIMUM (time_t)
..............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((time_t)~((time_t)(!(!((time_t)0<(time_t)-1))?(time_t)-1:((((time_t
)1<<((sizeof(time_t)*8)-2))-1)*2+1))))" is being compared with a relational operator to a constant whose value is not great
er than zero.  This might not be what you intended.
at line number 58 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.src]context.c;1
If "''F$Search("[-.SRC.X86_64L]DIFF.OLB")'" .EQS. "" Then LIBRARY/Create [-.SRC.X86_64L]DIFF.OLB
LIBRARY/REPLACE [-.SRC.X86_64L]DIFF.OLB [.X86_64L]CONTEXT.OBJ
If "''F$Search("[-.SRC.X86_64L]DIFF.OLB")'" .EQS. "" Then LIBRARY/Create [-.SRC.X86_64L]DIFF.OLB
LIBRARY/REPLACE [-.SRC.X86_64L]DIFF.OLB [.X86_64L]VERSION.OBJ
[-.SRC.X86_64L]DIFF.OLB updated.
dev_dir = f$environment( "DEFAULT")
set default 'f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")'
set default [-.lib]
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.LIB]
MMS /description = DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16 /Ignore=Warning/Macro=("ARCH=X86_64","COM1=SYS$MANAG
ER:X86_XTOOLS$SYLOGIN.COM","CCOPTS=/L_DOUBLE=64 /SWITCH=NOCHECK")        [-.LIB.X86_64L]DIFFUTILS.OLB
@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM

  12-DEC-2022 09:04:08

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]FNMATCH.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]FNMATCH.C

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(sizeof(char))" is being compared with a relational operator to a co
nstant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(plen)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))" is being compared wi
th a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))<0)?~(((((1?0:(((1?
0:(plen))+((-2147483647-1)))))+(1))<<((sizeof(+(((1?0:(plen))+((-2147483647-1)))))*8)-2))-1)*2+1):((1?0:(((1?0:(plen))+((-2
147483647-1)))))+(0))))" is being compared with a relational operator to a constant whose value is not greater than zero.  This migh
t not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "(plen)" is being compared with an equality operator to a constant w
hose value is negative.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(sizeof(char)))-(1))" is being compared with a relational oper
ator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(sizeof(char))" is being compared with a relational operator to a co
nstant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(plen)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))" is being compared wi
th a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))<0)?~(((((1?0:(((1?
0:(plen))+((-2147483647-1)))))+(1))<<((sizeof(+(((1?0:(plen))+((-2147483647-1)))))*8)-2))-1)*2+1):((1?0:(((1?0:(plen))+((-2
147483647-1)))))+(0))))" is being compared with a relational operator to a constant whose value is not greater than zero.  This migh
t not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "(plen)" is being compared with an equality operator to a constant w
hose value is negative.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(sizeof(char)))-(1))" is being compared with a relational oper
ator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(sizeof(wchar_t))" is being compared with a relational operator to a
 constant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(plen)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))" is being compared wi
th a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))<0)?~(((((1?0:(((1?
0:(plen))+((-2147483647-1)))))+(1))<<((sizeof(+(((1?0:(plen))+((-2147483647-1)))))*8)-2))-1)*2+1):((1?0:(((1?0:(plen))+((-2
147483647-1)))))+(0))))" is being compared with a relational operator to a constant whose value is not greater than zero.  This migh
t not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "(plen)" is being compared with an equality operator to a constant w
hose value is negative.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(sizeof(wchar_t)))-(1))" is being compared with a relational o
perator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1067 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(sizeof(wchar_t))" is being compared with a relational operator to a
 constant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(plen)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))" is being compared wi
th a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(plen))+((-2147483647-1)))))-(1))<0)?~(((((1?0:(((1?
0:(plen))+((-2147483647-1)))))+(1))<<((sizeof(+(((1?0:(plen))+((-2147483647-1)))))*8)-2))-1)*2+1):((1?0:(((1?0:(plen))+((-2
147483647-1)))))+(0))))" is being compared with a relational operator to a constant whose value is not greater than zero.  This migh
t not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "(plen)" is being compared with an equality operator to a constant w
hose value is negative.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1

            NEW_PATTERN;
............^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(sizeof(wchar_t)))-(1))" is being compared with a relational o
perator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 1074 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]fnmatch_loop.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]FNMATCH.OBJ
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]GETOPT1.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]GETOPT1.C
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]GETOPT1.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]GETTIME.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]GETTIME.C

  return _GL_CMP (a.tv_sec, 0) + (!a.tv_sec & !!a.tv_nsec);
.........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(a.tv_sec)" is being compared with a relational operator to a consta
nt whose value is not greater than zero.  This might not be what you intended.
at line number 74 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]timespec.h;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]GETTIME.OBJ
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]MALLOC.OBJ /define = (HAV
E_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]MALLOC.C
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]MALLOC.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]MALLOCA.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]MALLOCA.C

  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
.......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(n))+(((-2147483647-1))-(plus)))))-(1))" is being compa
red with a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 52 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]malloca.c;1

  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
.......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(n))-(1))" is being compared with a relational operator to a c
onstant whose value is not greater than zero.  This might not be what you intended.
at line number 52 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]malloca.c;1

  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
.......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(n)" is being compared with a relational operator to a constant whos
e value is not greater than zero.  This might not be what you intended.
at line number 52 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]malloca.c;1

  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
.......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(plus))+(((-2147483647-1))-(n)))))-(1))" is being compa
red with a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 52 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]malloca.c;1

  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
.......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(n))+(plus))))-(1))" is being compared with a relationa
l operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 52 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]malloca.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]MALLOCA.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]NSTRFTIME.OBJ /define = (
HAVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]NSTRFTIME.C

            negative_number = t < 0;
..............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "t" is being compared with a relational operator to a constant whose
value is not greater than zero.  This might not be what you intended.
at line number 1205 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]nstrftime.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]NSTRFTIME.OBJ
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]RAWMEMCHR.OBJ /define = (
HAVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]RAWMEMCHR.C
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]RAWMEMCHR.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]REALLOCARRAY.OBJ /define
= (HAVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]REALLOCARRAY.C

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(*(&nbytes)))-(1))" is being compared with a relational operat
or to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(size)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(nmemb)" is being compared with a relational operator to a constant
whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(4294967295))+(size))))-(1))" is being compared with a
relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(size))-(1))" is being compared with a relational operator to
a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(size))-(1))<0)?~(((((1?0:(size))+(1))<<((sizeof(+(size))*8
)-2))-1)*2+1):((1?0:(size))+(0))))" is being compared with a relational operator to a constant whose value is not greater t
han zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(size))+(0))))-(1))" is being compared with a relationa
l operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(size))+(0))))-(1))<0)?~(((((1?0:(((1?0:(size))+(0))
))+(1))<<((sizeof(+(((1?0:(size))+(0))))*8)-2))-1)*2+1):((1?0:(((1?0:(size))+(0))))+(0))))" is being compared with a relati
onal operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(nmemb))-(1))" is being compared with a relational operator to
 a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(nmemb)-1" is being compared with a relational operator to a constan
t whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(nmemb))+(0))))-(1))" is being compared with a relation
al operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(nmemb))+(0))))-(1))<0)?~(((((1?0:(((1?0:(nmemb))+(0
))))+(1))<<((sizeof(+(((1?0:(nmemb))+(0))))*8)-2))-1)*2+1):((1?0:(((1?0:(nmemb))+(0))))+(0))))" is being compared with a re
lational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1

  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(size)-1" is being compared with a relational operator to a constant
 whose value is not greater than zero.  This might not be what you intended.
at line number 31 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]reallocarray.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]REALLOCARRAY.OBJ
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]XFREOPEN.OBJ /define = (H
AVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]XFREOPEN.C
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]XFREOPEN.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]XMALLOC.OBJ /define = (HA
VE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]XMALLOC.C

      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
..........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(*(&n)))-(1))" is being compared with a relational operator to
 a constant whose value is not greater than zero.  This might not be what you intended.
at line number 177 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]xmalloc.c;1

      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
..........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((n>>1)+1)" is being compared with a relational operator to a consta
nt whose value is not greater than zero.  This might not be what you intended.
at line number 177 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]xmalloc.c;1

      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
..........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(n))-(1))" is being compared with a relational operator to a c
onstant whose value is not greater than zero.  This might not be what you intended.
at line number 177 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]xmalloc.c;1

      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
..........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(n)" is being compared with a relational operator to a constant whos
e value is not greater than zero.  This might not be what you intended.
at line number 177 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]xmalloc.c;1

      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
..........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(n))+((n>>1)+1))))-(1))" is being compared with a relat
ional operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 177 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]xmalloc.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]XMALLOC.OBJ
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]XVASPRINTF.OBJ /define =
(HAVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]XVASPRINTF.C
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]XVASPRINTF.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]DYNARRAY_RESIZE.OBJ /defi
ne = (HAVE_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB.MALLOC]DYNARRAY_RESIZE.C

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(*(&new_size_bytes)))-(1))" is being compared with a relationa
l operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(element_size)" is being compared with a relational operator to a co
nstant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(size)" is being compared with a relational operator to a constant w
hose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(4294967295))+(element_size))))-(1))" is being compared
 with a relational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(element_size))-(1))" is being compared with a relational oper
ator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(element_size))-(1))<0)?~(((((1?0:(element_size))+(1))<<((s
izeof(+(element_size))*8)-2))-1)*2+1):((1?0:(element_size))+(0))))" is being compared with a relational operator to a const
ant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(element_size))+(0))))-(1))" is being compared with a r
elational operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(element_size))+(0))))-(1))<0)?~(((((1?0:(((1?0:(ele
ment_size))+(0))))+(1))<<((sizeof(+(((1?0:(element_size))+(0))))*8)-2))-1)*2+1):((1?0:(((1?0:(element_size))+(0))))+(0))))"
 is being compared with a relational operator to a constant whose value is not greater than zero.  This might not be what you intend
ed.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(size))-(1))" is being compared with a relational operator to
a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(size)-1" is being compared with a relational operator to a constant
 whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "((1?0:(((1?0:(size))+(0))))-(1))" is being compared with a relationa
l operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(((((1?0:(((1?0:(size))+(0))))-(1))<0)?~(((((1?0:(((1?0:(size))+(0))
))+(1))<<((sizeof(+(((1?0:(size))+(0))))*8)-2))-1)*2+1):((1?0:(((1?0:(size))+(0))))+(0))))" is being compared with a relati
onal operator to a constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1

  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
......^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(element_size)-1" is being compared with a relational operator to a
constant whose value is not greater than zero.  This might not be what you intended.
at line number 45 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.malloc]dynarray_resize.c;1
If "''F$Search("[-.LIB.X86_64L]DIFFUTILS.OLB")'" .EQS. "" Then LIBRARY/Create [-.LIB.X86_64L]DIFFUTILS.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]DIFFUTILS.OLB [.X86_64L]DYNARRAY_RESIZE.OBJ
[-.LIB.X86_64L]DIFFUTILS.OLB updated.
set default 'dev_dir'
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.SRC]
dev_dir = f$environment( "DEFAULT")
set default 'f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")'
set default [-.vmslib]
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.VMSLIB]
MMS /description = DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16 /Ignore=Warning/Macro=("ARCH=X86_64","COM1=SYS$MANAG
ER:X86_XTOOLS$SYLOGIN.COM","CCOPTS=/L_DOUBLE=64 /SWITCH=NOCHECK")        [-.VMSLIB.X86_64L]VMSLIB.OLB
@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM


  12-DEC-2022 09:06:02

   Destination: [.X86_64L]

if (f$search( "X86_64L.DIR;1") .eqs. "") then    create /directory /log [.X86_64L]
sys = f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DEVICE")+    f$parse( "DKA1:[DANIEL.CODE.DIFF.di
ffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")
v_v = f$getsyi( "VERSION")
v_v = f$extract( 1, (f$locate( ".", v_v)- 1), v_v)
if ((v_v .lt. 7) .and. (f$trnlnm( "DECC$CRTLMAP") .eqs. "")) then        define DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
if ((v_v .lt. 7) .and. (f$trnlnm( "LNK$LIBRARY") .eqs. "")) then         define LNK$LIBRARY SYS$LIBRARY:DECC$CRTL.OLB
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  ( GETOPT, OPTARG,
 OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]GETPROGNAME_VMS.OBJ /define = (H
AVE_CONFIG_H=1  , _LARGEFILE  ) [-.VMSLIB]GETPROGNAME_VMS.C
If "''F$Search("[-.VMSLIB.X86_64L]VMSLIB.OLB")'" .EQS. "" Then LIBRARY/Create [-.VMSLIB.X86_64L]VMSLIB.OLB
LIBRARY/REPLACE [-.VMSLIB.X86_64L]VMSLIB.OLB [.X86_64L]GETPROGNAME_VMS.OBJ
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  ( GETOPT, OPTARG,
 OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]VMS.OBJ /define = (HAVE_CONFIG_H
=1  , _LARGEFILE  ) [-.VMSLIB]VMS.C

#define va_copy gl_va_copy
................^
%CC-W-MACROREDEF, The redefinition of the macro "va_copy" conflicts with a current definition because one is object-like and the oth
er is function-like.  The redefinition is now in effect.
at line number 2452 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]config.h;1
If "''F$Search("[-.VMSLIB.X86_64L]VMSLIB.OLB")'" .EQS. "" Then LIBRARY/Create [-.VMSLIB.X86_64L]VMSLIB.OLB
LIBRARY/REPLACE [-.VMSLIB.X86_64L]VMSLIB.OLB [.X86_64L]VMS.OBJ
%LIBRAR-W-COMCOD, compilation warnings in module VMS file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMS.OBJ;1
[-.VMSLIB.X86_64L]VMSLIB.OLB updated.
set default 'dev_dir'
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.SRC]
LINK /notraceback    /executable = [-.SRC.X86_64L]CMP.EXE        [.X86_64L]CMP.OBJ       , sys$disk:[-.src.X86_64L]DIFF.OLB /library
         , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library        , sys$disk:[-.vmslib.X86_64L]VMSLIB.OLB /library /include = vms
     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library
%ILINK-W-COMPWARN, compilation warnings
        module: VMS
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMSLIB.OLB;1

set default 'f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")'
set default [-.src]
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.SRC]

MMS /description = DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16 /Ignore=Warning/Macro=("ARCH=X86_64","COM1=SYS$MANAG
ER:X86_XTOOLS$SYLOGIN.COM","CCOPTS=/L_DOUBLE=64 /SWITCH=NOCHECK")        [-.SRC.X86_64L]DIFF.EXE
@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM


  12-DEC-2022 09:06:06

   Destination: [.X86_64L]

if (f$search( "X86_64L.DIR;1") .eqs. "") then    create /directory /log [.X86_64L]
sys = f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DEVICE")+    f$parse( "DKA1:[DANIEL.CODE.DIFF.di
ffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")
v_v = f$getsyi( "VERSION")
v_v = f$extract( 1, (f$locate( ".", v_v)- 1), v_v)
if ((v_v .lt. 7) .and. (f$trnlnm( "DECC$CRTLMAP") .eqs. "")) then        define DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
if ((v_v .lt. 7) .and. (f$trnlnm( "LNK$LIBRARY") .eqs. "")) then         define LNK$LIBRARY SYS$LIBRARY:DECC$CRTL.OLB
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]DIFF.OBJ /define = (HAVE_
CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE  ) [-.SRC]DIFF.C

  return _GL_CMP (a.tv_sec, 0) + (!a.tv_sec & !!a.tv_nsec);
.........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "(a.tv_sec)" is being compared with a relational operator to a consta
nt whose value is not greater than zero.  This might not be what you intended.
at line number 74 in file DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib]timespec.h;1
LINK /notraceback    /executable = [-.SRC.X86_64L]DIFF.EXE       [.X86_64L]DIFF.OBJ      , sys$disk:[-.src.X86_64L]DIFF.OLB /library
         , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library        , sys$disk:[-.vmslib.X86_64L]VMSLIB.OLB /library /include = vms
     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library
%ILINK-W-COMPWARN, compilation warnings
        module: VMS
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMSLIB.OLB;1
%ILINK-W-NUDFSYMS, 3 undefined symbols:
%ILINK-I-UDFSYM,        GL_DYNARRAY_AT_FAILURE
%ILINK-I-UDFSYM,        GL_DYNARRAY_EMPLACE_ENLARGE
%ILINK-I-UDFSYM,        GL_DYNARRAY_FINALIZE
%ILINK-W-USEUNDEF, undefined symbol GL_DYNARRAY_AT_FAILURE referenced
        section: $CODE$
        offset: %X00000000000227F2
        module: REGEX
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.X86_64L]DIFFUTILS.OLB;1
%ILINK-W-USEUNDEF, undefined symbol GL_DYNARRAY_EMPLACE_ENLARGE referenced
        section: $CODE$
        offset: %X00000000000228A0
        module: REGEX
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.X86_64L]DIFFUTILS.OLB;1
%ILINK-W-USEUNDEF, undefined symbol GL_DYNARRAY_EMPLACE_ENLARGE referenced
        section: $CODE$
        offset: %X0000000000022A6C
        module: REGEX
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.X86_64L]DIFFUTILS.OLB;1
%ILINK-W-USEUNDEF, undefined symbol GL_DYNARRAY_FINALIZE referenced
        section: $CODE$
        offset: %X0000000000022CF7
        module: REGEX
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.lib.X86_64L]DIFFUTILS.OLB;1

set default 'f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")'
set default [-.src]
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.SRC]

MMS /description = DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16 /Ignore=Warning/Macro=("ARCH=X86_64","COM1=SYS$MANAG
ER:X86_XTOOLS$SYLOGIN.COM","CCOPTS=/L_DOUBLE=64 /SWITCH=NOCHECK")        [-.SRC.X86_64L]DIFF3.EXE
@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM


  12-DEC-2022 09:06:10

   Destination: [.X86_64L]

if (f$search( "X86_64L.DIR;1") .eqs. "") then    create /directory /log [.X86_64L]
sys = f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DEVICE")+    f$parse( "DKA1:[DANIEL.CODE.DIFF.di
ffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")
v_v = f$getsyi( "VERSION")
v_v = f$extract( 1, (f$locate( ".", v_v)- 1), v_v)
if ((v_v .lt. 7) .and. (f$trnlnm( "DECC$CRTLMAP") .eqs. "")) then        define DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
if ((v_v .lt. 7) .and. (f$trnlnm( "LNK$LIBRARY") .eqs. "")) then         define LNK$LIBRARY SYS$LIBRARY:DECC$CRTL.OLB
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]DIFF3.OBJ /define = (HAVE
_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE  ) [-.SRC]DIFF3.C
LINK /notraceback    /executable = [-.SRC.X86_64L]DIFF3.EXE      [.X86_64L]DIFF3.OBJ     , sys$disk:[-.src.X86_64L]DIFF.OLB /library
         , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library        , sys$disk:[-.vmslib.X86_64L]VMSLIB.OLB /library /include = vms
     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library
%ILINK-W-COMPWARN, compilation warnings
        module: VMS
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMSLIB.OLB;1

set default 'f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")'
set default [-.src]
show default
  DKA1:[DANIEL.CODE.DIFF.DIFFUTILS-3_8A_VMS.SRC]

MMS /description = DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16 /Ignore=Warning/Macro=("ARCH=X86_64","COM1=SYS$MANAG
ER:X86_XTOOLS$SYLOGIN.COM","CCOPTS=/L_DOUBLE=64 /SWITCH=NOCHECK")        [-.SRC.X86_64L]SDIFF.EXE
@SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM


  12-DEC-2022 09:06:15

   Destination: [.X86_64L]

if (f$search( "X86_64L.DIR;1") .eqs. "") then    create /directory /log [.X86_64L]
sys = f$parse( "DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DEVICE")+    f$parse( "DKA1:[DANIEL.CODE.DIFF.di
ffutils-3_8a_vms.vms]DESCRIP.MMS;16", , , "DIRECTORY")
v_v = f$getsyi( "VERSION")
v_v = f$extract( 1, (f$locate( ".", v_v)- 1), v_v)
if ((v_v .lt. 7) .and. (f$trnlnm( "DECC$CRTLMAP") .eqs. "")) then        define DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
if ((v_v .lt. 7) .and. (f$trnlnm( "LNK$LIBRARY") .eqs. "")) then         define LNK$LIBRARY SYS$LIBRARY:DECC$CRTL.OLB
CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_entries =  (all_entries, except =  (FWRITE, GETOPT,
OPTARG, OPTERR, OPTIND, OPTOPT, STRTOIMAX, STRTOUMAX))   /L_DOUBLE=64 /SWITCH=NOCHECK  /object = [.X86_64L]SDIFF.OBJ /define = (HAVE
_CONFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE  ) [-.SRC]SDIFF.C
LINK /notraceback    /executable = [-.SRC.X86_64L]SDIFF.EXE      [.X86_64L]SDIFF.OBJ     , sys$disk:[-.src.X86_64L]DIFF.OLB /library
         , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library        , sys$disk:[-.vmslib.X86_64L]VMSLIB.OLB /library /include = vms
     , sys$disk:[-.lib.X86_64L]DIFFUTILS.OLB /library
%ILINK-W-COMPWARN, compilation warnings
        module: VMS
        file: DKA1:[DANIEL.CODE.DIFF.diffutils-3_8a_vms.vmslib.X86_64L]VMSLIB.OLB;1


  12-DEC-2022 09:06:19

   ALL done.
Added in 27 minutes 30 seconds:
I am using
VSI DECset Version 12.9 for OpenVMS I64 Systems
VSI Module Management System (MMS) Version 4.0 for OpenVMS I64 Systems


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV x86 diff

Post by sms » Mon Dec 12, 2022 3:14 am

Code: Select all

> I am using VSI C X7.4-547 (GEM 50V6F) for X86 on OpenVMS IA64 V8.4-2L1.

   Thanks for the report.  Which cross-tools kit is that?

      product show product X86_XTOOLS

   "OpenVMS V9.2 X86" suggests that you might have newer stuff than what
I got with E9.2.  Around here, it's "VSI I64VMS X86_XTOOLS E9.2-XG6F". 
(And, as I recall, I had more trouble with the build than you seem to.)


> #define va_copy gl_va_copy
> ................^
> %CC-W-MACROREDEF, The redefinition of the macro "va_copy" conflicts with
> a current definition because one is object-like and the other is
> function-like. The redefinition is now in effect.

   My (tentative, untested) proposal for that would be:

ITS $ gdiff [.vms]config.h;-1 [.vms]config.h
2452c2452,2454
< #define va_copy gl_va_copy
---
> #ifndef va_copy
> # define va_copy gl_va_copy
> #endif

Whether that would be better or worse, I don't know.  (That change might
have caused my "more trouble with the build".  If the redefinition works
better, then you might add "#undef va_copy" before the "#define
va_copy".)

> With /ignore=warning I was able to link and run diff.exe even with
> some warnings.

   While I wait to see V9.2, I'd be interested in any warnings you got
beyond that %CC-W-MACROREDEF.

> $ gdiff hej1.txt hej2.txt
> [...]

   Doesn't look too bad to me.  Good enough for you?

Post Reply