HomeFreeBSD

Bring our tzcode up to date.

Description

Bring our tzcode up to date.

  • Replay 2010[acflm] which had been merged but not recorded.
  • Merge 2010n.
  • Reorganize (unsplit) the code to match the upstream layout.
  • Merge 2022[cdefg].

MFC after: 1 week
Sponsored by: Klara, Inc.

(cherry picked from commit bc42155199b5b0b479311e05b07aee7f6f9c5172)

tzcode: Address some compiler warnings.

MFC after: 1 week
Sponsored by: Klara, Inc.

(cherry picked from commit d5c85ac6526dcd0ac25ebdb71969c8c788d5e13b)

tzcode: Move configuration into separate header.

MFC after: 1 week
Sponsored by: Klara, Inc.

(cherry picked from commit 394cf6719a3c665eabe24d96669409e0c5a78076)

tzcode: Remove access() again, cf. 02ba1d993fa9.

Reported by: Coverity (CID 1250126)
MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38035

(cherry picked from commit 3e2e5eebfaa0aebb2790bbde7f35d4c6c52e2596)

tzcode: Avoid memory leak if pthread_setspecific() fails.

Reported by: Coverity (CID 1018472, 1018474)
MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38036

(cherry picked from commit 96e68c393f65046c0cf69d29f89efcfee949e5de)

tzcode: Fully initialize structs before use.

Reported by: Coverity (CID 1502542, 1502548)
MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38037

(cherry picked from commit 55572cff58c4208a9e532356a245676b8eed6a3e)

tzcode: Silence warnings.

  • Ignore failure to remove our temp file.
  • Avoid a minor memory leak in the -D case.

Reported by: Coverity (CID 1502534, 1502535, 1502538)
MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38038

(cherry picked from commit 2aad7570f4e11ac94bb06c44cdc83ad1962fb97e)

depend-cleanup.sh: handle zic moving one level up.

MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38044

(cherry picked from commit 4a158fc030b5a31efdbad8b30c9a859df553ae3c)

libc: Update mktime(3) / timegm(3) tests.

Sponsored by: Klara, Inc.
Reviewed by: ngie
Differential Revision: https://reviews.freebsd.org/D38177

(cherry picked from commit d8c9f80891872a54d0b21933136644d915096fe3)

zoneinfo: On amd64, include 32-bit data.

While there, drop the unnecessary posixrules option.

Sponsored by: Klara, Inc.
Reviewed by: imp, allanjude
Differential Revision: https://reviews.freebsd.org/D38142

(cherry picked from commit 783c318fd1181d46554c31a5039db10e7f5eef49)

tzcode: Document zic's -D option.

Sponsored by: Klara, Inc.
Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D38141

(cherry picked from commit a7b1b73935f21a3dcd6fc8d86a37b92f0c9ba93f)

zoneinfo: Always produce fat zoneinfo files.

These aren't just needed for compatibility with i386 binaries (which need
the 32-bit section), but potentially also for compatibility with older
binaries on all platforms.

Sponsored by: Klara, Inc.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D38194

(cherry picked from commit f1021d27f73efb821213a973e1ab9366278c78f1)

Fix cross-build from STABLE or older CURRENT.

Previously, zic and tzsetup were both listed as install tools and basic
bootstrap tools. Actually, tzsetup is an install tool while zic is a
non-basic bootstrap tool.

Fixes: 783c318fd118
Sponsored by: Klara, Inc.
Reviewed by: jrtc27, emaste
Differential Revision: https://reviews.freebsd.org/D38195

(cherry picked from commit 7a4a520064cb7fbff79560113682d6fe1a1ae9ee)

Makefile.inc1: Restore adding tzsetup to _basic_bootstrap_tools

ITOOLS is only the list of programs to make a copy of during install, it
doesn't cause anything to be bootstrapped. Thus, by removing tzsetup
from _basic_bootstrap_tools, we end up without it on non-FreeBSD, and so
we error out trying to copy it to INSTALLTMP.

Note that _basic_bootstrap_tools is only used for BOOTSTRAP_ALL_TOOLS
(which is why zic was moved away from it). Should tzsetup evolve such
that the host version is insufficient on older FreeBSD it can be moved
to be more like zic, but that seems unnecessary for what is likely to
remain a simple tool.

This partially reverts commit 7a4a520064cb7fbff79560113682d6fe1a1ae9ee.

Fixes: 7a4a520064cb ("Fix cross-build from STABLE or older CURRENT.")
(cherry picked from commit d4fdfd3f9077216e52f38f7364974959c9e43168)