Chromium Code Reviews| Index: tools/testing/dart/compiler_configuration.dart |
| diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart |
| index 161252a17841a0569f90098f660039ae6d641b04..7c0945eed81bb9cc15f7e1385d269f4a75529e0c 100644 |
| --- a/tools/testing/dart/compiler_configuration.dart |
| +++ b/tools/testing/dart/compiler_configuration.dart |
| @@ -79,7 +79,8 @@ abstract class CompilerConfiguration { |
| isDebug: isDebug, |
| isChecked: isChecked, |
| arch: configuration['arch'], |
| - useBlobs: useBlobs); |
| + useBlobs: useBlobs, |
| + isAndroid: configuration['system'] == 'android'); |
| case 'none': |
| return new NoneCompilerConfiguration( |
| isDebug: isDebug, |
| @@ -302,11 +303,11 @@ class Dart2jsCompilerConfiguration extends Dart2xCompilerConfiguration { |
| class PrecompilerCompilerConfiguration extends CompilerConfiguration { |
| final String arch; |
| final bool useBlobs; |
| + final bool isAndroid; |
| - PrecompilerCompilerConfiguration({bool isDebug, bool isChecked, String arch, bool useBlobs}) |
| - : super._subclass(isDebug: isDebug, isChecked: isChecked), |
| - arch = arch, |
| - useBlobs = useBlobs; |
| + PrecompilerCompilerConfiguration({bool isDebug, bool isChecked, |
| + this.arch, this.useBlobs, this.isAndroid}) |
| + : super._subclass(isDebug: isDebug, isChecked: isChecked); |
| int computeTimeoutMultiplier() { |
| int multiplier = 2; |
| @@ -345,6 +346,9 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration { |
| if (useBlobs) { |
| args.add("--use_blobs"); |
| } |
| + if (isAndroid && arch == 'arm') { |
| + args.add('--no-sim-use-hardfp'); |
| + } |
| args.addAll(arguments); |
| return commandBuilder.getCompilationCommand('precompiler', tempDir, !useSdk, |
| @@ -357,7 +361,8 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration { |
| CommandBuilder commandBuilder, |
| List arguments, |
| Map<String, String> environmentOverrides) { |
| - var cc, cc_flags, shared, libname; |
| + |
| + var cc, shared, libname; |
| if (Platform.isLinux) { |
| cc = 'gcc'; |
| shared = '-shared'; |
| @@ -369,17 +374,24 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration { |
| } else { |
| throw "Platform not supported: ${Platform.operatingSystem}"; |
| } |
| + if (isAndroid) { |
| + // TODO: If we're not using "--use_blobs" we need to use the arm cross |
| + // compiler instead of just 'gcc' for . |
| + } |
| + var cc_flags; |
| if (arch == 'x64') { |
| cc_flags = "-m64"; |
| } else if (arch == 'simarm64') { |
| cc_flags = "-m64"; |
| + } else if (arch == 'ia32') { |
| + cc_flags = "-m32"; |
| } else if (arch == 'simarm') { |
| cc_flags = "-m32"; |
| } else if (arch == 'simmips') { |
| cc_flags = "-m32"; |
| } else if (arch == 'arm') { |
| - cc_flags = ""; |
| + cc_flags = null; |
| } else if (arch == 'mips') { |
| cc_flags = "-EL"; |
| } else { |
| @@ -387,13 +399,12 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration { |
| } |
| var exec = cc; |
| - var args = [ |
| - shared, |
| - cc_flags, |
| + var args = (cc_flags != null) ? [ shared, cc_flags ] : [ shared ]; |
|
Bill Hesse
2016/04/27 13:54:40
I like this better.
kustermann
2016/05/02 10:40:23
Acknowledged.
|
| + args.addAll([ |
| '-o', |
| '$tempDir/$libname', |
| '$tempDir/precompiled.S' |
| - ]; |
| + ]); |
| return commandBuilder.getCompilationCommand('assemble', tempDir, !useSdk, |
| bootstrapDependencies(buildDir), exec, args, environmentOverrides); |