Skip to content

[C++] Remove the vendored datetime fallback when toolchain support permits #51267

Open

Description

@rok

Describe the enhancement requested

#51216 makes std::chrono the default datetime backend and removes vendored datetime dependencies from standard-backend binaries. However most builds still default to vendored date.h library. The vendored fallback must remain for unsupported standard libraries.

This requires:

  • Raising the minimum Linux libstdc++ version to GCC 16.2 or newer.
  • Apple libc++ providing working C++20 timezone and formatting APIs.
  • Migrating Rtools40 and MSYS2 Clang64 builds.
  • Validating Emscripten, and other supported targets.
  • Retiring the ARROW_USE_STD_CHRONO=0 override.

Once all supported toolchains use std::chrono, remove the vendored sources and build plumbing (e.g. reload_tzdb). The Windows text-tzdb configuration APIs, including the deprecated Python API and R initialization, can also be removed once no supported Windows build uses the fallback.

Component(s)

C++

Activity

  1. Adarsh-Me commented on Sep 10, 2026

    @Adarsh-Me
    Contributor

    take

  2. Adarsh-Me commented on Sep 12, 2026

    @Adarsh-Me
    Contributor

    Opened #51315 as a first step: it adds ARROW_USE_STD_CHRONO (CMake) / use_std_chrono (Meson) options with toolchain feature detection (__cpp_lib_chrono >= 201907L). AUTO preserves the current platform default (vendored fallback everywhere except Windows toolchains with timezone support) until the minimum-toolchain prerequisites above are met; explicit opt-in fails fast at configure time on unsupported toolchains, and standard-backend binaries no longer bundle vendored/datetime.cpp. Full removal of the vendored sources still waits on the toolchain upgrades listed in this issue.

  3. added 13 commits that reference this issue on Sep 12, 2026
  4. rok commented on Sep 17, 2026

    @rok
    MemberAuthor

    Full removal of the vendored sources still waits on the toolchain upgrades listed in this issue.

    The point of this issue is to remove the vendored sources. Conditions for this are that Arrow uses only new enough libstdc++ libraries. This issue should likely wait until such time.

  5. added a commit that references this issue on Sep 17, 2026
  6. Adarsh-Me commented on Oct 3, 2026

    @Adarsh-Me
    Contributor

    Update on this claim: still no PR from me. Removing the vendored datetime fallback means building and testing the C++ libraries, and this machine has no CMake or usable C++ toolchain, so anything I posted would be unverified. Freeing this issue up for a contributor who can actually run the arrow-cpp suite.

  7. Adarsh-Me commented on Oct 10, 2026

    @Adarsh-Me
    Contributor

    @rok this one is unassigned but #51315 already implements it - the std::chrono opt-in, with the toolchain gate you flagged. Could you assign #51267 to me so nobody duplicates the work? The PR has a merge conflict and one MATLAB check red that I have shown is repo-wide; I will rebase once the assignment lands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions