petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 1 | |
| 2 | Supported platforms |
| 3 | ------------------- |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 4 | - MIPS32 and MIPS64 platforms are currently supported. |
petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 5 | - Both little-endian and big-endian cores are supported. |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 6 | - MIPS DSP ASE on MIPS32 platforms is supported. |
petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 7 | |
| 8 | |
| 9 | Building V for MIPS |
| 10 | ------------------- |
| 11 | - Native build is available for all supported platforms. The build system |
| 12 | expects that native GCC is configured correctly and optimized for the platform. |
| 13 | Yet, this may not be the case with some Debian distributions which configure |
| 14 | GCC to compile to "mips1" by default. Depending on a target platform, using |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 15 | CFLAGS="-mips32r2", CFLAGS="-mips32" or CFLAGS="-mips64" or |
| 16 | CFLAGS="-mips64 -mabi=64" will do the trick and compile Valgrind correctly. |
| 17 | |
petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 18 | - Use of cross-toolchain is supported as well. |
| 19 | - Example of configure line and additional configure options: |
| 20 | |
| 21 | $ ./configure --host=mipsel-linux-gnu --prefix=<path_to_install_directory> |
| 22 | [--with-pagesize=<4|16|64>] |
| 23 | |
| 24 | * --host=mips-linux-gnu is necessary only if Valgrind is built on platform |
| 25 | other then MIPS, tools for building MIPS application have to be in PATH. |
| 26 | |
| 27 | * --with-pagesize option is used to set default PAGE SIZE. If option is not |
| 28 | used, PAGE SIZE is set to value default for platform on which Valgrind is |
| 29 | built on. Possible values are 4, 16 of 64 and represent size in kilobytes. |
| 30 | |
| 31 | * --host=mips-linux-gnu is necessary if you compile it with cross toolchain |
| 32 | compiler for big endian platform. |
| 33 | |
| 34 | * --host=mipsel-linux-gnu is necessary if you compile it with cross toolchain |
| 35 | compiler for little endian platform. |
| 36 | |
| 37 | * --build=mips-linux is needed if you want to build it for MIPS32 on 64-bit |
| 38 | MIPS system. |
| 39 | |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 40 | * If you are compiling Valgrind for mips32 with gcc version older then |
| 41 | gcc (GCC) 4.5.1, you must specify CFLAGS="-mips32r2 -mplt", e.g. |
| 42 | |
petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 43 | ./configure --prefix=<path_to_install_directory> |
| 44 | CFLAGS="-mips32r2 -mplt" |
| 45 | |
| 46 | |
| 47 | Limitations |
| 48 | ----------- |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 49 | - Some gdb tests will fail when gdb (GDB) older than 7.5 is used and gdb is |
| 50 | not compiled with '--with-expat=yes'. |
| 51 | - You can not compile tests for DSP ASE if you are using gcc (GCC) older |
| 52 | then 4.6.1 due to a bug in the toolchain. |
petarj | b02bbd6 | 2012-06-26 11:30:18 +0000 | [diff] [blame] | 53 | - Older GCC may have issues with some inline assembly blocks. Get a toolchain |
petarj | 817232e | 2013-10-19 02:24:11 +0000 | [diff] [blame] | 54 | based on newer GCC versions, if possible. |