La bonne réponse est ici : https://github.com/sonyxperiadev/bug_tracker/issues/207
La raison en est que mon processeur hôte (Q6600) ne supporte pas l'instruction SSE4.
L'art du projet nécessite le SSE4 car en
art\build\Android.bp
il y a ces cflags :
"-msse4.2",
"-mpopcnt",
et le sous-projet
art\tools\hiddenapi
héritent de ces cflags et donc l'exécutable hôte de sortie "hiddenapi" contiendra des instructions SSE4 et déclenchera SIGILL pendant la construction.
selon la fin de cette page https://superuser.com/questions/726395/how-to-check-if-a-binary-requires-sse4-or-avx-on-linux Vous pouvez le vérifier auprès de
objdump -d /OpenSource/Build/Android-9.0.0_r30/src-9.0.0_r30/host/linux-x86/bin/hiddenapi> ~/hiddenapi.asm
note:mon OUT_DIR_COMMON_BASE est réglé sur
/OpenSource/Build/Android-9.0.0_r30/
puis
gawk '/\<(mpsadbw|phminposuw|pmulld|pmuldq|dpps|dppd|blendps|blendpd|blendvps|blendvpd|pblendvb|pblenddw|pminsb|pmaxsb|pminuw|pmaxuw|pminud|pmaxud|pminsd|pmaxsd|roundps|roundss|roundpd|roundsd|insertps|pinsrb|pinsrd|pinsrq|extractps|pextrb|pextrd|pextrw|pextrq|pmovsxbw|pmovzxbw|pmovsxbd|pmovzxbd|pmovsxbq|pmovzxbq|pmovsxwd|pmovzxwd|pmovsxwq|pmovzxwq|pmovsxdq|pmovzxdq|ptest|pcmpeqq|pcmpgtq|packusdw|pcmpestri|pcmpestrm|pcmpistri|pcmpistrm|crc32|popcnt|movntdqa|extrq|insertq|movntsd|movntss|lzcnt)\>/' ~/hiddenapi.asm
vous verrez qu'il contient une instruction SSE4...
Après avoir supprimé les cflags ci-dessus, la source sera compilée avec succès. Mais on ne sait pas encore si cela produira un bogue, bien que puisque les cflags semblent n'affecter que l'exécutable hôte, le risque est faible.