MIPS Android Gingerbread R3 Release Notes


  • 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

  1. Fix Dalvik JNI code path in slow path.
  2. Use unsigned accesses for Char data in Dalvik.
  3. Fix IndexOf template in Dalvik JIT.
  4. Fix incomplete cache flush in Dalvik JIT.
  5. Fix new style chaining in Dalvik JIT.
  6. Fix USHR template in Dalvik JIT.
  7. Fix conditional branch creation in Dalvik JIT.
  8. Disabled rint,rintf, llrint, lrint built-ins.
  9. 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.
  10. Added ARCH_MIPS_HAS_FPU to DSP makefile variants with Floating point.
  11. Update pre-link map format and fix pre-link rebuild script to match size approximations done by a priory.
  12. Non-reproducible android system restarts issue which was seen on Gingerbread R2 is not observed on Gingerbread R3.
  13. 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.
  14. GDB is unable to map the line numbers in the source code and the instructions being executed.
  15. 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