[tz] Question about bug seen in OpenBSD and FreeBSD related to tzname
Steffen Nurpmeso
steffen at sdaoden.eu
Sat Nov 23 19:48:04 UTC 2019
Brian Inglis wrote in <f5634d94-4b76-5852-316d-a634d7191ae8 at SystematicSw\
.ab.ca>:
|On 2019-11-23 03:20, Robert Elz wrote:
|> Date: Sat, 23 Nov 2019 02:52:43 -0500
|> From: Andras Farkas <deepbluemistake at gmail.com>
|> Message-ID: <CAA0nTRsAVKLycy=kxt3BMHDv9zmSUEZTMdAbRfO3P+V22aS3vA at mai\
|> l.gmail.com>
|>
|>| (because it IS the implementation, yet it's also not the OS)
|>
|> That distinction, which is made by many standards in various fields
|> is totally worthless - whether any particular piece of code (or
|> hardware or whatever) is implementation or application (or however
|> the relevant standard attempts to divide the world into two groups)
|> depends entirely upon where you are looking at it from.
|
|Programmers must clearly distinguish between standard or documented system
|independent feature test macros intended to be set by the programmer in
|feature_test_macros(7) and the documentation for the system headers, \
|library
|interfaces, and standards e.g
| #define _POSIX_C_SOURCE 200809L
| #define _XOPEN_SOURCE 700
| #define _DEFAULT_SOURCE 1
| #define _GNU_SOURCE 1
|Those feature test macros enable certain features of implementations in
|conformance with standards or documentation.
Since you refer to feature_test_macros(7) i want to add that
i find headers of especially elder systems notoriously buggy
regarding the above. One should especially not trust statements
like "defining x produces the same effects as defining y". I am
in the lucky position to be able to test on several operating
systems, and thanks to OpenCSW.org this also includes SunOS 5.9 -
5.11. My findings are that you are best served with
a sledgehammer by defining all of the above (i do except
_DEFAULT_SOURCE), and i also still have a _DARWIN_C_SOURCE
lingering even though the last i tested was Mountain Lion. (But
it still works like this out of the box as of today via Homebrew
and MacPorts.)
|Those standard or documented system independent feature test macros \
|should be
|distinguished from implementation specific feature macros often set in
|/usr/include/features.h, /usr/include/sys/features.h, and their inclusions,
|included from feature test dependent library headers, which may set \
|feature test
|macros, and implementation specific feature macros.
|Those implementation specific feature macros are tested in library \
|headers in
|lieu of various feature test macros e.g. Linux __USE_POSIX, __USE_XOPEN, \
|and
|should never be used or set by the programmer as they vary between
|implementations and may be changed by any implementation release, as \
|they are
|non-standard and undocumented.
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
More information about the tz
mailing list