bug-diffutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-diffutils] Diffutils 3.2 v. VMS


From: Steven M. Schweda
Subject: [bug-diffutils] Diffutils 3.2 v. VMS
Date: Mon, 8 Oct 2012 23:46:28 -0500 (CDT)

   I have a VMS adaptation of GNU Diffutils 3.2  It's not thoroughly
tested, but it seems to handle some basic tasks well enough to satisfy
my needs (and those of a few others, I believe).  As usual, it'd be nice
(for me, at least) to get the VMS-specific changes folded into the main
code stream.

   All the code changes should be conditional enough to be harmless on
non-VMS systems.  The changes include the usual VMS-specific builders
and various adaptations to cope with differences between VMS and the
usual GNU environment.  Now that vfork() has been purged from the
main code stream, I needed to re-introduce some of the old code, because
VMS has vfork() but lacks fork().  (Interestingly, while vfork() has
been banished from the actual code, it lingers on in "configure" and
"lib/config.hin".)

   There are still some minor compiler complaints caused by time_t being
unsigned around here:

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_
entries =  (all_entries, except =  (FWRITE, GETOPT, OPTARG, OPTERR, OPTIND, OPTO
PT, STRTOIMAX, STRTOUMAX))     /object = [.ALPHAL]CONTEXT.OBJ /define = (HAVE_CO
NFIG_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)(!(!((t
ime_t)0<(time_t)-1))?(time_t)0:((time_t)~(time_t)0<(time_t)-1)?~(time_t)0:~((tim
e_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 56 in file ALP$DKC0:[UTILITY.SOURCE.DIFF.diffutils-3_2a_vms.src]c
ontext.c;1

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_
entries =  (all_entries, except =  (FWRITE, GETOPT, OPTARG, OPTERR, OPTIND, OPTO
PT, STRTOIMAX, STRTOUMAX))     /object = [.IA64L]GETTIME.OBJ /define = (HAVE_CON
FIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]GETTIME.C

  return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
.........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "a.tv_sec" is bei
ng 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 65 in file ALP$DKC0:[UTILITY.SOURCE.DIFF.diffutils-3_2a_vms.lib]t
imespec.h;1

   And another like that from "[-.SRC]DIFF.C" (the other consumer of
<timespec.h>).

CC   /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_library_
entries =  (all_entries, except =  (FWRITE, GETOPT, OPTARG, OPTERR, OPTIND, OPTO
PT, STRTOIMAX, STRTOUMAX))     /object = [.IA64L]STRFTIME.OBJ /define = (HAVE_CO
NFIG_H=1 , "fwrite=vms_fwrite" , _LARGEFILE ) [-.LIB]STRFTIME.C

            negative_number = t < 0;
..............................^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "t" is being comp
ared with a relational operator to a constant whose value is not greater than ze
ro.  This might not be what you intended.
at line number 1135 in file ALP$DKC0:[UTILITY.SOURCE.DIFF.diffutils-3_2a_vms.lib
]strftime.c;1

   And, on VAX, there's also the following (and its relatives):

CC /decc  /include = ([-.lib], [-.lib.posix], [-.vms], [-.vmslib])   /prefix_lib
rary_entries =  (all_entries, except =  (FWRITE, GETOPT, OPTARG, OPTERR, OPTIND,
 OPTOPT, STRTOIMAX, STRTOUMAX))     /object = [.VAX]MALLOCA.OBJ /define = (HAVE_
CONFIG_H=1 ,-
 "fwrite=vms_fwrite"  ) [-.LIB]MALLOCA.C
          sa_alignment_longdouble = sa_alignof (long double),
        ............................^
%CC-I-LONGDOUBLENYI, In this declaration, type long double has the same
 representation as type double on this platform.
                At line number 124 in ALP$DKC0:[UTILITY.SOURCE.DIFF.DIFFUTILS-3_
2A_VMS.LIB]MALLOCA.H;1.

%VCG-I-SUMMARY, Completed with 0 error(s), 0 warning(s), and
                1 informational messages.
                At line number 141 in ALP$DKC0:[UTILITY.SOURCE.DIFF.DIFFUTILS-3_
2A_VMS.LIB]MALLOCA.C;1.

I haven't looked closely enough at the code involving these to see if
there are some clean/harmless ways to avoid them.

   Changes ("diff -u") to the mainstream code may be found at:

http://antinode.info/ftp/diffutils/diffutils-3_2a_vms/3_2.du

   A complete source kit with all the VMS-specific files:

http://antinode.info/ftp/diffutils/diffutils-3_2a_vms/diffutils-3_2a_src.zip

   Release notes:

http://antinode.info/ftp/diffutils/diffutils-3_2a_vms/vms_notes.txt

   I glance at the list archive from time to time, but I'm not
subscribed to the list, so a direct e-mail message/copy would be best
for reliable communication.  Thanks for looking, and please let me know
if you have any questions, complaints, suggestions, ...

------------------------------------------------------------------------

   Steven M. Schweda               address@hidden
   382 South Warwick Street        (+1) 651-699-9818
   Saint Paul  MN  55105-2547



reply via email to

[Prev in Thread] Current Thread [Next in Thread]