未验证 提交 39b77188 编写于 作者: D Dan Field 提交者: GitHub

Reland Clang 11, roll buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c, take 3 (#17467)

* Reland Clang 11, Roll buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c (#17457)" (#17464)

This reverts commit 9eacd028.

* Skip more image tests, use newer dsymutil, add missing symbols
上级 1a437ac0
...@@ -136,7 +136,7 @@ allowed_hosts = [ ...@@ -136,7 +136,7 @@ allowed_hosts = [
] ]
deps = { deps = {
'src': 'https://github.com/flutter/buildroot.git' + '@' + 'a0fb98af7b6f50f17b47ab7968f3f5664d0d6316', 'src': 'https://github.com/flutter/buildroot.git' + '@' + '1bc40a5f916adb93d87e2a2230a0ec43db876c1c',
# Fuchsia compatibility # Fuchsia compatibility
# #
...@@ -517,8 +517,8 @@ deps = { ...@@ -517,8 +517,8 @@ deps = {
'src/buildtools/{host_os}-x64/clang': { 'src/buildtools/{host_os}-x64/clang': {
'packages': [ 'packages': [
{ {
'package': 'fuchsia/clang/${{platform}}', 'package': 'fuchsia/third_party/clang/${{platform}}',
'version': 'git_revision:de39621f0f03f20633bdfa50bde97a3908bf6e98' 'version': 'git_revision:7e9747b50bcb1be28d4a3236571e8050835497a6'
} }
], ],
'condition': 'host_os == "mac" or host_os == "linux"', 'condition': 'host_os == "mac" or host_os == "linux"',
......
...@@ -88,6 +88,8 @@ static void TestPerformanceOverlayLayerGold(int refresh_rate) { ...@@ -88,6 +88,8 @@ static void TestPerformanceOverlayLayerGold(int refresh_rate) {
<< "Please either set --golden-dir, or make sure that the unit test is " << "Please either set --golden-dir, or make sure that the unit test is "
<< "run from the right directory (e.g., flutter/engine/src)."; << "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) #if !defined(OS_LINUX)
GTEST_SKIP() << "Skipping golden tests on non-Linux OSes"; GTEST_SKIP() << "Skipping golden tests on non-Linux OSes";
#endif // OS_LINUX #endif // OS_LINUX
......
...@@ -1430,7 +1430,7 @@ TEST_F(EmbedderTest, ...@@ -1430,7 +1430,7 @@ TEST_F(EmbedderTest,
}); });
context.GetCompositor().SetPlatformViewRendererCallback( context.GetCompositor().SetPlatformViewRendererCallback(
[&](const FlutterLayer& layer, GrContext * [&](const FlutterLayer& layer, GrContext*
/* don't use because software compositor */) -> sk_sp<SkImage> { /* don't use because software compositor */) -> sk_sp<SkImage> {
auto surface = CreateRenderSurface( auto surface = CreateRenderSurface(
layer, nullptr /* null because software compositor */); layer, nullptr /* null because software compositor */);
...@@ -3001,6 +3001,12 @@ TEST_F(EmbedderTest, VerifyB143464703WithSoftwareBackend) { ...@@ -3001,6 +3001,12 @@ TEST_F(EmbedderTest, VerifyB143464703WithSoftwareBackend) {
auto renderered_scene = context.GetNextSceneImage(); auto renderered_scene = context.GetNextSceneImage();
latch.Wait(); 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", ASSERT_TRUE(ImageMatchesFixture("verifyb143464703_soft_noxform.png",
renderered_scene)); renderered_scene));
} }
......
...@@ -10,6 +10,9 @@ import sys ...@@ -10,6 +10,9 @@ import sys
import os import os
DSYMUTIL = os.path.join(os.path.dirname(__file__), '..', '..', '..',
'buildtools', 'mac-x64', 'clang', 'bin', 'dsymutil')
def main(): def main():
parser = argparse.ArgumentParser(description='Creates Flutter.framework') parser = argparse.ArgumentParser(description='Creates Flutter.framework')
...@@ -33,27 +36,31 @@ def main(): ...@@ -33,27 +36,31 @@ def main():
simulator_dylib = os.path.join(simulator_framework, 'Flutter') simulator_dylib = os.path.join(simulator_framework, 'Flutter')
if not os.path.isdir(arm64_framework): if not os.path.isdir(arm64_framework):
print 'Cannot find iOS arm64 Framework at', arm64_framework print('Cannot find iOS arm64 Framework at %s' % arm64_framework)
return 1 return 1
if not os.path.isdir(armv7_framework): if not os.path.isdir(armv7_framework):
print 'Cannot find iOS armv7 Framework at', armv7_framework print('Cannot find iOS armv7 Framework at %s' % armv7_framework)
return 1 return 1
if not os.path.isdir(simulator_framework): if not os.path.isdir(simulator_framework):
print 'Cannot find iOS simulator Framework at', simulator_framework print('Cannot find iOS simulator Framework at %s' % simulator_framework)
return 1 return 1
if not os.path.isfile(arm64_dylib): if not os.path.isfile(arm64_dylib):
print 'Cannot find iOS arm64 dylib at', arm64_dylib print('Cannot find iOS arm64 dylib at %s' % arm64_dylib)
return 1 return 1
if not os.path.isfile(armv7_dylib): if not os.path.isfile(armv7_dylib):
print 'Cannot find iOS armv7 dylib at', armv7_dylib print('Cannot find iOS armv7 dylib at %s' % armv7_dylib)
return 1 return 1
if not os.path.isfile(simulator_dylib): if not os.path.isfile(simulator_dylib):
print 'Cannot find iOS simulator dylib at', simulator_dylib print('Cannot find iOS simulator dylib at %s' % simulator_dylib)
return 1
if not os.path.isfile(DSYMUTIL):
print('Cannot find dsymutil at %s' % DSYMUTIL)
return 1 return 1
shutil.rmtree(fat_framework, True) shutil.rmtree(fat_framework, True)
...@@ -76,7 +83,7 @@ def main(): ...@@ -76,7 +83,7 @@ def main():
if args.dsym: if args.dsym:
dsym_out = os.path.splitext(fat_framework)[0] + '.dSYM' dsym_out = os.path.splitext(fat_framework)[0] + '.dSYM'
subprocess.check_call(['dsymutil', '-o', dsym_out, linker_out]) subprocess.check_call([DSYMUTIL, '-o', dsym_out, linker_out])
if args.strip: if args.strip:
# copy unstripped # copy unstripped
......
...@@ -181,7 +181,7 @@ void main() { ...@@ -181,7 +181,7 @@ void main() {
final bool areEqual = final bool areEqual =
await fuzzyGoldenImageCompare(image, 'canvas_test_gradient.png'); await fuzzyGoldenImageCompare(image, 'canvas_test_gradient.png');
expect(areEqual, true); expect(areEqual, true);
}); }, skip: !Platform.isLinux); // https://github.com/flutter/flutter/issues/53784
test('Simple dithered gradient', () async { test('Simple dithered gradient', () async {
Paint.enableDithering = true; Paint.enableDithering = true;
...@@ -197,5 +197,5 @@ void main() { ...@@ -197,5 +197,5 @@ void main() {
final bool areEqual = final bool areEqual =
await fuzzyGoldenImageCompare(image, 'canvas_test_dithered_gradient.png'); await fuzzyGoldenImageCompare(image, 'canvas_test_dithered_gradient.png');
expect(areEqual, true); expect(areEqual, true);
}); }, skip: !Platform.isLinux); // https://github.com/flutter/flutter/issues/53784
} }
...@@ -110,8 +110,93 @@ int _checkAndroid(String outPath, String nmPath, Iterable<String> builds) { ...@@ -110,8 +110,93 @@ int _checkAndroid(String outPath, String nmPath, Iterable<String> builds) {
'JNI_OnLoad': 'T', 'JNI_OnLoad': 'T',
'_binary_icudtl_dat_size': 'A', '_binary_icudtl_dat_size': 'A',
'_binary_icudtl_dat_start': 'D', '_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',
// jit x86
'__moddi3': 'T',
'__umoddi3': 'T',
}; };
if (!const MapEquality<String, String>().equals(entryMap, expectedSymbols)) { final Map<String, String> badSymbols = <String, String>{};
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('ERROR: $libFlutter exports the wrong symbols');
print(' Expected $expectedSymbols'); print(' Expected $expectedSymbols');
print(' Library has $entryMap.'); print(' Library has $entryMap.');
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册