Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
3e72412
chore: squash all commits on top of 3.35.7
eseidel Nov 14, 2025
c145834
chore: run et format
eseidel Nov 14, 2025
b342bca
fix: update name to application_library_paths
eseidel Nov 15, 2025
fc0faa9
fix: attempt to fix builds
eseidel Nov 15, 2025
2060343
chore: add missing header for ios
eseidel Nov 17, 2025
24544ce
fix: linux android build
eseidel Nov 17, 2025
7b3001e
fix: attempt to fix shorebird flutter_tools changes
eseidel Nov 17, 2025
64a3a4c
feat: make it possible to load two patches into the runtime at once (…
eseidel Dec 12, 2025
193aaec
feat: shorebird flutter should work without setting FLUTTER_STORAGE_B…
eseidel Dec 12, 2025
bfe4181
chore: move build_engine scripts into this repo (#98)
eseidel Dec 12, 2025
e48cdb3
chore: update to use new CreateGroupIsolate API (#99)
eseidel Dec 16, 2025
bf069ba
bump updater rev
bryanoltman Dec 19, 2025
612ef13
fix: crash after patching on iOS
eseidel Dec 31, 2025
f140e07
fix: revert to using Shorebird_SetBaseSnapshots to stop iOS crashers
eseidel Jan 6, 2026
8c6c3f2
chore: fix linux
eseidel Jan 9, 2026
f01fbff
feat: add support for patch_verification_mode (#100)
eseidel Jan 11, 2026
b4fb92a
chore: roll updater to 8691c8f60e69f8eb1f35361f4a22e8c9a7fdf93c to in…
eseidel Jan 11, 2026
1d0a046
fix: use of FlutterEngineGroup breaks patching (#101)
eseidel Jan 23, 2026
2e82c72
chore: add a C++ interface onto the updater (#102)
eseidel Jan 23, 2026
b8be2b2
fix: start/success reporting (#103)
eseidel Jan 31, 2026
d5ae853
fix: only call shorebird_report_start once (#105)
eseidel Feb 3, 2026
32b1878
feat: show logs when running shorebird_tests (#106)
eseidel Feb 3, 2026
9b6f5f6
perf: speed up shorebird_tests with template project and Gradle cache…
eseidel Feb 3, 2026
00f9e6f
fix: throw on copy failure in _copyTemplateProject (#109)
eseidel Feb 3, 2026
26c7a32
chore: split CI into parallel jobs (#110)
eseidel Feb 3, 2026
8a1af6c
feat: add sharded CI build runner (#111)
eseidel Feb 4, 2026
8cbbc62
fix: add Rust build steps to each shard that needs libupdater (#112)
eseidel Feb 4, 2026
dc7fbea
fix: remove duplicate --help flag in finalize.dart
eseidel Feb 4, 2026
8b2e675
fix: resolve .cmd executables on Windows for gsutil/gcloud
eseidel Feb 5, 2026
1e4b3f6
style: format process.dart
eseidel Feb 5, 2026
a70f3d6
fix: remove Rust steps from iOS simulator shards
eseidel Feb 5, 2026
cfdf3e3
fix: restore Rust for x64 iOS simulator shards
eseidel Feb 5, 2026
ed5f9ab
fix: update NDK path for unmodified Android SDK CIPD package
bdero Feb 11, 2026
7ba6bf5
fix: format shard_runner config.dart
bdero Feb 25, 2026
dd27f60
fix: format shard_runner config.dart for stable SDK formatter
bdero Mar 12, 2026
9f26114
fix: Update iOS dSYM filename in artifact manifest (#113)
eseidel Mar 13, 2026
6f681ed
fix: filter non-stable version branches in shorebird version detectio…
bdero Mar 27, 2026
97b22a7
Integrate Rust updater build into GN/Ninja (#120)
bdero Apr 1, 2026
60cd189
fix: thread Apple deployment target into Rust updater build (#123)
eseidel Apr 8, 2026
1d02050
fix: put cargo target dir inside the GN build output dir (#124)
eseidel Apr 8, 2026
4c88c6a
fix: force static CRT for cc-compiled C deps on Windows (#125)
eseidel Apr 8, 2026
403e1cc
fix: remove legacy pre-GN cargo preamble from CI build scripts (#127)
eseidel Apr 8, 2026
3f8587f
fix: declare libupdater.a as an output of build_rust_updater action (…
eseidel Apr 8, 2026
b100917
fix: gate shorebird_updater_supported on having a known rust target (…
eseidel Apr 8, 2026
f2bf263
ci: upload patch-darwin-arm64.zip alongside x64 (#129)
bdero Apr 9, 2026
99dd8d6
Add --trace flag to flutter build apk for build profiling (#116)
eseidel Apr 20, 2026
8ff491f
feat: add verbose logging to shorebird_tests for CI debugging (#107)
eseidel Apr 23, 2026
8a612c7
refactor: split shorebird C API consumption (engine side of updater #…
eseidel May 4, 2026
6783a95
ci: add aggregator job for branch protection (#139)
eseidel May 6, 2026
f01f5a7
fix: honor --flavor for ios-framework builds (#141)
eseidel May 7, 2026
ad538bb
chore: bump Updater to 90c349287d17
bdero May 7, 2026
88f06a2
fix: update build_rust_updater cbindgen inputs after #350 API split (…
bdero May 7, 2026
07fbe09
fix: drop stale shorebird_check_for_update/shorebird_update from Wind…
bdero May 7, 2026
c503b56
ci(shorebird): drop iOS Rust targets from macOS android shard (#143)
eseidel May 8, 2026
100abbe
ci(shorebird): stream child stdout/stderr from shard_runner (#144)
eseidel May 8, 2026
29646b6
ci(shorebird): remove shard_runner package; now lives in _build_engin…
eseidel May 8, 2026
ef0b004
ci(shorebird): add dst + artifacts to compose.json; mac framework art…
eseidel May 8, 2026
0818594
ci(shorebird): add shell steps for engine_stamp.json + aot-tools.dill…
eseidel May 8, 2026
cbb9d8f
ci(shorebird): drop --offline from aot-tools pub get (#148)
eseidel May 8, 2026
412bbb5
Revert "ci(shorebird): drop --offline from aot-tools pub get" (#148) …
eseidel May 8, 2026
27722ce
ci(shorebird): rename macos-framework dst to framework.zip (#150)
eseidel May 8, 2026
e2be75e
ci(shorebird): use framework.zip as macos-framework src (xcframework,…
eseidel May 8, 2026
b43af3b
shorebird/ci: drop iOS extension-safe shards from the engine build (#…
eseidel May 13, 2026
c09ef48
feat: add 2-pass release build for Dynamic Dispatch table (#119)
bdero May 14, 2026
8b34ea9
chore: bump dart_sdk_revision to 891af5fbc14 for runtime_offsets regen
bdero May 14, 2026
991a9a9
chore: bump dart_sdk_revision to 92e56f760b0 for DD field move + regen
bdero May 14, 2026
ed52e03
chore: bump updater_rev to fe37333 for inflate diagnostic counters
bdero May 14, 2026
20a9c40
debug: log per-blob sizes from SnapshotsDataHandle::createForSnapshots
bdero May 14, 2026
93819fb
debug: log per-mapping sizes from SetBaseSnapshot
bdero May 14, 2026
5c9d1f6
engine: align Seek return value with io::Seek contract + add per-blob…
bdero May 15, 2026
0884783
ci(shards): split windows/host into host-release and host-debug (#153)
eseidel May 15, 2026
d7fdd70
chore: bump dart_sdk_revision to 3989e7a01cd for customer fix test
bdero May 16, 2026
6130435
fix(android): demote libapp.so.sym/dbg check to warning (Part 1 of 3.…
bdero May 12, 2026
fb10f27
fix(macos): skip DD 2-pass on macOS until per-arch support lands
bdero May 20, 2026
9d01c83
ci: pull upstream's fixed freeze.yml (was broken YAML on stable) (#156)
eseidel Jun 2, 2026
99f7688
shorebird: consume our published Dart SDK on mac-arm64 (skip rebuildi…
eseidel Jun 5, 2026
5590bf8
chore: bump Dart to 0e6acdc83e3
bdero Jun 5, 2026
228f45c
Reconcile flutter_tools tests with upstream 3.44.1 (#157)
eseidel Jun 5, 2026
2293b0a
fix: restore --no-prebuilt-dart-sdk on mac-arm64 dart_sdk step
bdero Jun 5, 2026
a111c9f
Bump flutter_flavorizr to published 2.5.0 (fix flavor APK build) (#158)
eseidel Jun 5, 2026
6094eb5
chore: reset DEPS to upstream 3.44.4 + shorebird overlay (Dart db98bd…
bdero Jun 22, 2026
e1eaecb
chore: bump Updater to 1f85c4a
bdero Jul 7, 2026
309dd65
chore: bump engine to e1eaecb
nickshorebird Jul 20, 2026
bd60e39
feat: hot restart of production apps via package:shorebird_code_push
bdero Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: ci

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
pull_request:
push:
branches:
- main

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

runs-on: ${{ matrix.os }}

name: 🧪 Test

env:
FLUTTER_STORAGE_BASE_URL: https://download.shorebird.dev

steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
# Fetch all branches and tags to ensure that Flutter can determine its version
fetch-depth: 0

- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1

- name: 📦 Install Dependencies
run: |
dart pub get -C ./dev/bots
dart pub get -C ./dev/tools

- name: 🧪 Run Tests
run: dart ./dev/bots/test.dart
32 changes: 6 additions & 26 deletions .github/workflows/freeze.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,14 @@ jobs:
name: Check Code Freeze
runs-on: ubuntu-latest
if: ${{ github.repository == 'flutter/flutter' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}

steps:
- name: Check for changes in frozen folders
if: github.event_name != 'merge_group'
uses: dorny/paths-filter@v3
id: filter
with:
token: ${{ github.token }}
filters: |
frozen:
- 'packages/flutter/lib/src/material/**'
Expand All @@ -46,27 +44,9 @@ jobs:
- 'packages/flutter/test_fixes/cupertino/**'

- name: Fail on frozen changes
# This step only runs if the 'frozen' filter matched AND the override label is NOT present
if: |
steps.filter.outputs.frozen == 'true' &&
!contains(github.event.pull_request.labels.*.name, 'override: code freeze')
if: github.event_name != 'merge_group' && steps.filter.outputs.frozen == 'true' && !contains(github.event.pull_request.labels.*.name, 'override code freeze')
run: |
echo "Error: Code changes detected during the current code freeze."
echo "The following paths are currently frozen:"
echo " - packages/flutter/lib/src/material/"
echo " - packages/flutter/lib/src/cupertino/"
echo " - (and associated tests/examples)"
echo ""
echo "If this is a critical fix that must land during the freeze, please file an issue for team-design."
echo "Information on this code freeze: https://github.com/flutter/flutter/issues/184093"
echo "If this is a critical fix that must land, please file an issue for team-design."
echo "Info: https://github.com/flutter/flutter/issues/184093"
exit 1

- name: Pass if overridden
if: |
steps.filter.outputs.frozen == 'true' &&
contains(github.event.pull_request.labels.*.name, 'override: code freeze')
run: echo "Code freeze overridden by override: code freeze label."

- name: Pass if no frozen changes
if: steps.filter.outputs.frozen == 'false'
run: echo "No changes to frozen code."
130 changes: 130 additions & 0 deletions .github/workflows/shorebird_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: shorebird_ci

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
pull_request:
push:
branches:
- shorebird/dev

jobs:
# NOTE: Windows is not included because shorebird_tests depends on
# flutter_flavorizr which requires Xcode. Additionally, flutter_tools
# tests on Windows would need additional setup work.

flutter-tools-tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]

runs-on: ${{ matrix.os }}

name: 🛠️ Flutter Tools Tests (${{ matrix.os }})

steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1

- name: 🐦 Run Flutter Tools Tests
run: ../../bin/flutter test test/general.shard
working-directory: packages/flutter_tools

shorebird-android-tests:
# Android tests run on Ubuntu (faster runners, no macOS needed)
runs-on: ubuntu-latest

name: 🤖 Shorebird Android Tests

steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1

- uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"

- name: 📦 Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: 🤖 Run Android Tests
run: dart test test/base_test.dart test/android_test.dart
working-directory: packages/shorebird_tests

shorebird-ios-tests:
# iOS tests require macOS for Xcode
runs-on: macos-latest

name: 🍎 Shorebird iOS + Android Smoke Tests

steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1

- uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"

- name: 📦 Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: 🍎 Run iOS Tests
run: dart test test/base_test.dart test/ios_test.dart
working-directory: packages/shorebird_tests

- name: 🤖 Run Android Smoke Test (macOS)
# Quick sanity check that Android builds work on macOS too
run: dart test test/android_test.dart --name "can build an apk"
working-directory: packages/shorebird_tests
env:
# Enables streaming subprocess output for debugging timeouts.
VERBOSE: "1"

# Aggregator required by branch protection on shorebird/dev so the rule can
# list a single context ("ci") instead of every matrix-expanded job above.
ci:
if: always()
needs:
- flutter-tools-tests
- shorebird-android-tests
- shorebird-ios-tests
runs-on: ubuntu-latest
steps:
- if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
run: |
echo "One or more upstream jobs failed or were cancelled."
exit 1
34 changes: 29 additions & 5 deletions DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ vars = {
'skia_git': 'https://skia.googlesource.com',
'llvm_git': 'https://llvm.googlesource.com',
'skia_revision': 'e9ed4fc9f1544c58d8a9347c1fc9471d8dd7c465',
# Our dart-sdk fork revision. Used both for the third_party/dart source
# clone (gen_snapshot etc.) and to key the macos-arm64 prebuilt object in
# GCS, so source and prebuilt stay the same revision. A published prebuilt
# must exist for this sha (see the macos-arm64 dart-sdk gcs dep below).
"dart_sdk_revision": "db98bdaa9d8f8e2250ff83d24abcaf775807244c",
"dart_sdk_git": "git@github.com:shorebirdtech/dart-sdk.git",
"updater_git": "https://github.com/shorebirdtech/updater.git",
"updater_rev": "1f85c4ab1ee5b540269b9859c75e1bffbb9050c7",

# WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY
# See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
Expand Down Expand Up @@ -284,7 +292,7 @@ deps = {
'https://boringssl.googlesource.com/boringssl.git' + '@' + Var('dart_boringssl_rev'),

'engine/src/flutter/third_party/dart':
Var('dart_git') + '/sdk.git' + '@' + Var('dart_revision'),
Var('dart_sdk_git') + '@' + Var('dart_sdk_revision'),

# WARNING: Unused Dart dependencies in the list below till "WARNING:" marker are removed automatically - see create_updated_flutter_deps.py.

Expand Down Expand Up @@ -396,14 +404,27 @@ deps = {
'dep_type': 'cipd',
'condition': 'host_os == "mac" and download_dart_sdk'
},
# Consume Shorebird's own published Dart SDK (built from
# shorebirdtech/dart-sdk) from GCS instead of Google's CIPD prebuilt, so
# the engine builds against our Dart fork and skips rebuilding it from
# source (see shards/macos.json: mac-arm64 drops --no-prebuilt-dart-sdk).
# The object is keyed by Var('dart_sdk_revision') so it tracks the same
# fork revision as the source clone above; sha256sum/size_bytes pin the
# specific artifact's content and must be updated whenever that revision
# bumps. tar.gz (not zip) so gclient's extraction preserves the executable
# bit on bin/dart etc. The bot reads this private bucket via a keyless-WIF
# reader SA (shorebirdtech/_build_engine sync.yaml).
'engine/src/flutter/prebuilts/macos-arm64/dart-sdk': {
'packages': [
'bucket': 'shorebird-dart-sdk-prebuilt',
'objects': [
{
'package': 'flutter/dart-sdk/mac-arm64',
'version': 'git_revision:'+Var('dart_revision')
'object_name': Var('dart_sdk_revision') + '/dart-sdk-darwin-arm64.tar.gz',
'sha256sum': '7fd7de2d929d6729975bed3cb18ded754fcc023b35f00c61295fb772f63add6c',
'size_bytes': 205231858,
'generation': 1781242258444863,
}
],
'dep_type': 'cipd',
'dep_type': 'gcs',
'condition': 'host_os == "mac" and download_dart_sdk'
},
'engine/src/flutter/prebuilts/windows-x64/dart-sdk': {
Expand Down Expand Up @@ -481,6 +502,9 @@ deps = {
'engine/src/flutter/third_party/ocmock':
Var('flutter_git') + '/third_party/ocmock' + '@' + Var('ocmock_rev'),

'engine/src/flutter/third_party/updater':
Var('updater_git') + '@' + Var('updater_rev'),

'engine/src/flutter/third_party/libjpeg-turbo/src':
Var('flutter_git') + '/third_party/libjpeg-turbo' + '@' + '0fb821f3b2e570b2783a94ccd9a2fb1f4916ae9f',

Expand Down
2 changes: 1 addition & 1 deletion bin/internal/engine.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
69c8c61792f04cc809dfef0c910414fb9afc06cd
e1eaecbcac6d9a32cb5590c646e21cf21252cf19
2 changes: 1 addition & 1 deletion bin/internal/update_dart_sdk.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if ((Test-Path $engineStamp) -and ($engineVersion -eq (Get-Content $engineStamp)

$dartSdkBaseUrl = $Env:FLUTTER_STORAGE_BASE_URL
if (-not $dartSdkBaseUrl) {
$dartSdkBaseUrl = "https://storage.googleapis.com"
$dartSdkBaseUrl = "https://download.shorebird.dev"
}
if ($engineRealm) {
$dartSdkBaseUrl = "$dartSdkBaseUrl/$engineRealm"
Expand Down
2 changes: 1 addition & 1 deletion bin/internal/update_dart_sdk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != "$(< "$ENGINE_STAMP")" ];
FIND=find
fi

DART_SDK_BASE_URL="${FLUTTER_STORAGE_BASE_URL:-https://storage.googleapis.com}${ENGINE_REALM:+/$ENGINE_REALM}"
DART_SDK_BASE_URL="${FLUTTER_STORAGE_BASE_URL:-https://download.shorebird.dev}${ENGINE_REALM:+/$ENGINE_REALM}"
DART_SDK_URL="$DART_SDK_BASE_URL/flutter_infra_release/flutter/$ENGINE_VERSION/$DART_ZIP_NAME"

# if the sdk path exists, copy it to a temporary location
Expand Down
2 changes: 1 addition & 1 deletion dev/bots/post_process_docs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Future<void> postProcess() async {
await runProcessWithValidations(<String>[
'curl',
'-L',
'https://storage.googleapis.com/flutter_infra_release/flutter/$revision/api_docs.zip',
'https://download.shorebird.dev/flutter_infra_release/flutter/$revision/api_docs.zip',
'--output',
zipDestination,
'--fail',
Expand Down
2 changes: 1 addition & 1 deletion dev/bots/unpublish_package.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'package:process/process.dart';
const String gsBase = 'gs://flutter_infra_release';
const String releaseFolder = '/releases';
const String gsReleaseFolder = '$gsBase$releaseFolder';
const String baseUrl = 'https://storage.googleapis.com/flutter_infra_release';
const String baseUrl = 'https://download.shorebird.dev/flutter_infra_release';

/// Exception class for when a process fails to run, so we can catch
/// it and provide something more readable than a stack trace.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
def flutterStorageUrl = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://storage.googleapis.com"
def flutterStorageUrl = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://download.shorebird.dev"
maven {
url = uri("$flutterStorageUrl/download.flutter.io")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
val flutterStorageUrl = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://storage.googleapis.com"
val flutterStorageUrl = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://download.shorebird.dev"
maven("$flutterStorageUrl/download.flutter.io")
}
}
Expand Down
4 changes: 2 additions & 2 deletions dev/tools/create_api_docs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -923,8 +923,8 @@ class PlatformDocGenerator {

for (final String platform in kPlatformDocs.keys) {
final String zipFile = kPlatformDocs[platform]!.zipName;
final url =
'https://storage.googleapis.com/${realm}flutter_infra_release/flutter/$engineRevision/$zipFile';
final String url =
'https://download.shorebird.dev/${realm}flutter_infra_release/flutter/$engineRevision/$zipFile';
await _extractDocs(url, platform, kPlatformDocs[platform]!, outputDir);
}
}
Expand Down
10 changes: 9 additions & 1 deletion engine/src/build/config/compiler/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,10 @@ config("compiler") {
# Example PR: https://github.com/dart-lang/native/pull/1615
ldflags += [
"-Wl,--no-undefined",
"-Wl,--exclude-libs,ALL",

# TODO: Terrible hack, but otherwise libupdater.a symbols can't
# be exported from libflutter.so, even when added to android_exports.lst.
# "-Wl,--exclude-libs,ALL",

# Enable identical code folding to reduce size.
"-Wl,--icf=all",
Expand Down Expand Up @@ -646,6 +649,8 @@ config("runtime_library") {
ldflags += [ "-Wl,--warn-shared-textrel" ]

libs += [
# Rust requires libunwind.
"unwind",
"c",
"dl",
"m",
Expand All @@ -660,6 +665,9 @@ config("runtime_library") {
} else if (current_cpu == "x86") {
current_android_cpu = "i686"
}
# libunwind.a is located in the respective android cpu subdirectories.
# The clang version needs to match the version in the lib_dirs line above.
lib_dirs += [ "${android_toolchain_root}/lib/clang/19/lib/linux/${current_android_cpu}/" ]
libs += [ "clang_rt.builtins-${current_android_cpu}-android" ]
}

Expand Down
Loading
Loading