Hi, community, our company uses QEMU as system emulator, to emulate our private-ISA processor and SoC. recently, we came up an idea to build a dynamic binary translator on top of current QEMU technology. please you guys in this community are experienced and your aforementioned advices are really precious for me!
i) I wish to run APKs(android application package) with ARM native libraries. certainly, dynamic binary translation involves here. i've implemented tcg to our ISA and built up a tailored "qemu-arm" for android. it turns out we have few trouble to run statically-linked binaries. My question is how about binary translation slow down? My concerning costs are 2 aspects: 1) runtime overhead: such as translation time and TB management. 2) translation efficiency: the quality of code which are translated from ARM to TCG to native instructions. I know the 2nd step highly depends on ISA encoding. you can assume our ISA is like Mips here. Does existing optimizations for TCG help a lot for generated code? ii) DSO-support for user-mode qemu qemu user-mode supports ELF file. because it handles interpreter and dynamic sections of ELF, i can assume that user-qemu is capable of loading PIEs and executables with shared libraries. I guess you must use it on GNU/Linux platforms mostly. android doesn't use glibc and ld-linux.so. it uses BSD-flavor libc and dynamic linker. does anybody here run shared-linked binaries for android using user-mode qemu? thanks, --lx