# 11. README.mips

Supported platforms
-------------------
- MIPS32 and MIPS64 platforms are currently supported.
- Both little-endian and big-endian cores are supported.
- MIPS DSP ASE on MIPS32 platforms is supported.
Building V for MIPS
-------------------
- Native build is available for all supported platforms. The build system
expects that native GCC is configured correctly and optimized for the platform.
Yet, this may not be the case with some Debian distributions which configure
GCC to compile to "mips1" by default. Depending on a target platform, using
CFLAGS="-mips32r2", CFLAGS="-mips32" or CFLAGS="-mips64" or
CFLAGS="-mips64 -mabi=64" will do the trick and compile Valgrind correctly.
- Use of cross-toolchain is supported as well.
- Example of configure line and additional configure options:
$ ./configure --host=mipsel-linux-gnu --prefix=<path_to_install_directory>
[--with-pagesize=<4|16|64>]
* --host=mips-linux-gnu is necessary only if Valgrind is built on platform
other then MIPS, tools for building MIPS application have to be in PATH.
* --with-pagesize option is used to set default PAGE SIZE. If option is not
used, PAGE SIZE is set to value default for platform on which Valgrind is
built on. Possible values are 4, 16 of 64 and represent size in kilobytes.
* --host=mips-linux-gnu is necessary if you compile it with cross toolchain
compiler for big endian platform.
* --host=mipsel-linux-gnu is necessary if you compile it with cross toolchain
compiler for little endian platform.
* --build=mips-linux is needed if you want to build it for MIPS32 on 64-bit
MIPS system.
* If you are compiling Valgrind for mips32 with gcc version older then
gcc (GCC) 4.5.1, you must specify CFLAGS="-mips32r2 -mplt", e.g.
./configure --prefix=<path_to_install_directory>
CFLAGS="-mips32r2 -mplt"
Limitations
-----------
- Some gdb tests will fail when gdb (GDB) older than 7.5 is used and gdb is
not compiled with '--with-expat=yes'.
- You can not compile tests for DSP ASE if you are using gcc (GCC) older
then 4.6.1 due to a bug in the toolchain.
- Older GCC may have issues with some inline assembly blocks. Get a toolchain
based on newer GCC versions, if possible.