On Tue, Aug 13, 2019 at 9:31 PM Florian Weimer <f...@deneb.enyo.de> 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