Loading pkgs/development/compilers/dart/default.nix +6 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ stdenv, fetchurl, unzip, bintools, versionCheckHook, runCommand, cctools, Loading Loading @@ -48,7 +47,12 @@ stdenv.mkDerivation (finalAttrs: { cp -R . $out '' + lib.optionalString (stdenv.hostPlatform.isLinux) '' find $out/bin -executable -type f -exec patchelf --set-interpreter ${bintools.dynamicLinker} {} \; find $out/bin -type f -executable | while read f; do if patchelf --print-interpreter "$f" >/dev/null 2>&1; then patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath "${lib.makeLibraryPath [ (lib.getLib stdenv.cc.cc) ]}" "$f" fi done '' + '' runHook postInstall Loading pkgs/development/compilers/dart/source/custom-flags.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index b041a075..27dc22ed 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -430,6 +430,10 @@ config("compiler") { } } + cflags_c += string_split(getenv("CFLAGS"), " ") + cflags_cc += string_split(getenv("CXXFLAGS"), " ") + ldflags += string_split(getenv("LDFLAGS"), " ") + # Assign any flags set for the C compiler to asmflags so that they are sent # to the assembler. The Windows assembler takes different types of flags # so only do so for posix platforms. pkgs/development/compilers/dart/source/default.nix 0 → 100644 +261 −0 Original line number Diff line number Diff line { bintools, buildPackages, callPackage, cacert, curlMinimal, dart, debug ? false, fetchurl, gn, gitMinimal, gitSetupHook, icu, jq, lib, nix-update, pax-utils, pkg-config, python312, ripgrep, runCommand, samurai, stdenv, versionCheckHook, writeShellScript, writeText, zlib, }: let version = "3.11.0"; tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; }; getArchInfo = platform: let arch = if platform.isx86_64 then "x64" else platform.linuxArch; in { inherit arch; outSuffix = lib.strings.toUpper arch; }; targetArchInfo = getArchInfo stdenv.hostPlatform; buildArchInfo = getArchInfo stdenv.buildPlatform; python3 = python312.withPackages ( ps: with ps; [ httplib2 six ] ); src = runCommand "dart-source-deps" { pname = "dart-source-deps"; inherit version; nativeBuildInputs = [ cacert curlMinimal gitMinimal pax-utils python3 tools.cipd ]; env = { NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; DEPOT_TOOLS_UPDATE = "0"; DEPOT_TOOLS_COLLECT_METRICS = "0"; PYTHONDONTWRITEBYTECODE = "1"; CIPD_HTTP_USER_AGENT = "standard-nix-build"; }; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "sha256-7y6kNpjWpc8+4Rhv+GuMnV5xHCQ5om2/3woZOJ8wYSc="; } '' mkdir source cd source source ${../../../../build-support/fetchgit/deterministic-git} export -f clean_git export -f make_deterministic_repo cp ${writeText ".gclient" '' solutions = [{ 'name': 'sdk', 'url': 'https://dart.googlesource.com/sdk.git@${version}', }] target_os = ['linux'] target_cpu = ['x64', 'arm64', 'riscv64'] target_cpu_only = True ''} .gclient export PATH=${python3}/bin:$PATH:${tools.depot_tools} python3 ${tools.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks find sdk -name ".versions" -type d -exec rm -rf {} + rm --recursive --force sdk/buildtools/sysroot rm --recursive --force sdk/buildtools/linux-arm64 rm --recursive --force sdk/buildtools/reclient rm --recursive --force sdk/buildtools/*/clang find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete rm --recursive --force sdk/tools/sdks/dart-sdk find . -type l ! -exec test -e {} \; -delete find . -name "ChangeLog*" -delete rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes rm --recursive --force .cipd .cipd_cache find . -name ".git" -type d -prune -exec rm --recursive --force {} + find . -name ".git*" -exec rm --recursive --force {} + find . \( \ -name ".build-id" -o \ -name ".svn" -o \ -name "*~" -o \ -name "#*#" \ \) -exec rm --recursive --force {} + for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do rm --force "$elf" done find . -name "__pycache__" -type d -exec rm --recursive --force {} + find . -name "*.pyc" -delete cp --recursive sdk $out ''; in dart.overrideAttrs (oldAttrs: { inherit version src; nativeBuildInputs = [ gitMinimal gitSetupHook python312 ripgrep pkg-config ]; buildInputs = lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ icu zlib ]; patches = [ ./gcc13.patch ./zlib-not-found.patch ./custom-flags.patch ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ./unbundle.patch ./unbundle-icu.patch ]; postPatch = '' sed --in-place 's/"-fsanitize=memory"//g' build/config/compiler/BUILD.gn patchShebangs runtime/tools/ sed --in-place 's/ldflags = pkgresult\[4\]/ldflags = []/' build/config/linux/pkg_config.gni cp ${ fetchurl { url = "https://raw.githubusercontent.com/chromium/chromium/631a813125b886a52274653144019fd1681a0e97/build/config/linux/pkg-config.py"; hash = "sha256-9coRpgCewlkFXSGrMVkudaZUll0IFc9jDRBP+2PloOI="; } } build/config/linux/pkg-config.py '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' sed --in-place "s/default='pkg-config'/default='${stdenv.cc.targetPrefix}pkg-config'/g" build/config/linux/pkg-config.py mkdir --parents .bin-tools ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}g++) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-g++ ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}gcc) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-gcc ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}ar) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-ar export PATH=$PWD/.bin-tools:$PATH '' + '' ln --symbolic ${buildPackages.dart} tools/sdks/dart-sdk ln --symbolic --force ${lib.getExe buildPackages.gn} buildtools/gn mkdir --parents buildtools/ninja ln --symbolic --force ${lib.getExe buildPackages.samurai} buildtools/ninja/ninja python3 tools/generate_package_config.py python3 tools/generate_sdk_version_file.py echo "" > tools/bots/dartdoc_footer.html rm third_party/devtools/web/devtools_analytics.js JOBS_COUNT=''${NIX_BUILD_CORES:-2} rg --no-ignore -l 'google-analytics\.com' . \ | rg -v "\.map\$" \ | xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \ sed --in-place --regexp-extended 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g' rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \ | xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \ sed --in-place --regexp-extended 's|UA-[0-9]+-[0-9]+|UA-2137-0|g' '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' for _lib in icu zlib; do find . -type f -path "*third_party/$_lib/*" \ \! -path "*third_party/$_lib/chromium/*" \ \! -path "*third_party/$_lib/google/*" \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done python3 build/linux/unbundle/replace_gn_files.py --system-libraries icu zlib '' + '' git init git add . git commit --message="stub" --quiet ''; buildPhase = '' runHook preBuild python3 ./tools/build.py \ --no-clang \ --mode=${if debug then "debug" else "release"} \ --arch=${targetArchInfo.arch} \ --gn-args="${targetArchInfo.arch}_toolchain_prefix=\"${stdenv.cc}/bin/${stdenv.cc.targetPrefix}\"" \ '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' --gn-args="dart_target_arch=\"${targetArchInfo.arch}\"" \ --gn-args="dart_host_arch=\"${buildArchInfo.arch}\"" \ --gn-args="${buildArchInfo.arch}_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \ --gn-args="host_cpu=\"${buildArchInfo.arch}\"" \ --gn-args="dart_force_runtime_snapshot_deps=true" \ --gn-args="host_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \ --gn-args="target_cpu=\"${targetArchInfo.arch}\"" \ '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' --gn-args="dart_embed_icu_data=false dart_snapshot_kind=\"app-jit\"" \ '' + '' --gn-args="dart_sysroot=\"\"" \ --no-verify-sdk-hash \ create_sdk runtime runHook postBuild ''; installPhase = '' runHook preInstall pushd out/${if debug then "Debug" else "Release"}${ if (stdenv.hostPlatform == stdenv.buildPlatform) then targetArchInfo.outSuffix else "*" }/dart-sdk rm LICENSE README revision cp --recursive . $out popd runHook postInstall ''; passthru.updateScript = writeShellScript "update-dart" '' ${lib.getExe nix-update} --version=$(${lib.getExe curlMinimal} --fail --location --silent https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION | ${lib.getExe jq} --raw-output .version) ''; meta = oldAttrs.meta // { platforms = [ "aarch64-linux" "x86_64-linux" ]; sourceProvenance = [ lib.sourceTypes.fromSource ]; }; }) pkgs/development/compilers/dart/source/gcc13.patch 0 → 100644 +20 −0 Original line number Diff line number Diff line --- a/runtime/bin/ffi_test/ffi_test_functions_generated.cc +++ b/runtime/bin/ffi_test/ffi_test_functions_generated.cc @@ -11,6 +11,7 @@ #include <sys/types.h> #include <cmath> +#include <cstdint> #include <iostream> #include <limits> --- a/runtime/bin/ffi_test/ffi_test_functions.cc +++ b/runtime/bin/ffi_test/ffi_test_functions.cc @@ -13,6 +13,7 @@ #include <sys/types.h> #include <cmath> +#include <cstdint> #include <iostream> #include <limits> pkgs/development/compilers/dart/source/unbundle-icu.patch 0 → 100644 +64 −0 Original line number Diff line number Diff line From 0d936b3e64e1e629bd29fa4dd84240f5c5344092 Mon Sep 17 00:00:00 2001 From: LN Liberda <lauren@selfisekai.rocks> 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" ] } @@ -1004,10 +1004,12 @@ "..:add_empty_macho_section_config", ] extra_deps = [ - ":icudtl_cc", "..:libdart_aotruntime", "../platform:libdart_platform_aotruntime", ] + if (dart_embed_icu_data) { + extra_deps += [":icudtl_cc"] + } extra_sources = [ "builtin.cc", "gzip.cc", 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() { Loading
pkgs/development/compilers/dart/default.nix +6 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ stdenv, fetchurl, unzip, bintools, versionCheckHook, runCommand, cctools, Loading Loading @@ -48,7 +47,12 @@ stdenv.mkDerivation (finalAttrs: { cp -R . $out '' + lib.optionalString (stdenv.hostPlatform.isLinux) '' find $out/bin -executable -type f -exec patchelf --set-interpreter ${bintools.dynamicLinker} {} \; find $out/bin -type f -executable | while read f; do if patchelf --print-interpreter "$f" >/dev/null 2>&1; then patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath "${lib.makeLibraryPath [ (lib.getLib stdenv.cc.cc) ]}" "$f" fi done '' + '' runHook postInstall Loading
pkgs/development/compilers/dart/source/custom-flags.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index b041a075..27dc22ed 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -430,6 +430,10 @@ config("compiler") { } } + cflags_c += string_split(getenv("CFLAGS"), " ") + cflags_cc += string_split(getenv("CXXFLAGS"), " ") + ldflags += string_split(getenv("LDFLAGS"), " ") + # Assign any flags set for the C compiler to asmflags so that they are sent # to the assembler. The Windows assembler takes different types of flags # so only do so for posix platforms.
pkgs/development/compilers/dart/source/default.nix 0 → 100644 +261 −0 Original line number Diff line number Diff line { bintools, buildPackages, callPackage, cacert, curlMinimal, dart, debug ? false, fetchurl, gn, gitMinimal, gitSetupHook, icu, jq, lib, nix-update, pax-utils, pkg-config, python312, ripgrep, runCommand, samurai, stdenv, versionCheckHook, writeShellScript, writeText, zlib, }: let version = "3.11.0"; tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; }; getArchInfo = platform: let arch = if platform.isx86_64 then "x64" else platform.linuxArch; in { inherit arch; outSuffix = lib.strings.toUpper arch; }; targetArchInfo = getArchInfo stdenv.hostPlatform; buildArchInfo = getArchInfo stdenv.buildPlatform; python3 = python312.withPackages ( ps: with ps; [ httplib2 six ] ); src = runCommand "dart-source-deps" { pname = "dart-source-deps"; inherit version; nativeBuildInputs = [ cacert curlMinimal gitMinimal pax-utils python3 tools.cipd ]; env = { NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; DEPOT_TOOLS_UPDATE = "0"; DEPOT_TOOLS_COLLECT_METRICS = "0"; PYTHONDONTWRITEBYTECODE = "1"; CIPD_HTTP_USER_AGENT = "standard-nix-build"; }; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "sha256-7y6kNpjWpc8+4Rhv+GuMnV5xHCQ5om2/3woZOJ8wYSc="; } '' mkdir source cd source source ${../../../../build-support/fetchgit/deterministic-git} export -f clean_git export -f make_deterministic_repo cp ${writeText ".gclient" '' solutions = [{ 'name': 'sdk', 'url': 'https://dart.googlesource.com/sdk.git@${version}', }] target_os = ['linux'] target_cpu = ['x64', 'arm64', 'riscv64'] target_cpu_only = True ''} .gclient export PATH=${python3}/bin:$PATH:${tools.depot_tools} python3 ${tools.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks find sdk -name ".versions" -type d -exec rm -rf {} + rm --recursive --force sdk/buildtools/sysroot rm --recursive --force sdk/buildtools/linux-arm64 rm --recursive --force sdk/buildtools/reclient rm --recursive --force sdk/buildtools/*/clang find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete rm --recursive --force sdk/tools/sdks/dart-sdk find . -type l ! -exec test -e {} \; -delete find . -name "ChangeLog*" -delete rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes rm --recursive --force .cipd .cipd_cache find . -name ".git" -type d -prune -exec rm --recursive --force {} + find . -name ".git*" -exec rm --recursive --force {} + find . \( \ -name ".build-id" -o \ -name ".svn" -o \ -name "*~" -o \ -name "#*#" \ \) -exec rm --recursive --force {} + for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do rm --force "$elf" done find . -name "__pycache__" -type d -exec rm --recursive --force {} + find . -name "*.pyc" -delete cp --recursive sdk $out ''; in dart.overrideAttrs (oldAttrs: { inherit version src; nativeBuildInputs = [ gitMinimal gitSetupHook python312 ripgrep pkg-config ]; buildInputs = lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ icu zlib ]; patches = [ ./gcc13.patch ./zlib-not-found.patch ./custom-flags.patch ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ./unbundle.patch ./unbundle-icu.patch ]; postPatch = '' sed --in-place 's/"-fsanitize=memory"//g' build/config/compiler/BUILD.gn patchShebangs runtime/tools/ sed --in-place 's/ldflags = pkgresult\[4\]/ldflags = []/' build/config/linux/pkg_config.gni cp ${ fetchurl { url = "https://raw.githubusercontent.com/chromium/chromium/631a813125b886a52274653144019fd1681a0e97/build/config/linux/pkg-config.py"; hash = "sha256-9coRpgCewlkFXSGrMVkudaZUll0IFc9jDRBP+2PloOI="; } } build/config/linux/pkg-config.py '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' sed --in-place "s/default='pkg-config'/default='${stdenv.cc.targetPrefix}pkg-config'/g" build/config/linux/pkg-config.py mkdir --parents .bin-tools ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}g++) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-g++ ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}gcc) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-gcc ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}ar) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-ar export PATH=$PWD/.bin-tools:$PATH '' + '' ln --symbolic ${buildPackages.dart} tools/sdks/dart-sdk ln --symbolic --force ${lib.getExe buildPackages.gn} buildtools/gn mkdir --parents buildtools/ninja ln --symbolic --force ${lib.getExe buildPackages.samurai} buildtools/ninja/ninja python3 tools/generate_package_config.py python3 tools/generate_sdk_version_file.py echo "" > tools/bots/dartdoc_footer.html rm third_party/devtools/web/devtools_analytics.js JOBS_COUNT=''${NIX_BUILD_CORES:-2} rg --no-ignore -l 'google-analytics\.com' . \ | rg -v "\.map\$" \ | xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \ sed --in-place --regexp-extended 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g' rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \ | xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \ sed --in-place --regexp-extended 's|UA-[0-9]+-[0-9]+|UA-2137-0|g' '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' for _lib in icu zlib; do find . -type f -path "*third_party/$_lib/*" \ \! -path "*third_party/$_lib/chromium/*" \ \! -path "*third_party/$_lib/google/*" \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done python3 build/linux/unbundle/replace_gn_files.py --system-libraries icu zlib '' + '' git init git add . git commit --message="stub" --quiet ''; buildPhase = '' runHook preBuild python3 ./tools/build.py \ --no-clang \ --mode=${if debug then "debug" else "release"} \ --arch=${targetArchInfo.arch} \ --gn-args="${targetArchInfo.arch}_toolchain_prefix=\"${stdenv.cc}/bin/${stdenv.cc.targetPrefix}\"" \ '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' --gn-args="dart_target_arch=\"${targetArchInfo.arch}\"" \ --gn-args="dart_host_arch=\"${buildArchInfo.arch}\"" \ --gn-args="${buildArchInfo.arch}_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \ --gn-args="host_cpu=\"${buildArchInfo.arch}\"" \ --gn-args="dart_force_runtime_snapshot_deps=true" \ --gn-args="host_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \ --gn-args="target_cpu=\"${targetArchInfo.arch}\"" \ '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' --gn-args="dart_embed_icu_data=false dart_snapshot_kind=\"app-jit\"" \ '' + '' --gn-args="dart_sysroot=\"\"" \ --no-verify-sdk-hash \ create_sdk runtime runHook postBuild ''; installPhase = '' runHook preInstall pushd out/${if debug then "Debug" else "Release"}${ if (stdenv.hostPlatform == stdenv.buildPlatform) then targetArchInfo.outSuffix else "*" }/dart-sdk rm LICENSE README revision cp --recursive . $out popd runHook postInstall ''; passthru.updateScript = writeShellScript "update-dart" '' ${lib.getExe nix-update} --version=$(${lib.getExe curlMinimal} --fail --location --silent https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION | ${lib.getExe jq} --raw-output .version) ''; meta = oldAttrs.meta // { platforms = [ "aarch64-linux" "x86_64-linux" ]; sourceProvenance = [ lib.sourceTypes.fromSource ]; }; })
pkgs/development/compilers/dart/source/gcc13.patch 0 → 100644 +20 −0 Original line number Diff line number Diff line --- a/runtime/bin/ffi_test/ffi_test_functions_generated.cc +++ b/runtime/bin/ffi_test/ffi_test_functions_generated.cc @@ -11,6 +11,7 @@ #include <sys/types.h> #include <cmath> +#include <cstdint> #include <iostream> #include <limits> --- a/runtime/bin/ffi_test/ffi_test_functions.cc +++ b/runtime/bin/ffi_test/ffi_test_functions.cc @@ -13,6 +13,7 @@ #include <sys/types.h> #include <cmath> +#include <cstdint> #include <iostream> #include <limits>
pkgs/development/compilers/dart/source/unbundle-icu.patch 0 → 100644 +64 −0 Original line number Diff line number Diff line From 0d936b3e64e1e629bd29fa4dd84240f5c5344092 Mon Sep 17 00:00:00 2001 From: LN Liberda <lauren@selfisekai.rocks> 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" ] } @@ -1004,10 +1004,12 @@ "..:add_empty_macho_section_config", ] extra_deps = [ - ":icudtl_cc", "..:libdart_aotruntime", "../platform:libdart_platform_aotruntime", ] + if (dart_embed_icu_data) { + extra_deps += [":icudtl_cc"] + } extra_sources = [ "builtin.cc", "gzip.cc", 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() {