bug-make
[Top][All Lists]
Advanced

[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



reply via email to

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