Features
- This MIPS release is done based on Google’s Gingerbread 2.3.5 code base
- MIPS16 support was added to this release. Certain libraries can be compiled for MIPS16e which results in a smaller Android footprint, especially for mobile systems like smartphones. When the environment variable _TARGET_ARCH_VARIANT is set to mips16, only those libraries get compiled for the MIPS16e instruction set. When compared to MIPS32, the Android footprint is reduced by approximately 30%. Compiling Android for MIPS16 requires a different compiler which is available at:
https://support.codesourcery.com/GNUToolchain/package9055/mips-2011.03-93-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
The environment variables which need to be set before compiling Android for MIPS16 and floating point support are:
export TARGET_ARCH_VARIANT=mips16-fp
export TARGET_TOOLS_PREFIX=/bin/mips-linux-gnu-
MIPS16 builds of Android cannot be run on the current release of the QEMU emulator since it currently does not support MIPS16 instructions.
- VP8 optimizations Phase II were included in external/libvpx
Bug fixes in this release
- Fix Dalvik JNI code path in slow path.
- Use unsigned accesses for Char data in Dalvik.
- Fix IndexOf template in Dalvik JIT.
- Fix incomplete cache flush in Dalvik JIT.
- Fix new style chaining in Dalvik JIT.
- Fix USHR template in Dalvik JIT.
- Fix conditional branch creation in Dalvik JIT.
- Disabled rint,rintf, llrint, lrint built-ins.
- Use mutex to make File allocations threadsafe in libc/stdio/findfp.c. CTS test case org.apache.harmony.luni.tests.java.net.InetAddressTest#test_getHostName failed in the previous release due to this bug.
- Added ARCH_MIPS_HAS_FPU to DSP makefile variants with Floating point.
- Update pre-link map format and fix pre-link rebuild script to match size approximations done by a priory.
- Non-reproducible android system restarts issue which was seen on Gingerbread R2 is not observed on Gingerbread R3.
- opimport_pull script needs a fix to use prebuilt binaries from x86 directory. The commit is available on mips-froyo branch in the repository external/oprofile.
- GDB is unable to map the line numbers in the source code and the instructions being executed.
- Sun spider benchmark results for V8 build have improved by 15%.
CTS results
Source = mips-gb-2.3.5_r1m2 Build Env = mips32
Config: QEMU LE (Dalvik Turbo) | passed - 13542 | fail - 51 | timeout - 0
Config: QEMU LE-FP (Dalvik Turbo) | passed - 13420 | fail - 173 | timeout - 0
Source = mips-gb-2.3.5_r1m2 Build Env = mips32
Config: QEMU LE | passed - 13542 | fail - 51 | timeout - 0
Config: QEMU LE-FP | passed - 13531 | fail - 60 | timeout - 2