Skip to content

Commit 50b6a78

Browse files
[native_toolchain_c] Setup Android RISCV64 toolchain. (#165)
1 parent aa58de6 commit 50b6a78

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

pkgs/native_toolchain_c/lib/src/cbuilder/run_cbuilder.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ class RunCBuilder {
133133
// See https://github.com/dart-lang/native/issues/171.
134134
late final int targetAndroidNdkApi;
135135
if (target.os == OS.android) {
136-
targetAndroidNdkApi = max(buildConfig.targetAndroidNdkApi!, 21);
136+
final minimumApi = target == Target.androidRiscv64 ? 35 : 21;
137+
targetAndroidNdkApi = max(buildConfig.targetAndroidNdkApi!, minimumApi);
137138
}
138139

139140
await runProcess(
@@ -294,6 +295,7 @@ class RunCBuilder {
294295
Target.androidArm64: 'aarch64-linux-android',
295296
Target.androidIA32: 'i686-linux-android',
296297
Target.androidX64: 'x86_64-linux-android',
298+
Target.androidRiscv64: 'riscv64-linux-android',
297299
};
298300

299301
static const appleClangMacosTargetFlags = {

pkgs/native_toolchain_c/test/cbuilder/cbuilder_cross_android_test.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,24 @@ void main() {
1717
Target.androidArm64,
1818
Target.androidIA32,
1919
Target.androidX64,
20+
// TODO(rmacnak): Enable when stable NDK 27 is available.
21+
// Target.androidRiscv64,
2022
];
2123

2224
const readElfMachine = {
2325
Target.androidArm: 'ARM',
2426
Target.androidArm64: 'AArch64',
2527
Target.androidIA32: 'Intel 80386',
2628
Target.androidX64: 'Advanced Micro Devices X86-64',
29+
Target.androidRiscv64: 'RISC-V',
2730
};
2831

2932
const objdumpFileFormat = {
3033
Target.androidArm: 'elf32-littlearm',
3134
Target.androidArm64: 'elf64-littleaarch64',
3235
Target.androidIA32: 'elf32-i386',
3336
Target.androidX64: 'elf64-x86-64',
37+
Target.androidRiscv64: 'elf64-littleriscv',
3438
};
3539

3640
/// From https://docs.flutter.dev/reference/supported-platforms.

0 commit comments

Comments
 (0)