From 4a6fab793fa00b8155c2c08a6fbad7ee3e7feba6 Mon Sep 17 00:00:00 2001 From: James Y Knight Date: Mon, 21 Mar 2022 13:27:26 +0000 Subject: [PATCH] [compiler-rt] Expand comment about Exynos 9810 workaround. --- compiler-rt/lib/builtins/cpu_model.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler-rt/lib/builtins/cpu_model.c b/compiler-rt/lib/builtins/cpu_model.c index 64b07b6..c5913f7 100644 --- a/compiler-rt/lib/builtins/cpu_model.c +++ b/compiler-rt/lib/builtins/cpu_model.c @@ -815,8 +815,15 @@ static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) { char arch[PROP_VALUE_MAX]; if (__system_property_get("ro.arch", arch) > 0 && strncmp(arch, "exynos9810", sizeof("exynos9810") - 1) == 0) { - // Some cores of Exynos 9810 are ARMv8.2 and others are ARMv8.0, - // so disable the lse atomics completely. + // Some cores in the Exynos 9810 CPU are ARMv8.2 and others are ARMv8.0; + // only the former support LSE atomics. However, the kernel in the + // initial Android 8.0 release of Galaxy S9/S9+ devices incorrectly + // reported the feature as being supported. + // + // The kernel appears to have been corrected to mark it unsupported as of + // the Android 9.0 release on those devices, and this issue has not been + // observed anywhere else. Thus, this workaround may be removed if + // compiler-rt ever drops support for Android 8.0. result = false; } } -- 2.7.4