I'm working on getting oprofile to work my Android Linux device. I have a few issues - maybe you guys can give me some expert advice since I am not an expert within this area myself.
I have cross compiled popt, binutils and oprofile for Arm architecture..so far so good. I transferred the binaries (ophelp, oprofiled etc) and the shared libraries (libopagent.so) I found to the target.
I tried to run the opcontrol script but this seems to be adapted to a "normal" linux kernel so I started to modify this to handle the different setup for Android Linux (for example /etc/mtab -> /proc/mounts).
After modification I tried to run the script again and it wants to execute "ophelp". Now, ophelp can not be executed :(
If I try to execute from the shell it says: "./ophelp: not found" (yes x-flag is set). I figured that it was built for another platform but "file" returns:
ophelp: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
which seems to be correct. I then thought that I was missing some shared libraries. I checked ophelps dependencies and believe that it depends on "libc", "libld". These are located in library path on target. Although they are not the complete versions of the libraries since Google reduced them. Don't think that should be a problem since ophelp doesn't seem to use any specifics.
Note that this is the same problem for all dynamically linked executables (ophelp, opannotate etc). oprofiled which is a statically linked app works fine!
Comments? Advice? Anything..
Any help appreciated!