mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Reland Clang 11, roll buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c, take 3 (#17467)
* Reland Clang 11, Roll buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c (#17457)" (#17464) This reverts commit 9eacd028cdba5c6efef327342dc53fab61474462. * Skip more image tests, use newer dsymutil, add missing symbols
This commit is contained in:
parent
1a437ac083
commit
39b77188c5
6
DEPS
6
DEPS
@ -136,7 +136,7 @@ allowed_hosts = [
|
||||
]
|
||||
|
||||
deps = {
|
||||
'src': 'https://github.com/flutter/buildroot.git' + '@' + 'a0fb98af7b6f50f17b47ab7968f3f5664d0d6316',
|
||||
'src': 'https://github.com/flutter/buildroot.git' + '@' + '1bc40a5f916adb93d87e2a2230a0ec43db876c1c',
|
||||
|
||||
# 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"',
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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<SkImage> {
|
||||
auto surface = CreateRenderSurface(
|
||||
layer, nullptr /* null because software compositor */);
|
||||
@ -3001,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));
|
||||
}
|
||||
|
||||
@ -10,6 +10,9 @@ import sys
|
||||
import os
|
||||
|
||||
|
||||
DSYMUTIL = os.path.join(os.path.dirname(__file__), '..', '..', '..',
|
||||
'buildtools', 'mac-x64', 'clang', 'bin', 'dsymutil')
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Creates Flutter.framework')
|
||||
|
||||
@ -33,27 +36,31 @@ def main():
|
||||
simulator_dylib = os.path.join(simulator_framework, 'Flutter')
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
shutil.rmtree(fat_framework, True)
|
||||
@ -76,7 +83,7 @@ def main():
|
||||
|
||||
if args.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:
|
||||
# copy unstripped
|
||||
|
||||
@ -181,7 +181,7 @@ void main() {
|
||||
final bool areEqual =
|
||||
await fuzzyGoldenImageCompare(image, 'canvas_test_gradient.png');
|
||||
expect(areEqual, true);
|
||||
});
|
||||
}, skip: !Platform.isLinux); // https://github.com/flutter/flutter/issues/53784
|
||||
|
||||
test('Simple dithered gradient', () async {
|
||||
Paint.enableDithering = true;
|
||||
@ -197,5 +197,5 @@ void main() {
|
||||
final bool areEqual =
|
||||
await fuzzyGoldenImageCompare(image, 'canvas_test_dithered_gradient.png');
|
||||
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) {
|
||||
'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',
|
||||
// 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(' Expected $expectedSymbols');
|
||||
print(' Library has $entryMap.');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user