Compile Valgrind for armv5

2019-07-25 14:12发布

问题:

everyone. I got some problems while cross compile valgrind for armv5(arm926ej-s). I can figure out some of them, but there is one I cannot solve. I will write these problems:

  1. Valgrind don't support armv5 in configure, I instead armv7*) with armv7*|arm*) and it works well.

  2. -mcpu=cortex-a8 is not right since I have a arm926ej-s CPU. So I use this command to replace them all in Makfiles:

    sed -i 's/-mcpu=cortex-a8/-mcpu=arm926ej-s/g' `find . -name "Makefile*"`

  3. There comes the problem. movw and movt in the source code is not supported by armv5. The error message is:

m_dispatch/dispatch-arm-linux.S: Assembler messages:
m_dispatch/dispatch-arm-linux.S:122: Error: selected processor does not support `movw r1,#47'
m_dispatch/dispatch-arm-linux.S:123: Error: selected processor does not support `movw r2,#0'
m_dispatch/dispatch-arm-linux.S:175: Error: selected processor does not support `movw   r1,#:lower16:vgPlain_stats__n_xindirs_32'
m_dispatch/dispatch-arm-linux.S:176: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindirs_32'
m_dispatch/dispatch-arm-linux.S:183: Error: selected processor does not support `movw r1,#(((1<<15))-1)'
m_dispatch/dispatch-arm-linux.S:184: Error: selected processor does not support `movw r4,#:lower16:vgPlain_tt_fast'
m_dispatch/dispatch-arm-linux.S:187: Error: selected processor does not support `movt r4,#:upper16:vgPlain_tt_fast'
m_dispatch/dispatch-arm-linux.S:200: Error: selected processor does not support `movw r1,#:lower16:vgPlain_stats__n_xindir_misses_32'
m_dispatch/dispatch-arm-linux.S:201: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindir_misses_32'

I'm thinking of instead of movw and movt with mov. But I'm not familiar with assembly code. Any one could help? Thanks!

回答1:

There are some patches on bug 248998 in the valgrind bug tracker which attempt to add support for armv5 but I have no how complete they are or how well they work.

They would probably make a good starting point for your work anyway.