florian | dec4a56 | 2011-11-26 04:12:01 +0000 | [diff] [blame] | 1 | |
sewardj | b5b8740 | 2011-03-07 16:05:35 +0000 | [diff] [blame] | 2 | Requirements |
| 3 | ------------ |
| 4 | - You need GCC 3.4 or later to compile the s390 port. |
florian | 92b33b5 | 2014-12-08 14:03:00 +0000 | [diff] [blame] | 5 | - To run valgrind a z10 machine or any later model is recommended. |
| 6 | Older machine models down to and including z990 may work but have |
florian | 6fc11f2 | 2013-09-30 16:41:56 +0000 | [diff] [blame] | 7 | not been tested extensively. |
sewardj | b5b8740 | 2011-03-07 16:05:35 +0000 | [diff] [blame] | 8 | |
| 9 | |
| 10 | Limitations |
| 11 | ----------- |
| 12 | - 31-bit client programs are not supported. |
| 13 | - Hexadecimal floating point is not supported. |
florian | dd1d372 | 2015-03-17 13:45:29 +0000 | [diff] [blame] | 14 | - Transactional memory is not supported. |
| 15 | - Instructions operating on vector registers are not supported. |
florian | be853a8 | 2013-10-01 07:01:08 +0000 | [diff] [blame] | 16 | - memcheck, cachegrind, drd, helgrind, massif, lackey, and none are |
florian | 6fc11f2 | 2013-09-30 16:41:56 +0000 | [diff] [blame] | 17 | supported. |
| 18 | - On machine models predating z10, cachegrind will assume a z10 cache |
| 19 | architecture. Otherwise, cachegrind will query the hosts cache system |
| 20 | and use those parameters. |
florian | fb11d97 | 2012-11-02 22:00:59 +0000 | [diff] [blame] | 21 | - callgrind and all experimental tools are currently not supported. |
florian | f19daa0 | 2013-10-19 08:21:19 +0000 | [diff] [blame] | 22 | - Some gcc versions use mvc to copy 4/8 byte values. This will affect |
| 23 | certain debug messages. For example, memcheck will complain about |
| 24 | 4 one-byte reads/writes instead of just a single read/write. |
sewardj | b5b8740 | 2011-03-07 16:05:35 +0000 | [diff] [blame] | 25 | |
| 26 | |
florian | 8f36de0 | 2012-08-23 00:44:22 +0000 | [diff] [blame] | 27 | Hardware facilities |
| 28 | ------------------- |
| 29 | Valgrind does not require that the host machine has the same hardware |
| 30 | facilities as the machine for which the client program was compiled. |
florian | 92b33b5 | 2014-12-08 14:03:00 +0000 | [diff] [blame] | 31 | This is convenient. If possible, the JIT compiler will translate the |
| 32 | client instructions according to the facilities available on the host. |
florian | 8f36de0 | 2012-08-23 00:44:22 +0000 | [diff] [blame] | 33 | This means, though, that probing for hardware facilities by issuing |
| 34 | instructions from that facility and observing whether SIGILL is thrown |
| 35 | may not work. As a consequence, programs that attempt to do so may |
| 36 | behave differently. It is believed that this is a rare use case. |
| 37 | |
| 38 | |
sewardj | b5b8740 | 2011-03-07 16:05:35 +0000 | [diff] [blame] | 39 | Recommendations |
| 40 | --------------- |
| 41 | Applications should be compiled with -fno-builtin to avoid |
| 42 | false positives due to builtin string operations when running memcheck. |
| 43 | |
| 44 | |
| 45 | Reading Material |
| 46 | ---------------- |
| 47 | (1) Linux for zSeries ELF ABI Supplement |
| 48 | http://refspecs.linuxfoundation.org/ELF/zSeries/index.html |
| 49 | (2) z/Architecture Principles of Operation |
florian | dd1d372 | 2015-03-17 13:45:29 +0000 | [diff] [blame] | 50 | http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr010.pdf |
sewardj | b5b8740 | 2011-03-07 16:05:35 +0000 | [diff] [blame] | 51 | (3) z/Architecture Reference Summary |
florian | dd1d372 | 2015-03-17 13:45:29 +0000 | [diff] [blame] | 52 | http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs008.pdf |