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

Reply via email to