From 0da58802cf463cd6ab18958867eb56455a61ffa6 Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Wed, 25 May 2016 14:32:57 -0700 Subject: [PATCH] Fix aot compiler and linker args --- .../lib/src/commands/build_aot.dart | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart index 6940183ca76..c18bfdd716c 100644 --- a/packages/flutter_tools/lib/src/commands/build_aot.dart +++ b/packages/flutter_tools/lib/src/commands/build_aot.dart @@ -258,18 +258,32 @@ String buildAotSnapshot( String kDartVmIsolateSnapshotBufferO = path.join(outputDir.path, '$kDartVmIsolateSnapshotBuffer.o'); String kDartIsolateSnapshotBufferO = path.join(outputDir.path, '$kDartIsolateSnapshotBuffer.o'); + List commonBuildOptions = ['-arch', 'arm64', '-miphoneos-version-min=8.0']; if (!interpreter) - runCheckedSync(['xcrun', 'cc', '-c', assembly, '-o', assemblyO]); - runCheckedSync(['xcrun', 'cc', '-c', kDartVmIsolateSnapshotBufferC, '-o', kDartVmIsolateSnapshotBufferO]); - runCheckedSync(['xcrun', 'cc', '-c', kDartIsolateSnapshotBufferC, '-o', kDartIsolateSnapshotBufferO]); + runCheckedSync(['xcrun', 'cc'] + ..addAll(commonBuildOptions) + ..addAll(['-c', assembly, '-o', assemblyO])); + runCheckedSync(['xcrun', 'cc'] + ..addAll(commonBuildOptions) + ..addAll(['-c', kDartVmIsolateSnapshotBufferC, '-o', kDartVmIsolateSnapshotBufferO])); + runCheckedSync(['xcrun', 'cc'] + ..addAll(commonBuildOptions) + ..addAll(['-c', kDartIsolateSnapshotBufferC, '-o', kDartIsolateSnapshotBufferO])); String appSo = path.join(outputDir.path, 'app.so'); - List linkCommand = [ - 'xcrun', 'ld', '-dylib', '-o', appSo, - kDartVmIsolateSnapshotBufferO, - kDartIsolateSnapshotBufferO, - ]; + List linkCommand = ['xcrun', 'clang'] + ..addAll(commonBuildOptions) + ..addAll([ + '-dynamiclib', + '-nostdlib', + '-Xlinker', '-rpath', '-Xlinker', '@executable_path/Frameworks', + '-Xlinker', '-rpath', '-Xlinker', '@loader_path/Frameworks', + '-install_name', '@rpath/app.so', + '-o', appSo, + kDartVmIsolateSnapshotBufferO, + kDartIsolateSnapshotBufferO, + ]); if (!interpreter) linkCommand.add(assemblyO); runCheckedSync(linkCommand);