From 88b3ec2a812029763351c58980c233631b5a9c81 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Tue, 31 Mar 2020 22:42:16 -0700 Subject: [PATCH 1/4] allow naughty symbols, roll clang/buildroot --- DEPS | 6 +-- testing/symbols/verify_exported.dart | 76 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index cbaf3ac343815..cd7e020f2522f 100644 --- a/DEPS +++ b/DEPS @@ -136,7 +136,7 @@ allowed_hosts = [ ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'a0fb98af7b6f50f17b47ab7968f3f5664d0d6316', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'ee57ed9459f52adf9165e0adad4e74ba167c2f93', # Fuchsia compatibility # @@ -517,8 +517,8 @@ deps = { 'src/buildtools/{host_os}-x64/clang': { 'packages': [ { - 'package': 'fuchsia/clang/${{platform}}', - 'version': 'git_revision:de39621f0f03f20633bdfa50bde97a3908bf6e98' + 'package': 'fuchsia/third_party/clang/${{platform}}', + 'version': 'git_revision:6e00e3fcb082c3f19309ebc6f184ab326eec3328' } ], 'condition': 'host_os == "mac" or host_os == "linux"', diff --git a/testing/symbols/verify_exported.dart b/testing/symbols/verify_exported.dart index 2b822d08fea79..408d7cd35b304 100644 --- a/testing/symbols/verify_exported.dart +++ b/testing/symbols/verify_exported.dart @@ -110,6 +110,82 @@ int _checkAndroid(String outPath, String nmPath, Iterable builds) { 'JNI_OnLoad': 'T', '_binary_icudtl_dat_size': 'A', '_binary_icudtl_dat_start': 'D', + // TODO(fxb/47943): Remove these once Clang lld does not expose them. + // arm + '__adddf3': 'T', + '__addsf3': 'T', + '__aeabi_cdcmpeq': 'T', + '__aeabi_cdcmple': 'T', + '__aeabi_cdrcmple': 'T', + '__aeabi_d2lz': 'T', + '__aeabi_d2uiz': 'T', + '__aeabi_d2ulz': 'T', + '__aeabi_dadd': 'T', + '__aeabi_dcmpeq': 'T', + '__aeabi_dcmpge': 'T', + '__aeabi_dcmpgt': 'T', + '__aeabi_dcmple': 'T', + '__aeabi_dcmplt': 'T', + '__aeabi_ddiv': 'T', + '__aeabi_dmul': 'T', + '__aeabi_drsub': 'T', + '__aeabi_dsub': 'T', + '__aeabi_f2d': 'T', + '__aeabi_fadd': 'T', + '__aeabi_frsub': 'T', + '__aeabi_fsub': 'T', + '__aeabi_i2d': 'T', + '__aeabi_i2f': 'T', + '__aeabi_l2d': 'T', + '__aeabi_l2f': 'T', + '__aeabi_lasr': 'T', + '__aeabi_ldivmod': 'T', + '__aeabi_llsl': 'T', + '__aeabi_llsr': 'T', + '__aeabi_ui2d': 'T', + '__aeabi_ui2f': 'T', + '__aeabi_uidiv': 'T', + '__aeabi_uidivmod': 'T', + '__aeabi_ul2d': 'T', + '__aeabi_ul2f': 'T', + '__aeabi_uldivmod': 'T', + '__ashldi3': 'T', + '__ashrdi3': 'T', + '__cmpdf2': 'T', + '__divdf3': 'T', + '__divdi3': 'T', + '__eqdf2': 'T', + '__extendsfdf2': 'T', + '__fixdfdi': 'T', + '__fixunsdfdi': 'T', + '__fixunsdfsi': 'T', + '__floatdidf': 'T', + '__floatdisf': 'T', + '__floatsidf': 'T', + '__floatsisf': 'T', + '__floatundidf': 'T', + '__floatundisf': 'T', + '__floatunsidf': 'T', + '__floatunsisf': 'T', + '__gedf2': 'T', + '__gnu_ldivmod_helper': 'T', + '__gnu_uldivmod_helper': 'T', + '__gtdf2': 'T', + '__ledf2': 'T', + '__lshrdi3': 'T', + '__ltdf2': 'T', + '__muldf3': 'T', + '__nedf2': 'T', + '__subdf3': 'T', + '__subsf3': 'T', + '__udivdi3': 'T', + '__udivsi3': 'T', + // arm64 + '__clz_tab': 'R', + '__udivti3': 'T', + // arm64 && x64 + '__emutls_get_address': 'T', + '__emutls_register_common': 'T', }; if (!const MapEquality().equals(entryMap, expectedSymbols)) { print('ERROR: $libFlutter exports the wrong symbols'); From 09e3d7fffe57d2287bbb9adfec3165df8104b0fc Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 01:29:20 -0700 Subject: [PATCH 2/4] older revision of clang --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index cd7e020f2522f..69970d402724b 100644 --- a/DEPS +++ b/DEPS @@ -518,7 +518,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/third_party/clang/${{platform}}', - 'version': 'git_revision:6e00e3fcb082c3f19309ebc6f184ab326eec3328' + 'version': 'git_revision:7e9747b50bcb1be28d4a3236571e8050835497a6' } ], 'condition': 'host_os == "mac" or host_os == "linux"', From 2e8fb0cdc539937dae29420b9534b514eee280af Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 09:04:33 -0700 Subject: [PATCH 3/4] Buildroot to fe13f79dce4ce9aab3209f11988d825dcf580b4a --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 69970d402724b..810d16d75848d 100644 --- a/DEPS +++ b/DEPS @@ -136,7 +136,7 @@ allowed_hosts = [ ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'ee57ed9459f52adf9165e0adad4e74ba167c2f93', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'fe13f79dce4ce9aab3209f11988d825dcf580b4a', # Fuchsia compatibility # From 83e9b69b7a50b4099ace06a23daa6bef073a4f20 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 09:32:19 -0700 Subject: [PATCH 4/4] allow out of order symbols --- testing/symbols/verify_exported.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/testing/symbols/verify_exported.dart b/testing/symbols/verify_exported.dart index 408d7cd35b304..57598a59e8241 100644 --- a/testing/symbols/verify_exported.dart +++ b/testing/symbols/verify_exported.dart @@ -187,7 +187,13 @@ int _checkAndroid(String outPath, String nmPath, Iterable builds) { '__emutls_get_address': 'T', '__emutls_register_common': 'T', }; - if (!const MapEquality().equals(entryMap, expectedSymbols)) { + final Map badSymbols = {}; + for (final String key in entryMap.keys) { + if (entryMap[key] != expectedSymbols[key]) { + badSymbols[key] = entryMap[key]; + } + } + if (badSymbols.isNotEmpty) { print('ERROR: $libFlutter exports the wrong symbols'); print(' Expected $expectedSymbols'); print(' Library has $entryMap.');