[Top][All Lists]
[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
- [bug-diffutils] Diffutils 3.2 v. VMS,
Steven M. Schweda <=