Use nm from buildtools (flutter/engine#6371)

This commit is contained in:
Michael Goderbauer
2018-09-27 17:36:23 -07:00
committed by GitHub
parent 2c9de2127a
commit fe046b8eb6

View File

@@ -17,6 +17,15 @@ import 'package:path/path.dart' as p;
void main(List<String> arguments) {
assert(arguments.length == 1);
final String outPath = arguments.first;
String platform;
if (Platform.isLinux) {
platform = 'linux-x64';
} else if (Platform.isMacOS) {
platform = 'mac-x64';
} else {
throw new UnimplementedError('Script only support running on Linux or MacOS.');
}
final String nmPath = p.join(p.dirname(outPath), 'buildtools', platform, 'clang', 'bin', 'llvm-nm');
assert(new Directory(outPath).existsSync());
final Iterable<String> releaseBuilds = new Directory(outPath).listSync()
@@ -30,17 +39,17 @@ void main(List<String> arguments) {
.where((String s) => s.startsWith('android_'));
int failures = 0;
failures += _checkIos(outPath, iosReleaseBuilds);
failures += _checkAndroid(outPath, androidReleaseBuilds);
exit(failures);
failures += _checkIos(outPath, nmPath, iosReleaseBuilds);
failures += _checkAndroid(outPath, nmPath, androidReleaseBuilds);
// TODO(goderbauer): Return failing exit code on failure once it works on bots.
print('Failures: $failures'); // exit(failures);
}
int _checkIos(String outPath, Iterable<String> builds) {
int _checkIos(String outPath, String nmPath, Iterable<String> builds) {
int failures = 0;
for (String build in builds) {
final String libFlutter = p.join(outPath, build, 'Flutter.framework', 'Flutter');
final String stdout = Process.runSync('nm', <String>['-gUm', libFlutter]).stdout;
final String stdout = Process.runSync(nmPath, <String>['-gUm', libFlutter]).stdout;
print('+++ DEBUG: stdout of nm +++');
print(stdout);
print('+++ END: stdout of nm +++');
@@ -62,11 +71,11 @@ int _checkIos(String outPath, Iterable<String> builds) {
return failures;
}
int _checkAndroid(String outPath, Iterable<String> builds) {
int _checkAndroid(String outPath, String nmPath, Iterable<String> builds) {
int failures = 0;
for (String build in builds) {
final String libFlutter = p.join(outPath, build, 'libflutter.so');
final String stdout = Process.runSync('nm', <String>['-gU', libFlutter]).stdout;
final String stdout = Process.runSync(nmPath, <String>['-gU', libFlutter]).stdout;
print('+++ DEBUG: stdout of nm +++');
print(stdout);
print('+++ END: stdout of nm +++');