diff --git a/testing/dart/APKBUILD b/testing/dart/APKBUILD index aee7a27c334..c489f508e5e 100644 --- a/testing/dart/APKBUILD +++ b/testing/dart/APKBUILD @@ -2,9 +2,9 @@ # Maintainer: lauren n. liberda pkgname=dart # upgrade checklist: https://md.sdomi.pl/Q-ECZTJ2Qqyp3ahfJuYSBw -pkgver=3.5.4 +pkgver=3.6.0 pkgrel=0 -_bootstrap=3.5.0_alpha278_p0 +_bootstrap=3.6.0_alpha2_p0 pkgdesc="Dart is a client-optimized language for fast apps on any platform" url="https://dart.dev/" arch="aarch64 armv7 x86_64" @@ -29,11 +29,11 @@ subpackages="$pkgname-sdk dartaotruntime" case "$pkgver" in *.*.*_pre*) _canonver="${pkgver/_pre/-}" - _canonver="${_canonver/-r/.}.dev" + _canonver="${_canonver/_p/.}.dev" ;; *.*.*_beta*) _canonver="${pkgver/_beta/-}" - _canonver="${_canonver/-r/.}.beta" + _canonver="${_canonver/_p/.}.beta" ;; *.*.*) _canonver="$pkgver" @@ -48,8 +48,10 @@ source=" gcc13.patch no-werror.patch unbundle.patch + unbundle-icu.patch where-we-are-heading-prefixes-are-not-needed.patch zlib-not-found.patch + boringssl-gcc14.patch " builddir="$srcdir/dart-sdk-$_canonver" @@ -162,10 +164,9 @@ prepare() { build() { # shellcheck disable=2089 local gn_args=" - create_kernel_service_snapshot=true + dart_embed_icu_data=false dart_snapshot_kind=\"app-jit\" dart_sysroot=\"\" - dart_use_tcmalloc=false " msg "Building" @@ -229,12 +230,14 @@ sdk() { } sha512sums=" -c01619fb0b9608dae28a19766784a10442deef416eefb5ab6442dfc3a2f20745d358d893a114e6c2e310fc7c5808cdac9aea3763cd760e92b6604e505f744951 dart-sdk-3.5.4.tar.zst -5ccd4a87d4494256c1fc7593164e2b1b7195e386f66344aec64ad6f9a344947bc32755dc70ae9f42044fdb81fdde88c8418b5db30ee9bce7bd293812b4c7891f dart-wrapper.sh +80fbe8a1bacafcee331c0a60f0a0cbc738ee3e17b3bbf9868154e4f2515d9701d1ba48d8150dc4392d3661ad249cd282e87d3aa2d52f73d6c34a88d1725382fa dart-sdk-3.6.0.tar.zst +0b0980bc0b699de97e76addf6676e22c8f9544936e36903131b40f34fb915467e80e959c410ddb4519a001814c16d19af9eaaed5fd8fcb795d7bfe9e6d9df661 dart-wrapper.sh 3ae8364a172b029cf0b45cd4fd1ac192a20772c84924bb59a1775339ed6314cf81c398b078823fd9f07abc1b0de4b5704c76ce84c64f8924e645f00cfcda4ff3 build-config.patch 03562a3fa935b6819458acdfcadf24f71accf73e2000d158c1fe41aca068b21fb158350a32911c322672b592beefea1e9c7e4675a98418804e60000049a656c8 gcc13.patch e7f5c715d9ed01c36e8b60892332b1bc763a3f98ca87905e2102491c469db60ab21dba9b3e116e1a7ec3faef7d65b8fdd60d7148cfb848ef5a2b411a06f425cf no-werror.patch 14b6b024688110631dfce6d51b895e84d4306a00e66c0e5306126f6d27cbd13894bf2c50faffab99e57107901ec3977a4b0038bee9e165f733ef9e4ccc14af1a unbundle.patch +bceba58975e827995344bb417e830201ffc809851869629758fc3d2162cf9d94c4c0a99413b1ec7b8cf52eb61646ceab40de9fc9417b5a6c162a6c7a855850cf unbundle-icu.patch c73ca1993fab3696563a0ac6a95010da507cc774bdbf2489d71dd7a69959ec166e88e05a199cd5727225b7165aeb44561887f24c8d328953fde1c262fbafd862 where-we-are-heading-prefixes-are-not-needed.patch 460eedf708e8093e0484e3d13fc61d891f4b3c1f8c8595c962410550ef988773aea87173e3fe60626a687dcacbc7e3c531d811bbd96a8856a0c1694d5c53e4b0 zlib-not-found.patch +5a893fccb8dbaa8b33989d6d86b65cefb9af2bd09a3c29d7a0859033833bee84baf2a6faab33d16b727893ec60575a04635a9753b570f946028a6ea3e3dd170c boringssl-gcc14.patch " diff --git a/testing/dart/boringssl-gcc14.patch b/testing/dart/boringssl-gcc14.patch new file mode 100644 index 00000000000..cfdac04f748 --- /dev/null +++ b/testing/dart/boringssl-gcc14.patch @@ -0,0 +1,43 @@ +Patch-Source: https://github.com/google/boringssl/commit/c70190368c7040c37c1d655f0690bcde2b109a0d + +From c70190368c7040c37c1d655f0690bcde2b109a0d Mon Sep 17 00:00:00 2001 +From: David Benjamin +Date: Thu, 16 May 2024 11:00:42 -0400 +Subject: [PATCH] Don't define CRYPTO_addc_* and CRYPTO_subc_* in C++ + +GCC does not support C11 _Generic in C++ mode. + +Change-Id: I974a0b04bbe4900419736044d0d8050f2b856d56 +Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68507 +Auto-Submit: David Benjamin +Commit-Queue: David Benjamin +Reviewed-by: Adam Langley +--- + crypto/internal.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/third_party/boringssl/src/crypto/internal.h b/third_party/boringssl/src/crypto/internal.h +index a77102d766..a45f97bcc9 100644 +--- a/third_party/boringssl/src/crypto/internal.h ++++ b/third_party/boringssl/src/crypto/internal.h +@@ -1174,6 +1174,11 @@ static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) { + + // Arithmetic functions. + ++// The most efficient versions of these functions on GCC and Clang depend on C11 ++// |_Generic|. If we ever need to call these from C++, we'll need to add a ++// variant that uses C++ overloads instead. ++#if !defined(__cplusplus) ++ + // CRYPTO_addc_* returns |x + y + carry|, and sets |*out_carry| to the carry + // bit. |carry| must be zero or one. + #if OPENSSL_HAS_BUILTIN(__builtin_addc) +@@ -1275,6 +1280,8 @@ static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow, + #define CRYPTO_subc_w CRYPTO_subc_u32 + #endif + ++#endif // !__cplusplus ++ + + // FIPS functions. + diff --git a/testing/dart/dart-wrapper.sh b/testing/dart/dart-wrapper.sh index df8c4519e4a..7c8e296668e 100644 --- a/testing/dart/dart-wrapper.sh +++ b/testing/dart/dart-wrapper.sh @@ -6,7 +6,7 @@ set -e # but not for standalone Dart. Emulating this behavior by only exporting # if flutter is installed. FLUTTER_ROOT=/usr/lib/flutter -if [ -d "$FLUTTER_ROOT" ]; then +if [ -f "$FLUTTER_ROOT/version" ]; then export FLUTTER_ROOT fi diff --git a/testing/dart/unbundle-icu.patch b/testing/dart/unbundle-icu.patch new file mode 100644 index 00000000000..66438149163 --- /dev/null +++ b/testing/dart/unbundle-icu.patch @@ -0,0 +1,64 @@ +From 0d936b3e64e1e629bd29fa4dd84240f5c5344092 Mon Sep 17 00:00:00 2001 +From: LN Liberda +Date: Tue, 26 Nov 2024 19:28:59 +0100 +Subject: [PATCH] build: option to not embed icu data + +Bug: none +--- + runtime/bin/BUILD.gn | 11 ++++++++--- + runtime/runtime_args.gni | 3 +++ + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn +index 90dc09a0c02..8f88873dc18 100644 +--- a/runtime/bin/BUILD.gn ++++ b/runtime/bin/BUILD.gn +@@ -795,7 +795,6 @@ template("dart_executable") { + } + deps = [ + ":crashpad", +- ":icudtl_cc", + "//third_party/boringssl", + "//third_party/icu:icui18n", + "//third_party/icu:icuuc", +@@ -804,7 +803,11 @@ template("dart_executable") { + if (is_fuchsia) { + deps += [ "$fuchsia_sdk/pkg/fdio" ] + } +- defines = [ "DART_EMBED_ICU_DATA" ] + extra_defines ++ defines = extra_defines ++ if (dart_embed_icu_data) { ++ defines += [ "DART_EMBED_ICU_DATA" ] ++ deps += [ ":icudtl_cc" ] ++ } + if (exclude_kernel_service) { + defines += [ "EXCLUDE_CFE_AND_KERNEL_PLATFORM" ] + } +@@ -911,10 +911,12 @@ + "..:add_empty_macho_section_config", + ] + extra_deps = [ +- ":icudtl_cc", + "..:libdart_precompiled_runtime", + "../platform:libdart_platform_precompiled_runtime", + ] ++ if (dart_embed_icu_data) { ++ extra_deps += [ ":icudtl_cc" ] ++ } + if (dart_runtime_mode != "release") { + extra_deps += [ "../observatory:standalone_observatory_archive" ] + } +diff --git a/runtime/runtime_args.gni b/runtime/runtime_args.gni +index fbcfeb157fb..061e8f74a5c 100644 +--- a/runtime/runtime_args.gni ++++ b/runtime/runtime_args.gni +@@ -77,6 +77,9 @@ declare_args() { + + # Whether to support dynamic loading and interpretation of Dart bytecode. + dart_dynamic_modules = false ++ ++ # Whether to embed ICU data inside the runtime binary. ++ dart_embed_icu_data = true + } + + declare_args() {