mpd

AOSP & deprecated Valgrind - Why? 'cause Clang?

Nov 05, 2020 11:07

Факт, valgrind'a нет больше в AOSP:
~/sources/android-repo $ ~/sources/git-repo/repo list | grep -i val external/vulkan-validation-layers : platform/external/vulkan-validation-layersПояснение: если в последнем на текущий момент репозитории Android Open Source Project пролистать все проекты, то там не окажется "valgrind".

Тем не менее, он там был:
android / platform / external / valgrind Clone this repo: git clone https://android.googlesource.com/platform/external/valgrind commit 24ba4df17583b05b80356f40149645a7b46633b9 author Elliott Hughes Tue Jun 12 19:13:03 2018 +0000 committer Gerrit Code Review Tue Jun 12 19:13:03 2018 +0000 Merge "Stop building valgrind as step one of deprecation and removal."И остались в сети даже дельные советы, как собрать его "из коробки":
https://aykevl.nl/2017/06/android-asan-valgrind - мне очень помогло с нашим старым AOSP! Просто включение подпроекта валгринда в список собираемых проектов приводило к сборке бинарника, но не библиотеки для него:
- out/host/linux-x86/obj/NOTICE_FILES/src/lib64/valgrind out/host/linux-x86/obj/EXECUTABLES/valgrind_intermediates/valgrind - out/host/linux-x86/lib64/valgrind out/host/linux-x86/bin/valgrind - out/target/product/XXXXXX/system/lib/valgrind out/target/product/XXXXXX/system/bin/valgrind - out/target/product/XXXXXX/obj/NOTICE_FILES/src/system/lib/valgrind out/target/product/XXXXXX/obj/EXECUTABLES/valgrind_intermediates/LINKED/valgrind out/target/product/XXXXXX/obj/EXECUTABLES/valgrind_intermediates/valgrind out/target/product/XXXXXX/obj/EXECUTABLES/valgrind_intermediates/PACKED/valgrind - out/target/product/XXXXXX/symbols/system/lib/valgrind out/target/product/XXXXXX/symbols/system/bin/valgrindМинусом отмечены каталоги, которые собрались только после использования инструкций по ссылке.

Или, как запустить, не переписывая или изменяя, приложение на Андройде под valgrind:
https://stackoverflow.com/questions/13531496/cant-run-a-java-android-program-with-valgrind/19235439
Блин, к сожалению, так и не смог наше приложение запустить: то ли watchdog всё прибивает, то ли там яве стека не хватает. :-(
Если кто имеет положительный опыт - посоветуйте, что где "подкрутить", чтобы взлетело.

А главный вопрос этого поста:
Кто-нибудь знает реальную причину деприкейта (извините, уж не знаю, как смачно перевести это на русский) и выпиливания vlagrind из AOSP?

Я нашёл только вот это видео2017 LLVM Developers’ Meeting: “Compiling Android userspace and Linux kernel with LLVM ” / Nick Desaulniers, Greg Hackmann, and Stephen Hines
в котором это объясняется постепенным переходом всего AOSP на Clang, в результате чего там остался только valgrind, который не был совместим:Other areas where we just didn’t know how to fix bugs yet.
  ○ Valgrind was the last instance of this escape to be fixed in AOSP.
    ■ Wrong clobbers for inline assembly in 1 case.
    ■ ABI + runtime library issues (we’ll chat about aeabi later).
A Continued History of LLVM and Android
  ● April 2016 - 99% Android Platform Clang (valgrind was the last!)
Но вообще-то, мне не составило труда собрать самый последний valgrind с вполне современным android-ndk-r21, там только одна проблемка простенькая была, я сначала поправил, а потом нашёл, что она хорошо известна:
https://bugs.kde.org/show_bug.cgi?id=339861 (
| Комментировать в Dreamwidth)

цитаты, video, clang, баян, valgrind, aosp, работа

Previous post Next post
Up