> From: Bruno Haible <[email protected]>
> Cc: [email protected], [email protected], [email protected],
>  Eli Zaretskii <[email protected]>
> Date: Tue, 13 Oct 2026 17:38:40 +0200
> 
> Eli Zaretskii wrote:
> > We sanitize TZ when we call init_timefns at startup.  So I think we
> > are okay with this?
> 
> Yes, with a call to tzsanitize() at startup, you don't need the
> localtime module from gnulib [1], and you also don't need the mktime
> module from gnulib if you don't care about the other bugs that it fixes [2].

OK.

> > Btw, I see a call to tzsanitize in lib/mktime.c, but I don't see where
> > it is called from mktime.  What did I miss?
> 
> Indeed, reading gnulib code that is shared with glibc is hard, because
> most of the code is written with glibc in mind, and the macros for use
> outside of glibc are added on top.
> 
> mktime-internal.h does '# define __mktime64 mktime'.
> mktime.c line 518 therefore defines mktime.
> 1. It invokes __tzset_unlocked, which macroexpands to my_tzset.
>    my_tzset, defined in mktime.c line 75, invokes tzsanitize().
> 2. Then it invokes __mktime_internal, at mktime.c line 310.

Thanks for explaining this magic.

Reply via email to