diff --git a/DEPS b/DEPS index 54c8a9c04aa..9d600dcc2ca 100644 --- a/DEPS +++ b/DEPS @@ -104,8 +104,9 @@ vars = { "devtools_rev": "f10e8df8c517fb0412b9a66c626581867c9c267d", "icu_rev": "43953f57b037778a1b8005564afabe214834f7bd", "jinja2_rev": "2222b31554f03e62600cd7e383376a7c187967a1", - "libcxx_rev": "44079a4cc04cdeffb9cfe8067bfb3c276fb2bab0", - "libcxxabi_rev": "2ce528fb5e0f92e57c97ec3ff53b75359d33af12", + "libcxx_rev": "bd557f6f764d1e40b62528a13b124ce740624f8f", + "libcxxabi_rev": "a4dda1589d37a7e4b4f7a81ebad01b1083f2e726", + "libc_rev": "5af39a19a1ad51ce93972cdab206dcd3ff9b6afa", "libprotobuf_rev": "24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb", "markupsafe_rev": "8f45f5cfa0009d2a70589bcda0349b8cb2b72783", "perfetto_rev": "13ce0c9e13b0940d2476cd0cff2301708a9a2e2b", @@ -273,6 +274,9 @@ deps = { Var("dart_root") + "/third_party/libcxxabi": Var("llvm_git") + "/llvm-project/libcxxabi" + "@" + Var("libcxxabi_rev"), + Var("dart_root") + "/third_party/libc": + Var("llvm_git") + "/llvm-project/libc" + "@" + Var("libc_rev"), + Var("dart_root") + "/third_party/boringssl/src": "https://boringssl.googlesource.com/boringssl.git" + "@" + Var("boringssl_rev"), diff --git a/build/secondary/third_party/libc/BUILD.gn b/build/secondary/third_party/libc/BUILD.gn new file mode 100644 index 00000000000..3592f50b353 --- /dev/null +++ b/build/secondary/third_party/libc/BUILD.gn @@ -0,0 +1,16 @@ +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +config("config") { + visibility = [ ":*" ] + include_dirs = [ "." ] + defines = [ "LIBC_NAMESPACE=__llvm_libc_dart" ] +} + +group("libc") { + # libc is only used as a dependency of libcxx. + visibility = [ "//third_party/libcxx" ] + + public_configs = [ ":config" ] +} diff --git a/build/secondary/third_party/libcxx/BUILD.gn b/build/secondary/third_party/libcxx/BUILD.gn index c01d111df99..0fbb38a2a63 100644 --- a/build/secondary/third_party/libcxx/BUILD.gn +++ b/build/secondary/third_party/libcxx/BUILD.gn @@ -15,17 +15,24 @@ source_set("libcxx") { sources = [ "src/algorithm.cpp", "src/any.cpp", + "src/atomic.cpp", + "src/barrier.cpp", "src/bind.cpp", + "src/call_once.cpp", "src/charconv.cpp", "src/chrono.cpp", "src/condition_variable.cpp", "src/condition_variable_destructor.cpp", - "src/debug.cpp", + "src/error_category.cpp", "src/exception.cpp", + "src/filesystem/directory_entry.cpp", "src/filesystem/directory_iterator.cpp", - "src/filesystem/filesystem_common.h", + "src/filesystem/filesystem_clock.cpp", + "src/filesystem/filesystem_error.cpp", "src/filesystem/int128_builtins.cpp", "src/filesystem/operations.cpp", + "src/filesystem/path.cpp", + "src/fstream.cpp", "src/functional.cpp", "src/future.cpp", "src/hash.cpp", @@ -34,11 +41,17 @@ source_set("libcxx") { "src/iostream.cpp", "src/locale.cpp", "src/memory.cpp", + "src/memory_resource.cpp", "src/mutex.cpp", "src/mutex_destructor.cpp", "src/new.cpp", + "src/new_handler.cpp", + "src/new_helpers.cpp", "src/optional.cpp", + "src/ostream.cpp", + "src/print.cpp", "src/random.cpp", + "src/random_shuffle.cpp", "src/regex.cpp", "src/ryu/d2fixed.cpp", "src/ryu/d2s.cpp", @@ -50,13 +63,16 @@ source_set("libcxx") { "src/system_error.cpp", "src/thread.cpp", "src/typeinfo.cpp", - "src/utility.cpp", "src/valarray.cpp", "src/variant.cpp", "src/vector.cpp", + "src/verbose_abort.cpp", ] - deps = [ "//third_party/libcxxabi" ] + deps = [ + "//third_party/libc", + "//third_party/libcxxabi", + ] # TODO(goderbauer): remove when all sources build with LTO for android_arm64 and android_x64. if (is_android && (current_cpu == "arm64" || current_cpu == "x64")) { diff --git a/build/secondary/third_party/libcxx/config/__assertion_handler b/build/secondary/third_party/libcxx/config/__assertion_handler new file mode 100644 index 00000000000..0e9da2b7529 --- /dev/null +++ b/build/secondary/third_party/libcxx/config/__assertion_handler @@ -0,0 +1,8 @@ +#ifndef DART_LIBCXX_ASSERTION_HANDLER +#define DART_LIBCXX_ASSERTION_HANDLER + +#include <__verbose_abort> + +#define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_ABORT("%s", message) + +#endif // DART_LIBCXX_ASSERTION_HANDLER diff --git a/build/secondary/third_party/libcxx/config/__config_site b/build/secondary/third_party/libcxx/config/__config_site index 106c24fc361..607c187415d 100644 --- a/build/secondary/third_party/libcxx/config/__config_site +++ b/build/secondary/third_party/libcxx/config/__config_site @@ -1,31 +1,7 @@ #ifndef _LIBCPP_CONFIG_SITE #define _LIBCPP_CONFIG_SITE - -/* #undef _LIBCPP_ABI_VERSION */ -/* #undef _LIBCPP_ABI_UNSTABLE */ -/* #undef _LIBCPP_ABI_FORCE_ITANIUM */ -/* #undef _LIBCPP_ABI_FORCE_MICROSOFT */ -/* #undef _LIBCPP_HIDE_FROM_ABI_PER_TU_BY_DEFAULT */ -/* #undef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE */ -/* #undef _LIBCPP_HAS_NO_STDIN */ -/* #undef _LIBCPP_HAS_NO_STDOUT */ -/* #undef _LIBCPP_HAS_NO_THREADS */ -/* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */ -/* #undef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS */ -/* #undef _LIBCPP_HAS_MUSL_LIBC */ -/* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */ -/* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */ -/* #undef _LIBCPP_HAS_THREAD_API_WIN32 */ -/* #undef _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL */ -/* #undef _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS */ -#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -/* #undef _LIBCPP_NO_VCRUNTIME */ -/* #undef _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION */ -/* #undef _LIBCPP_ABI_NAMESPACE */ -/* #undef _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY */ -/* #undef _LIBCPP_HAS_PARALLEL_ALGORITHMS */ -/* #undef _LIBCPP_HAS_NO_RANDOM_DEVICE */ -/* #undef _LIBCPP_HAS_NO_LOCALIZATION */ +#define _LIBCPP_ABI_VERSION 1 +#define _LIBCPP_ABI_NAMESPACE _d #define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES @@ -36,4 +12,31 @@ #define _LIBCPP_COMPILER_CLANG_BASED #endif +#if defined(__APPLE__) +#define _LIBCPP_PSTL_BACKEND_LIBDISPATCH 1 +#else +#define _LIBCPP_PSTL_BACKEND_STD_THREAD 1 +#endif + +#define _LIBCPP_HARDENING_MODE_DEFAULT _LIBCPP_HARDENING_MODE_NONE + +#define _LIBCPP_HAS_FILESYSTEM 1 +#define _LIBCPP_HAS_LOCALIZATION 1 +#define _LIBCPP_HAS_MONOTONIC_CLOCK 1 +#define _LIBCPP_HAS_RANDOM_DEVICE 1 +#define _LIBCPP_HAS_THREADS 1 +#define _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS 0 +#define _LIBCPP_HAS_UNICODE 1 +#define _LIBCPP_HAS_WIDE_CHARACTERS 1 + +#ifdef _WIN32 +#define _LIBCPP_HAS_THREAD_API_PTHREAD 0 +#define _LIBCPP_HAS_THREAD_API_EXTERNAL 0 +#define _LIBCPP_HAS_THREAD_API_WIN32 1 +#else +#define _LIBCPP_HAS_THREAD_API_PTHREAD 1 +#define _LIBCPP_HAS_THREAD_API_EXTERNAL 0 +#define _LIBCPP_HAS_THREAD_API_WIN32 0 +#endif + #endif // _LIBCPP_CONFIG_SITE