This is an archive of the discontinued LLVM Phabricator instance.

[sanitizer] Update x86 ABILIST filtering for x86_64 devices
ClosedPublic

Authored by rprichard on Feb 23 2021, 9:43 PM.

Details

Summary

An x86_64 device (e.g. Android emulator or Cuttlefish VM) might have an
ro.product.cpu.abilist like:

x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
x86_64,arm64-v8a,x86,armeabi-v7a,armeabi

When the first arch starts with x86, filter out the remaining archs
that don't start with x86.

Diff Detail

Event Timeline

rprichard created this revision.Feb 23 2021, 9:43 PM
rprichard requested review of this revision.Feb 23 2021, 9:43 PM

FWIW: The sanitizer tests passed on an x86_64 R emulator (RSR1.200819.001.A1).

OTOH, my internal master Cuttlefish VM sets ro.product.cpu.abilist to x86_64,arm64-v8a,x86,armeabi-v7a,armeabi.

emulator:

$ adb -s emulator-5554 shell getprop | grep abilist
[ro.product.cpu.abilist]: [x86_64,x86,arm64-v8a,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: [x86_64,arm64-v8a]

Cuttlefish VM:

$ adb -s 0.0.0.0:6520 shell getprop | grep abilist
[ro.product.cpu.abilist]: [x86_64,arm64-v8a,x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: [x86_64,arm64-v8a]
[ro.system.product.cpu.abilist]: [x86_64,x86,arm64-v8a,armeabi-v7a,armeabi]
[ro.system.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.system.product.cpu.abilist64]: [x86_64,arm64-v8a]
[ro.vendor.product.cpu.abilist]: [x86_64,x86,arm64-v8a,armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist64]: [x86_64,arm64-v8a]
rprichard updated this revision to Diff 326025.Feb 24 2021, 2:23 AM

Account for both x86_64,arm64,x86,arm and x86_64,x86,arm64,arm orderings.

rprichard edited the summary of this revision. (Show Details)Feb 24 2021, 2:24 AM
vitalybuka accepted this revision.Feb 24 2021, 5:00 PM
This revision is now accepted and ready to land.Feb 24 2021, 5:00 PM