aboutsummaryrefslogtreecommitdiffstats
path: root/android/main-emulator.c
Commit message (Collapse)AuthorAgeFilesLines
* New option '-force-32bit' to always use 32-bit emulator on 64-bit platformsAndrew Hsieh2012-03-221-15/+22
| | | | | | Useful for both QA and trouble-shooting Change-Id: I09eac8b94e29e8a201188bf17d3511c15cfee4b4
* 64-bit emulatorAndrew Hsieh2012-03-131-10/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch to allow emulator searches for emulator64-${ARCH} first on 64-bit OS. If none is found, the original behavior which searchs for 32-bit emulator-${ARCH} is performed as usual. 64-bit emulator (which still emulates Android built in 32-bit) offers up to 20% speedup compared to its 32-bit counterpart. Details: android/main-emulator.c 1) search emulator64 based on the OS 2) dlopen lib64OpenglRender in 64-bit Makefile.* 1) Rules to build 64-bit executable emulator64-{x86,arm} and libraries emulator64-{libui,libqemu,target-i386,target-arm,libelff,common} 2) remove -Wa,-32 3) Changes prebuit toolchain path android-configure.h android/build/common.h 1) no longer force 32-bit build (because now prebuilts/tools/gcc-sdk/gcc can now handle 64-bit 2) set ANDROID_PREBUILTS to correctly locate ccache android/config/*/config-host.h 1) Detect HOST_X86_64 and HOST_X86_64/HOST_I386 Misc 64-bit porting clean-up 1) use %zx to print variable of type size_t in hex 2) use %zu to print variable of type size_t in dec 3) Initialize query_parm to NULL 4) use PRIu64 to replace PDUd64 5) use PRId64/PRIu64/PRIX64 to print 64-bit 6) drop PRUx64 because PRIx64 does the same 7) cast pointer arith to intptr_t before casting to int 8) fixed 1ULL<<63 Change-Id: Ife62a20063a6ec38d4a9b23977e840af1fce149a
* emulator: fix Win32 runtime crashDavid 'Digit' Turner2011-09-131-2/+2
| | | | Change-Id: I5ca4b1393211c1d8a5caba332c3f6164afb4661b
* emulator: probe shared library search pathDavid 'Digit' Turner2011-08-241-0/+128
| | | | | | | | | | | | | | | | | | | | This patch modifies the 'emulator' launcher program to probe for a adequate directory containing shared libraries that will be required by the emulator core to implement GLES emulation properly. It does that by looking for a library named libOpenglRender.so (or .dll, or .dylib depending on the platform) in various directories around the one containing the executable program. When such a directory is found, it modifies the value of the PATH or LD_LIBRARY_PATH environment variable before calling exec() This is necessary because there is no way to change the list of search directories at runtime, i.e. between the program's start and the moment it calls dlopen() to load such a library. Change-Id: I7346d26597382f44931cdf08936b051e74d3641a
* Fix Windows space-in-path handling for 'emulator'.David Turner2011-07-151-2/+46
| | | | | | | | | | | | | | | | This modifies the 'emulator' launcher program to work correctly on Windows when it is installed in a path that contains spaces. The program computed the path of the program to be launched correctly, but it turns out that the problem is in the implementation of execv() in either mingw or MSVCRT.DLL: experimentation shows that one needs to quote argv[0] when it contains spaces. However, you must *not* quote the first argument to execv(), otherwise the call will fail. Change-Id: If291c5a8bd507f96b40634ecbc946ba38346ee4e
* Add 'emulator' launcher program.David 'Digit' Turner2011-05-021-0/+169
This patch renames the current ARM-specific emulator binary to 'emulator-arm' and introduces a new tiny (less than 20KB) 'emulator' launcher program. The role of 'emulator' is to launch either 'emulator-arm' or 'emulator-x86' based on the target AVD or platform build being used. This program will be replaced in the future by what is currently known as 'emulator-ui', but is a good placeholder until this work is completed. + Move some utility functions from android/avd/info.[hc] to android/avd/util.[hc] so that 'emulator' can use them directly. IMPORTANT: For platform builds, the target architecture is detected automatically by parsing the build.prop file. For SDK AVDs however, there is no easy way to determine the target architecture, so the patch adds a new hw.cpu.arch property which can have value 'arm' or 'x86' Change-Id: I0084c196695a75c8b9230ba716b3cd2e12610ded