Bernhard Voelker wrote: > > 1) It suggests that it defines the function 'strftime', but in fact it > > defines 'nstrftime'. GNU findutils fell into this pit: their > > bootstrap.conf > > requests the gnulib 'strftime' module but the coded doesn't use > > nstrftime. > > What exactly do you mean by "fell into ..."?
I mean that the bootstrap.conf requests the module 'strftime', whose benefit is that it supports GNU extensions in the format string, but it does not get used. 'nstrftime' is meant to lift this limitation [1]: "Some of these formats might not be available on all systems, due to differences in the C strftime function between systems." How to reproduce: Checkout findutils git. $ ./bootstrap $ ./configure $ make $ nm gl/lib/libgnulib.a | grep ' T ' | grep strftime 0000000000001b80 T nstrftime $ nm find/print.o | grep strftime U strftime $ nm lib/listfile.o | grep strftime U strftime $ nm locate/locate.o | grep strftime U strftime $ LD_DEBUG=bindings find/find . -prune -printf '%TA\n' 2>&1 | grep strftime 3928: binding file find/find [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `strftime' [GLIBC_2.2.5] As you can see, it uses 'strftime' from glibc. It does not use 'nstrftime'. Bruno [1] https://www.gnu.org/software/findutils/manual/html_node/find_html/Time-Formats.html