Roll src/buildtools/third_party/libc++/trunk/ d9040c75c..69897abe2 (1149 commits)

It has been a long time since the last libc++ roll, so many extra
changes were required:
- New libc++ cpp files added to gn
- Re-generated prebuilt gvr_shim for Android
- Updated absl symbols for libc++ roll (crbug.com/1166430)
- Updated static initializer expectations for second libc++ iostream
  initializer
- Disabled checked_iterator test relying on std::copy implementation
  details (crbug.com/1166360)
- Added global availability macro for crbug.com/1166707
- Adjusted some pragma max_token limits for new headers
- Overrode _LIBCPP_HIDE_FROM_ABI to work around crbug.com/1090975 on Windows
- Defined _LIBCPP_NO_NATIVE_SEMAPHORES to work around crbug.com/1166970

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/d9040c75cfea..69897abe2d4e

$ git log d9040c75c..69897abe2 --date=short --no-merges --format='%ad %ae %s'
2021-01-21 ldionne.2 [libc++] Bring back mach_absolute_time implementation of steady_clock
2021-01-22 koraq [NFC][libc++] Update the implementation status.
2021-01-22 ldionne.2 [libc++] Fix broken build when merging libc++abi into libc++ on Apple
2021-01-21 brad [libcxx] Check return value for asprintf()
2021-01-21 marek.kurdej [libc++] Use ioctl when available to get random_device entropy.
2021-01-20 Alexander.Richardson [libc++] Split re.alg tests into locale-dependent and independent tests
2021-01-19 wim.leflere [libc++][P1679] add string contains
2021-01-18 ldionne.2 [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent
2021-01-14 ldionne.2 [libc++] Unbreak the debug mode
2021-01-10 raul [CMake] Remove dead code setting policies to NEW
2021-01-19 Alexander.Richardson [libc++] Sync TEST_HAS_TIMESPEC_GET and _LIBCPP_HAS_TIMESPEC_GET on FreeBSD
2021-01-19 marek.kurdej [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library.
2021-01-18 arthur.j.odwyer Regenerate the feature test macro unit-tests. NFCI.
2021-01-12 ldionne.2 [libc++] NFCI: Refactor allocator_traits
2021-01-18 wim.leflere [libc++] improve feature test macro script
2021-01-12 ldionne.2 [libc++] Rename check-cxx-deps to cxx-test-depends for consistency
2021-01-15 rnk Fix libc++ clang-cl build, swap attribute order
2021-01-14 ikudrin [libcxx testing] Fix UB in tests for std::lock_guard
2021-01-12 smeenai [libc++] Give extern templates default visibility on gcc
2020-12-17 martin [libcxx] Avoid overflows in the windows __libcpp_steady_clock_now()
2021-01-12 brad [libcxx] Port to OpenBSD
2020-12-18 arthur.j.odwyer [libc++] Add a missing `<_Compare>` template argument.
2021-01-12 marek.kurdej [libc++] [C++2b] [P1048] Add is_scoped_enum and is_scoped_enum_v.
2021-01-11 marek.kurdej [libc++] Turn off auto-formatting of generated files. NFC.
2021-01-08 ldionne.2 [libc++] NFC: Document the Differential queries to avoid duplicating work
2020-12-25 arthur.j.odwyer [libc++] Mark [P0809] "LWG2831: Comparing Unordered Containers" as Nothing To Do.
2020-12-25 arthur.j.odwyer [libc++] Mark [P0475] "LWG2511: guaranteed copy elision for piecewise construction" as Complete.
2021-01-08 arthur.j.odwyer Re-enable __cpp_lib_constexpr_functional.
2020-12-17 ldionne.2 [libc++/abi] Re-remove unnecessary null pointer checks from operator delete
2020-12-11 ldionne.2 [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared
2021-01-08 marek.kurdej [libc++] Add basic support for -std=c++2b.
2021-01-07 arthur.j.odwyer [libc++] Update generate_feature_test_macro_components.py to match SD-6.
2021-01-08 Alexander.Richardson [libc++] Add missing XFAIL to tests that need __atomic_* libcalls
2021-01-07 arthur.j.odwyer [libc++] Alphabetize generate_feature_test_macro_components.py. NFCI.
2021-01-07 ldionne.2 [libc++] Fix typo in run-buildbot
2021-01-07 marek.kurdej [libc++] Use c++20 instead of c++2a consistently.
2021-01-07 mikhail.maltsev [libcxx] Mark a test as unsupported for C++03
2021-01-07 marek.kurdej [libc++] [CI] Install Tip-of-Trunk clang.
2020-10-28 martin [libcxx] Handle backslash as path separator on windows
2020-12-15 arthur.j.odwyer [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls.
2020-12-30 marek.kurdej [libc++] [docs] Mark contract-related papers as removed from C++20.
2020-12-28 arthur.j.odwyer [libc++] Fix a test failure in 7b00e9fae3 (D93815).
2020-12-28 arthur.j.odwyer [libc++] Fix a test failure in 7b00e9fae3 (D93815).
2020-12-25 arthur.j.odwyer [libc++] [P1065] Constexpr invoke, reference_wrapper, mem_fn, not_fn, default_searcher.
2020-12-25 arthur.j.odwyer [libc++] Constexpr-proof some machinery in not_fn.pass.cpp. NFCI.
2020-12-22 Alexander.Richardson [libc++] Add a 'is-lockfree-runtime-function' lit feature
2020-12-19 koraq [NFC][libc++] Fixes swapped comments.
2020-11-04 martin [libcxx] Fix the preexisting directory_iterator code for windows
2020-10-27 martin [libcxx] Convert paths to/from the right narrow code page for narrow strings on windows
2020-11-05 martin [libcxx] Reorder the two u8path functions, to make the following diff more readable. NFC.
(...)
2019-12-11 eric [libc++] Fix fuzzing unit tests with exceptions disabled.
2019-12-11 eric [libc++] Add fuzzing tests for parts of <random>.
2019-12-10 ldionne [libc++] Hide some functions and types in <future> and <thread> as hidden
2019-12-06 jaskiewiczs [libcxx] Replace func_name with __name__ for compatibility with Python 3
2019-12-10 ldionne [libcxx] [test] Query the target platform, not the host one
2019-12-06 phosek [libcxx{,abi}] Don't link libpthread and libdl on Fuchsia
2019-12-02 mgorny [libcxx{,abi}] Emit deplibs only when detected by CMake
2019-11-29 dave [libcxx] Add -Wno-deprecated-copy to the test config
2019-11-27 mclow.lists Optimize and fix basic_string move assignment operator. Reviewed as https://reviews.llvm.org/D68623. Thanks to mvels for the patch.
2019-11-07 smeenai [libcxx] Omit unneeded locale fallbacks on Android 21+
2019-11-21 jaskiewiczs [libcxx] Add Sergej Jaskiewicz to CREDITS.txt
2019-11-18 ldionne [libc++] Separate -include and path to the site config file
2019-11-18 danalbert Fix _LIBCPP_HAS_ definitions for Android.
2019-11-07 danalbert Update the docs for building libc++.
2019-11-18 eric Rename __is_foo_iterator traits to reflect their Cpp17 nature.
2019-11-16 eric [libc++] Add _ITER_CONCEPT and _ITER_TRAITS implementations from C++20
2019-11-16 eric [libc++] Add C++20 contiguous_iterator_tag.
2019-11-16 eric [libc++] Rename __to_raw_pointer to __to_address.
2019-11-15 marek [libc++] [chrono] Fix year_month_weekday::ok() implementation.
2019-11-15 tokarip [libcxx] use __builtin_isnan in std::isnan.
2019-11-15 marek [libc++] [P0920] [P1661] Update status page.
2019-11-14 ldionne [libc++][P1872] span should have size_type, not index_type.
2019-11-14 ldionne [libc++] [P1612] Add missing feature-test macro __cpp_lib_endian.
2019-11-13 marek libc++ status page: Fix HTML.
2019-11-13 dave [libcxx testing] Fix -Wtautological-overlap-compare bug
2019-11-08 mcypark [libc++][P0980] Marked member functions move/copy/assign of char_traits constexpr.
2019-11-11 ndesaulniers change LLVM_VERSION_SUFFIX default from svn to git
2019-11-11 ldionne [libc++] Mark __call_once_proxy as hidden and internal
2019-11-10 mclow.lists libc++ status page: New papers and issues adopted in Belfast
2019-11-09 koraq [libc++] Validate the entire regex is consumed
2019-11-07 ldionne [libc++] Fix potential OOB in poisson_distribution
2019-11-07 ldionne [libc++] Fixed copy/copy_n/copy_backward for compilers that do not support is_constant_evaluated.
2019-11-06 ldionne [libc++] Fix some constexpr tests broken by D68837
2019-11-06 ldionne [libcxx] Make generate_feature_test_macro_components script compatible with Python 3.
2019-11-06 ldionne [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr
2019-11-04 jorg Optimize std::midpoint for integers
2019-11-02 compnerd build: avoid custom handling for C++ standard
2019-11-01 david.bolvansky [libcxx] Disable -Wconstant-evaluated for testsuite
2019-10-30 ldionne [libc++] Add test and remove workaround for PR13592
2019-10-24 ldionne [libc++] Force the ABI namespace to be a reserved identifier
2019-10-28 dblaikie PR43764: Qualify a couple of calls to forward_as_tuple to be ADL-resilient.
2019-10-28 z.zoelec2 [NFC] Comment endif to test commit access
2019-10-22 mclow.lists Add all the issues to be voted upon in Belfast
2019-10-25 ldionne [libcxx] [test] Run `chmod +x` on executables when testing via SSH
2019-10-23 stl [www] Change URLs to HTTPS.
2019-10-23 stl [libcxx][NFC] Strip trailing whitespace, fix typo.
2019-10-23 ldionne [NFC] Strip trailing whitespace from libc++
2019-10-23 Casey [libc++][NFC] Remove excess trailing newlines from most files
2019-10-22 stl [libcxx][test][NFC] Fix comment typos.
2019-10-22 ldionne [NFC] Strip trailing whitespace in test to test Github committing

Created with:
  roll-dep src/buildtools/third_party/libc++/trunk

Change-Id: I8c4707303cc4e5c5ea94e5d52ad937f212ab0d1d
Bug: 1165953, 1166707, 1166430, 1166360, 1090975, 1166970
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2627939
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Reid Kleckner <rnk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#848368}
GitOrigin-RevId: 3f200c0d7476ae6fd0112942bafc0280aa8e74fa
7 files changed
tree: 3e25776a86e44c45b225bbe05d7fa07edbcec68c
  1. .github/
  2. absl/
  3. ci/
  4. CMake/
  5. patches/
  6. ABSEIL_ISSUE_TEMPLATE.md
  7. absl.gni
  8. absl_hardening_test.cc
  9. AUTHORS
  10. BUILD.bazel
  11. BUILD.gn
  12. CMakeLists.txt
  13. conanfile.py
  14. CONTRIBUTING.md
  15. DIR_METADATA
  16. FAQ.md
  17. generate_def_files.py
  18. LICENSE
  19. OWNERS
  20. README.chromium
  21. README.md
  22. roll_abseil.py
  23. symbols_arm64_dbg.def
  24. symbols_arm64_rel.def
  25. symbols_x64_dbg.def
  26. symbols_x64_rel.def
  27. symbols_x64_rel_asan.def
  28. symbols_x86_dbg.def
  29. symbols_x86_rel.def
  30. UPGRADES.md
  31. WORKSPACE
README.md

Abseil - C++ Common Libraries

The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library.

Table of Contents

About Abseil

Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.

In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.

Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.

Quickstart

If you want to just get started, make sure you at least run through the Abseil Quickstart. The Quickstart contains information about setting up your development environment, downloading the Abseil code, running tests, and getting a simple binary working.

Building Abseil

Bazel and CMake are the official build systems for Abseil.

See the quickstart for more information on building Abseil using the Bazel build system.

If you require CMake support, please check the CMake build instructions and CMake Quickstart.

Support

Abseil is officially supported on many platforms. See the Abseil platform support guide for details on supported operating systems, compilers, CPUs, etc.

Codemap

Abseil contains the following C++ library components:

  • base Abseil Fundamentals
    The base library contains initialization code and other code which all other Abseil code depends on. Code within base may not depend on any other code (other than the C++ standard library).
  • algorithm
    The algorithm library contains additions to the C++ <algorithm> library and container-based versions of such algorithms.
  • container
    The container library contains additional STL-style containers, including Abseil's unordered “Swiss table” containers.
  • debugging
    The debugging library contains code useful for enabling leak checks, and stacktrace and symbolization utilities.
  • hash
    The hash library contains the hashing framework and default hash functor implementations for hashable types in Abseil.
  • memory
    The memory library contains C++11-compatible versions of std::make_unique() and related memory management facilities.
  • meta
    The meta library contains C++11-compatible versions of type checks available within C++14 and C++17 versions of the C++ <type_traits> library.
  • numeric
    The numeric library contains C++11-compatible 128-bit integers.
  • status
    The status contains abstractions for error handling, specifically absl::Status and absl::StatusOr<T>.
  • strings
    The strings library contains a variety of strings routines and utilities, including a C++11-compatible version of the C++17 std::string_view type.
  • synchronization
    The synchronization library contains concurrency primitives (Abseil's absl::Mutex class, an alternative to std::mutex) and a variety of synchronization abstractions.
  • time
    The time library contains abstractions for computing with absolute points in time, durations of time, and formatting and parsing time within time zones.
  • types
    The types library contains non-container utility types, like a C++11-compatible version of the C++17 std::optional type.
  • utility
    The utility library contains utility and helper code.

Releases

Abseil recommends users “live-at-head” (update to the latest commit from the master branch as often as possible). However, we realize this philosophy doesn't work for every project, so we also provide Long Term Support Releases to which we backport fixes for severe bugs. See our release management document for more details.

License

The Abseil C++ library is licensed under the terms of the Apache license. See LICENSE for more information.

Links

For more information about Abseil: