[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU Make 3.79.1 Bug Fix Update
From: |
John Fowler |
Subject: |
GNU Make 3.79.1 Bug Fix Update |
Date: |
Mon, 2 Apr 2001 14:46:48 -0600 (MDT) |
This is an update to a bug fix I sent in last December. I never got a reply
to that one, so I am attaching it to the bottom of this message, just in
case it got lost. This is for GNU Make 3.79.1 under VAX/VMS 7.1.
It turns out that my arscan.c line 82 fix actually does need some adjustment
for Daylight Savings Time, as I found this week. Now, the corrected line
reads:
val = decc$fix_time (&mhd->mhd$l_datim) + timezone - daylight*3600;
Again, decc$fix_time is not documented to act in this way, so it might be
specific to my current setup. I wish I had a larger variety of VMS machines
to test this with. If you'd rather not make this change but just keep it
around in case someone else has a problem with VMS archive times, that's OK
with me.
Thanks,
John Fowler, address@hidden
----------------------------------------------------------------------------
I found what I think are some bugs in GNU Make 3.79.1 under VAX/VMS 7.1. I
have already fixed them on my end, but I thought I'd let you know what I did,
in case someone else asks, or if you want to incorporate them in a future
version.
I suggest you run these changes by one of your VMS experts, rather than
just take my word for it, as I can't test for the Alpha platform.
First some small problems. In order to get Make to compile at all, I had
to make the following changes:
In FUNCTION.C Line 131: "int len" should be "unsigned int len".
In VARIABLE.C Lines 204-205: I could not find any variable "listp", so I
just commented these two lines out.
In CONFIG.H-VMS Line 16: I commented this line out because my system does not
provide its own alloca(). I also uncommented line 13,
though I'm not sure why, because nothing seems to use
the C_ALLOCA macro anyway.
OK, now for the real reason I'm writing this. I found that for some reason,
when I used an object library to store the .OBJ files, Make was not reading
the time stamps in the library correctly. I am in Central Standard Time,
and it seemed like the time stamp returned by decc$fix_time on line 82
of ARSCAN.C was offset by the difference between CST and UTC. So I changed
this line to:
val = decc$fix_time (&mhd->mhd$l_datim) + timezone;
After that, it worked correctly. I haven't tested this in daylight savings
time yet, but I guess I'll find out next Spring.
Also in ARSCAN.C, by the way, on lines 69, 153, and 164 is the if statement:
if (! status)
This is incorrect. VMS system calls use bit 0 of their return values to
flag errors. So odd-numbered return values indicate no error, and
even-numbered return values indicate something went wrong. These lines
should be:
if (! (status & 1))
I hope this is helpful. Thanks very much!
John Fowler, address@hidden
- GNU Make 3.79.1 Bug Fix Update,
John Fowler <=