Re: git commit for WITH_DETECT_TZ_CHANGES breaks date, et al

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Tue, 14 Sep 2021 15:33:58 UTC
On Tue, 14 Sep 2021 10:37:36 +0200
Michael Gmelin <freebsd@grem.de> wrote:

> 
> On Tue, 14 Sep 2021 09:02:46 +0000
> Gary Jennejohn <gljennjohn@gmail.com> wrote:
> 
> > On Mon, 13 Sep 2021 21:30:02 -0400
> > Michael Butler via freebsd-current <freebsd-current@freebsd.org>
> > wrote:
> > 
> > > After commit ddedf2a11eb20af1ee52cb3da70a57c21904af8f date fails to
> > > recognize any configured timezone when WITH_DETECT_TZ_CHANGES is
> > > not set.
> > > 
> > > For example ..
> > >   
> > > imb@vm01:/home/imb> date    
> > > Tue Sep 14 01:25:57  2021
> > > 
> > > Every other daemon also thinks it's running in UTC+0 :-(
> > > 
> > > When libc is recompiled with WITH_DETECT_TZ_CHANGES=yes in
> > > /etc/src.conf, the output is (for me) .. 
> > > imb@vm01:/usr/src/lib/libc> date    
> > > Mon Sep 13 21:28:29 EDT 2021
> > >   
> > 
> > Same here.  After instaling the new world this morning I was suddenly
> > in UTC instead of CEST (2 hours difference).
> > 
> > Thanks for the fix :-)
> 
> Before reading your message, I (ironically) wanted to tell you about
> your email's date header containing the wrong timezone ^_^
> 
> -m
> 
> -- 
> Michael Gmelin
> 

Just a thought (not at all tested), but...

 #define	change_in_tz(X)	0

in line 393 of localtime.c should be

 #define	change_in_tz(X)	1

if I understand correctly.

Or remove line 392 and 393 with guarding added line 470 though 485 with
#ifdef DETECT_TZ_CHANGES.

Old behaviour never returns there.
I suspect current code without defining WITH_DETECT_TZ_CHANGES=yes
in /etc/src.conf make first tzload() call do nothing and forth fallback
to UTC.


-- 
Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>