[tz] Why does libtz.a contain asctime.o but not strftime.o ?

Roland Young ryoung.itrs at gmail.com
Thu Oct 10 16:32:19 UTC 2019


I am planning to use the NetBSD inspired functions localtime_rz and
mktime_z in a user-space program. I notice that I can avoid clashes
with symbols in the system libraries by defining RESERVE_STD_EXT_IDS,
and have tried building as follows:

make TOPDIR=$MY_TZ CFLAGS="-DRESERVE_STD_EXT_IDS -DTHREAD_SAFE -pthread" install

I notice that the resulting libtz.a contains an unresolved external
reference to tz_strftime. This appears to be because the Makefile
includes asctime.o in LIBOBJS but does not include strftime.o on which
it should depend (and does depend when the external symbols are
prefixed with 'tz_')

This will not affect my use case - our program will not use tz_asctime
or tz_asctime_r - and I suspect that very few users of the tz code
will be tripped up by it, given that the tz executables will be built
correctly and anyone with a use case like mine has got to make their
own header file to use libtz.a, but nonetheless...

Should this be corrected, or is there a rationale which I have missed
and which could be noted in a Makefile comment?

---
Roland Young
ITRS Group Ltd, London


More information about the tz mailing list