Re: New kernel interface for sys_tz and timewarp?

From: Arnd Bergmann
Date: Tue Aug 13 2019 - 16:04:25 EST


On Tue, Aug 13, 2019 at 9:31 PM Florian Weimer <fw@xxxxxxxxxxxxx> wrote:
> * Paul Eggert:
> > Linus Torvalds wrote:
> >> I assume/think that glibc uses (a) environment
> >> variables and (b) a filesystem-set default (per-user file with a
> >> system-wide default? I don't know what people do).
>
> > glibc relies on the TZ environment variable, with a system-wide
> > default specified in /etc/localtime or suchlike (there is no
> > per-user default). glibc ignores the kernel's 'struct timezone'
> > settings for of this, as 'struct timezone' is obsolete/vestigial and
> > doesn't contain enough info to do proper conversions anyway.
>
> I think the configuration value that settimeofday changes is not
> actually a time zone, but an time offset used to interpret various
> things, mostly in a dual-boot environment with Windows, apparently
> (Like the default time offset for extracting timetamps from FAT
> volumes.)
>
> This data has to come from *somewhere*. The TZ variable and
> /etc/localtime cover something else entirely.

systemd and hwclock call localtime_r() when setting initial
system time an tz information at boot time, so that information
comes from /etc/localtime.

/etc/adjtime is used to determine whether to set warp the
time at boot and rtc update or not warp it.

Arnd