From 3e667366a0228444503b2bf71e092215b188c3f7 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 11:07:56 -0700 Subject: [PATCH 1/5] Reland "Roll Clang to v11, roll buildroot to fe13f79dce4ce9aab3209f11988d825dcf580b4a, allow newly exported symbols (#17440)" (#17451)" This reverts commit a870bc533c5bce9526563c3d2f40370e450b85f6. --- DEPS | 6 +- testing/symbols/verify_exported.dart | 84 +++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 4 deletions(-) diff --git a/DEPS b/DEPS index 321199c6d0eea..cf9a089e7a7ef 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' + '@' + 'fe13f79dce4ce9aab3209f11988d825dcf580b4a', # 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:7e9747b50bcb1be28d4a3236571e8050835497a6' } ], 'condition': 'host_os == "mac" or host_os == "linux"', diff --git a/testing/symbols/verify_exported.dart b/testing/symbols/verify_exported.dart index 2b822d08fea79..57598a59e8241 100644 --- a/testing/symbols/verify_exported.dart +++ b/testing/symbols/verify_exported.dart @@ -110,8 +110,90 @@ 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)) { + 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.'); From 70fd4e9f313c705355199f47070f9312885af160 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 13:05:54 -0700 Subject: [PATCH 2/5] skip golden that is different on macos --- shell/platform/embedder/tests/embedder_unittests.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shell/platform/embedder/tests/embedder_unittests.cc b/shell/platform/embedder/tests/embedder_unittests.cc index 291d8cd266163..5cd07dae3e684 100644 --- a/shell/platform/embedder/tests/embedder_unittests.cc +++ b/shell/platform/embedder/tests/embedder_unittests.cc @@ -2894,6 +2894,9 @@ TEST_F(EmbedderTest, CanQueryDartAOTMode) { } TEST_F(EmbedderTest, VerifyB143464703WithSoftwareBackend) { +#if !defined(OS_LINUX) + GTEST_SKIP() << "Skipping golden tests on non-Linux OSes"; +#endif // OS_LINUX auto& context = GetEmbedderContext(); EmbedderConfigBuilder builder(context); From c56b9b336cb837a1b31d627816a6d60a8be38666 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 13:48:01 -0700 Subject: [PATCH 3/5] buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index cf9a089e7a7ef..22a0b7a97d162 100644 --- a/DEPS +++ b/DEPS @@ -136,7 +136,7 @@ allowed_hosts = [ ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'fe13f79dce4ce9aab3209f11988d825dcf580b4a', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + '1bc40a5f916adb93d87e2a2230a0ec43db876c1c', # Fuchsia compatibility # From b36486fa2a37ba70dabeb461b1939942fade4906 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 14:09:40 -0700 Subject: [PATCH 4/5] todo --- flow/layers/performance_overlay_layer_unittests.cc | 2 ++ shell/platform/embedder/tests/embedder_unittests.cc | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/flow/layers/performance_overlay_layer_unittests.cc b/flow/layers/performance_overlay_layer_unittests.cc index cf0cd68853e59..3fcb2e04e835b 100644 --- a/flow/layers/performance_overlay_layer_unittests.cc +++ b/flow/layers/performance_overlay_layer_unittests.cc @@ -88,6 +88,8 @@ static void TestPerformanceOverlayLayerGold(int refresh_rate) { << "Please either set --golden-dir, or make sure that the unit test is " << "run from the right directory (e.g., flutter/engine/src)."; + // TODO(https://github.com/flutter/flutter/issues/53784): enable this on all + // platforms. #if !defined(OS_LINUX) GTEST_SKIP() << "Skipping golden tests on non-Linux OSes"; #endif // OS_LINUX diff --git a/shell/platform/embedder/tests/embedder_unittests.cc b/shell/platform/embedder/tests/embedder_unittests.cc index 5cd07dae3e684..726da026dcebb 100644 --- a/shell/platform/embedder/tests/embedder_unittests.cc +++ b/shell/platform/embedder/tests/embedder_unittests.cc @@ -2894,9 +2894,6 @@ TEST_F(EmbedderTest, CanQueryDartAOTMode) { } TEST_F(EmbedderTest, VerifyB143464703WithSoftwareBackend) { -#if !defined(OS_LINUX) - GTEST_SKIP() << "Skipping golden tests on non-Linux OSes"; -#endif // OS_LINUX auto& context = GetEmbedderContext(); EmbedderConfigBuilder builder(context); @@ -3004,6 +3001,12 @@ TEST_F(EmbedderTest, VerifyB143464703WithSoftwareBackend) { auto renderered_scene = context.GetNextSceneImage(); latch.Wait(); + + // TODO(https://github.com/flutter/flutter/issues/53784): enable this on all + // platforms. +#if !defined(OS_LINUX) + GTEST_SKIP() << "Skipping golden tests on non-Linux OSes"; +#endif // OS_LINUX ASSERT_TRUE(ImageMatchesFixture("verifyb143464703_soft_noxform.png", renderered_scene)); } From 45574bc054d8ef14b67c4d0f84ea905cb552ae32 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Wed, 1 Apr 2020 16:18:17 -0700 Subject: [PATCH 5/5] format --- shell/platform/embedder/tests/embedder_unittests.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/embedder/tests/embedder_unittests.cc b/shell/platform/embedder/tests/embedder_unittests.cc index 726da026dcebb..78286fcf54152 100644 --- a/shell/platform/embedder/tests/embedder_unittests.cc +++ b/shell/platform/embedder/tests/embedder_unittests.cc @@ -1430,7 +1430,7 @@ TEST_F(EmbedderTest, }); context.GetCompositor().SetPlatformViewRendererCallback( - [&](const FlutterLayer& layer, GrContext * + [&](const FlutterLayer& layer, GrContext* /* don't use because software compositor */) -> sk_sp { auto surface = CreateRenderSurface( layer, nullptr /* null because software compositor */);