RE timegm on SOLARIS

Clive Elsum Clive.Elsum at CSIRO.AU
Wed Nov 20 21:12:01 GMT 2002

 I have not had any feedback on the replacement module for timegm within 
/lib/replace.c. This fix allows a correct Solaris build, without it Clock Skew
 errors occur unless the machine is dropped back to GMT. Is there any chance of 
this being implemented?
 Thanks in advance
Original message attached

Delivered-To: samba-technical at
From: Clive.Elsum at
To: samba-technical at
Cc: abartlet at, davecb at
Subject: FIX to RE: Cannot get net ads  join to work under Solaris 8 
MIME-Version: 1.0
X-BeenThere: samba-technical at
X-Mailman-Version: 2.0.13
List-Help: <mailto:samba-technical-request at>
List-Post: <mailto:samba-technical at>
List-Subscribe: <>, 
<mailto:samba-technical-request at>
List-Id: Discussions on Samba internals.  For general questions please subscribe 
to the list samba at <>
List-Unsubscribe: <>, 
<mailto:samba-technical-request at>
 List-Archive: <>
X-Original-Date: Sun, 17 Nov 2002 19:33:23 +1100
Date: Sun, 17 Nov 2002 19:33:23 +1100


Another suggestion which appears to work without a kludge is a very minor
mod to the code originally contributed by Roger Beeman <beeman at>,
with the help of Mark Baushke <mdb at> and the rest of the Gurus at
CISCO. Further improved by Roger with assistance from Edward J. Sabol based
on input by Jamie Zawinski. 
Setting this as a timegm replacement within lib/replace.c overcomes the need
to reset TIMEZONE.

 time_t timegm(struct tm *t)
  time_t tl, tb;
  struct tm *tg;

  tl = mktime (t);
  if (tl == -1)
      tl = mktime (t);
      if (tl == -1)
        return -1; /* can't deal with output from strptime */
      tl += 3600;
  tg = gmtime (&tl);
  tg->tm_isdst = 0;
  tb = mktime (tg);
  if (tb == -1)
      tb = mktime (tg);
      if (tb == -1)
        return -1; /* can't deal with output from gmtime */
      tb += 3600;
  return (tl - (tb - tl));

Clive Elsum BAppSc, RHCE
Systems Engineer - Information Technology Group
CSIRO Atmospheric Research
PMB 1, Aspendale, Victoria, Australia  3195
Phone : (+61 3) 9239 4509
Fax:    (+61 3) 9239 4444
E-mail Clive.Elsum at

More information about the samba-technical mailing list