|
From: Ali G. A. <ali...@gm...> - 2011-08-25 09:44:46
|
Hi all, I searched internet but couldn't find a recent information about this issue. It is said that "The repository currently contains support for the ARMv5 instruction set". We have a CPU with ARMv5TE and with MMU on our board. Can we use Valgrind with this CPU? Best regards, Ali |
|
From: Tom H. <to...@co...> - 2011-08-25 09:50:43
|
On 25/08/11 10:44, Ali Günhan Akyürek wrote: > I searched internet but couldn't find a recent information about this issue. > It is said that "The repository currently contains support for the > ARMv5 instruction set". We have a CPU with ARMv5TE and with MMU on our > board. Where is that said? The position is still, as far as I know, that only ARMv7 and later are supported. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Ali G. A. <ali...@gm...> - 2011-08-25 10:16:37
|
Hi, Here it is : http://www.valgrind.org/downloads/repository.html Regards, Ali On Thu, Aug 25, 2011 at 12:50 PM, Tom Hughes <to...@co...> wrote: > On 25/08/11 10:44, Ali Günhan Akyürek wrote: > >> I searched internet but couldn't find a recent information about this >> issue. >> It is said that "The repository currently contains support for the >> ARMv5 instruction set". We have a CPU with ARMv5TE and with MMU on our >> board. > > Where is that said? The position is still, as far as I know, that only ARMv7 > and later are supported. > > Tom > > -- > Tom Hughes (to...@co...) > http://compton.nu/ > |
|
From: Tom H. <to...@co...> - 2011-08-25 10:19:30
|
On 25/08/11 11:16, Ali Günhan Akyürek wrote: > Here it is : > http://www.valgrind.org/downloads/repository.html Ah OK. That's out of date, and refers to the situation during the development of ARM support. It's also describing which instructions are supported, and it's true that all the ARMv5 instructions are supported, but due to other limitations we don't actually support ARMv5 CPUs. The details given in the 3.6.0 release notes when ARM support was added say: * Support for ARM/Linux. Valgrind now runs on ARMv7 capable CPUs running Linux. It is known to work on Ubuntu 10.04, Ubuntu 10.10, and Maemo 5, so you can run Valgrind on your Nokia N900 if you want. This requires a CPU capable of running the ARMv7-A instruction set (Cortex A5, A8 and A9). Valgrind provides fairly complete coverage of the user space instruction set, including ARM and Thumb integer code, VFPv3, NEON and V6 media instructions. The Memcheck, Cachegrind and Massif tools work properly; other tools work to varying degrees. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Ali G. A. <ali...@gm...> - 2011-08-26 11:33:00
|
Hi, Thanks for the responses. As far as I understand, currently it's not possible to the some limitations. But my question is, are these limitations will be solved in future in Valgrind software or will Valgrind never support ARMv5? Regards, Ali On Thu, Aug 25, 2011 at 1:47 PM, Tom Hughes <to...@co...> wrote: > On 25/08/11 11:37, Baurzhan Ismagulov wrote: >> On Thu, Aug 25, 2011 at 11:19:15AM +0100, Tom Hughes wrote: >>> It's also describing which instructions are supported, and it's true >>> that all the ARMv5 instructions are supported, but due to other >>> limitations we don't actually support ARMv5 CPUs. >> >> Good to know. Could you elaborate on what those limitations are? Is it >> something like ARMv7 assembly in Valgrind sources, or anything else? I'm >> interested in working on it, so it would be great to know the big >> picture. How much effort do you think it is? > > Julian will probably correct me, but I believe it has something to do > with the handling of thread local storage. > > Tom > > -- > Tom Hughes (to...@co...) > http://compton.nu/ > > ------------------------------------------------------------------------------ > EMC VNX: the world's simplest storage, starting under $10K > The only unified storage solution that offers unified management > Up to 160% more powerful than alternatives and 25% more efficient. > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > |
|
From: Baurzhan I. <ib...@ra...> - 2011-12-12 12:49:43
|
On Fri, Dec 09, 2011 at 08:26:38AM -0800, John Reiser wrote: > >> The patch is: https://bugs.kde.org/show_bug.cgi?id=276897#c2 ... > Did you look at Comment #3, immediately following (and about 1 hour after) Comment #2? > Did you look at Comment #6, about one week after Comment #2, and now two months ago? #3 applied cleanly on r11823, #6 doesn't. Do you remember which revision it applies on, or do you have an updated version? > > BTW, the patch didn't apply on the svn tree with patch 2.6 -- it looked > > for dispatch-arm-linux.S and syswrap-generic.c in top_srcdir and not in > > the respective subdirectory. Which tool do you use to apply svn patches? > > "man patch": "not specifying -p at all just gives you blurfl.c" Indeed, applied with -p0. FWIW, plain diff -u output applies also without -p0. With kind regards, Baurzhan. |
|
From: Baurzhan I. <ib...@ra...> - 2011-12-13 17:29:04
|
On Mon, Dec 12, 2011 at 08:42:40AM -0800, John Reiser wrote:
> In the output from any "svn diff" the header for each file indicates which version:
Thanks for the hint, I haven't thought about that.
> Apparently you are on revision 11823, more than 260 revisions before 12084
> of Comment #2. Why so old?
After I failed to apply all three patches on the latest trunk, I wanted
to have some working basis to try the tool.
> One common beginner error is not reversing the patch from Comment #2
> before trying to apply the newer version from Comment #6.
So:
* Apply #2.
* Apply #3 in VEX.
* Revert coregrind/m_dispatch/dispatch-arm-linux.S.
* Apply #6.
Is this how you've meant it?
I've tried this on r12305 and was able to build it for arm-linux-gnu.
Running it on PXA255 under Debian results in an illegal instruction at
0x38041f64, which seems to be the following:
38041f50 <do_syscall_WRK>:
38041f50: e92d00b0 stmdb sp!, {r4, r5, r7}
38041f54: e59d400c ldr r4, [sp, #12]
38041f58: e59d5010 ldr r5, [sp, #16]
38041f5c: e59d7014 ldr r7, [sp, #20]
38041f60: ef000000 svc 0x00000000
38041f64: e8bd00b0 ldmia sp!, {r4, r5, r7}
38041f68: e12fff1e bx lr
What is the problem here?
Thanks in advance,
Baurzhan.
|
|
From: John R. <jr...@bi...> - 2011-12-13 19:41:05
|
> * Apply #2.
> * Apply #3 in VEX.
> * Revert coregrind/m_dispatch/dispatch-arm-linux.S.
> * Apply #6.
>
> Is this how you've meant it?
Yes.
> I've tried this on r12305 and was able to build it for arm-linux-gnu.
> Running it on PXA255 under Debian results in an illegal instruction at
> 0x38041f64, which seems to be the following:
>
> 38041f50 <do_syscall_WRK>:
> 38041f50: e92d00b0 stmdb sp!, {r4, r5, r7}
> 38041f54: e59d400c ldr r4, [sp, #12]
> 38041f58: e59d5010 ldr r5, [sp, #16]
> 38041f5c: e59d7014 ldr r7, [sp, #20]
> 38041f60: ef000000 svc 0x00000000
> 38041f64: e8bd00b0 ldmia sp!, {r4, r5, r7}
> 38041f68: e12fff1e bx lr
What is PXA255 [give URL etc.], and which version of Debian, and which hardware?
The opcode 'svc' is a system call, and 0x38041f64 is the immediately
following address, so the SIGILL is a complaint from the syscall.
There are 6 arguments (r0,r1,r2,r3,r4,r5} and the syscall number
was in r7. Find syscall number and argument values, such as by using gdb.
Or perhaps the last few lines of
valgrind --trace-syscalls=yes ./my_app ...
can give some clues.
--
|
|
From: John R. <jr...@bi...> - 2011-12-12 16:42:40
|
On 12/12/2011 04:49 AM, Baurzhan Ismagulov wrote: > On Fri, Dec 09, 2011 at 08:26:38AM -0800, John Reiser wrote: >>>> The patch is: https://bugs.kde.org/show_bug.cgi?id=276897#c2 > ... >> Did you look at Comment #3, immediately following (and about 1 hour after) Comment #2? >> Did you look at Comment #6, about one week after Comment #2, and now two months ago? > #3 applied cleanly on r11823, #6 doesn't. Do you remember which revision > it applies on, or do you have an updated version? In the output from any "svn diff" the header for each file indicates which version: Index: coregrind/m_dispatch/dispatch-arm-linux.S =================================================================== --- coregrind/m_dispatch/dispatch-arm-linux.S (revision 12107) +++ coregrind/m_dispatch/dispatch-arm-linux.S (working copy) so that one was revision 12107, as are all of them from Comment #6. The header is listed for each file for completeness and so that outputs from multiple "svn diff" can be concatenated yet still be decoded easily. Apparently you are on revision 11823, more than 260 revisions before 12084 of Comment #2. Why so old? (Today's revision number after "svn update" was 12293.) In any case, it is your responsibility to adjust. In many cases 'patch' automatically adjusts the positions or uses "fuzz" successfully. In a few instances manual editing may be necessary, but the "*.rej" files provide clues. Tweaking with 'diff3' might provide automated assistance. Your posts give strong hints of lack of experience, for instance "patch -p0". Please search and learn from a tutorial. One common beginner error is not reversing the patch from Comment #2 before trying to apply the newer version from Comment #6. Another common beginner error is not posting an actual error message from 'patch' when complaining "the patch does not apply cleanly." In particular, some configuration files are more suitable for manual attention while lowest-level bare-metal source code "always" should be handled automatically. -- |
|
From: Baurzhan I. <ib...@ra...> - 2011-08-25 10:34:10
|
On Thu, Aug 25, 2011 at 12:44:44PM +0300, Ali Günhan Akyürek wrote: > I searched internet but couldn't find a recent information about this issue. > It is said that "The repository currently contains support for the > ARMv5 instruction set". We have a CPU with ARMv5TE and with MMU on our > board. > Can we use Valgrind with this CPU? With help from Alexander Potapenko, I could build a version for ARMv7. Since I use XScale (ARMv5TE), it crashed with Illegal instruction. My XScale toolchain didn't support ARMv7 instruction set, so I couldn't build it. I suppose that the info on the web site is correct and it should work if one gets past building, but I haven't had time to look at it since then. If you come further, please share your experiences here. With kind regards, Baurzhan. |
|
From: Baurzhan I. <ib...@ra...> - 2011-08-25 10:38:06
|
On Thu, Aug 25, 2011 at 11:19:15AM +0100, Tom Hughes wrote: > It's also describing which instructions are supported, and it's true > that all the ARMv5 instructions are supported, but due to other > limitations we don't actually support ARMv5 CPUs. Good to know. Could you elaborate on what those limitations are? Is it something like ARMv7 assembly in Valgrind sources, or anything else? I'm interested in working on it, so it would be great to know the big picture. How much effort do you think it is? With kind regards, Baurzhan. |
|
From: Tom H. <to...@co...> - 2011-08-25 10:47:13
|
On 25/08/11 11:37, Baurzhan Ismagulov wrote: > On Thu, Aug 25, 2011 at 11:19:15AM +0100, Tom Hughes wrote: >> It's also describing which instructions are supported, and it's true >> that all the ARMv5 instructions are supported, but due to other >> limitations we don't actually support ARMv5 CPUs. > > Good to know. Could you elaborate on what those limitations are? Is it > something like ARMv7 assembly in Valgrind sources, or anything else? I'm > interested in working on it, so it would be great to know the big > picture. How much effort do you think it is? Julian will probably correct me, but I believe it has something to do with the handling of thread local storage. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: John R. <jr...@bi...> - 2011-10-03 04:23:41
|
On 08/26/2011 04:32 AM, Ali Günhan Akyürek wrote: > Thanks for the responses. As far as I understand, currently it's not > possible to the some limitations. I've achieved initial success for armv5te: "valgrind /bin/date" runs on my sheevaplug (1200 BogoMIPS, 512MB RAM) under Debian testing (wheezy). The patch is: https://bugs.kde.org/show_bug.cgi?id=276897#c2 to the bug report titled "ARM v6 legacy patches." -- |
|
From: Baurzhan I. <ib...@ra...> - 2011-12-09 11:56:47
|
Hello John, On Sun, Oct 02, 2011 at 09:25:27PM -0700, John Reiser wrote: > I've achieved initial success for armv5te: "valgrind /bin/date" runs > on my sheevaplug (1200 BogoMIPS, 512MB RAM) under Debian testing (wheezy). > The patch is: https://bugs.kde.org/show_bug.cgi?id=276897#c2 > to the bug report titled "ARM v6 legacy patches." Thanks for the pointer. I've tried it on r12084. Configuring for --host=arm-linux-gnu was ok. Building failed with the following error: arm-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1 -I../coregrind -DVG_LIBDIR="\"/usr/local/lib/valgrind"\" -DVG_PLATFORM="\"arm-linux\"" -I.. -I../include -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1 -I../coregrind -DVG_LIBDIR="\"/usr/local/lib/valgrind"\" -DVG_PLATFORM="\"arm-linux\"" -march=armv5te -g -Wno-long-long -MT libcoregrind_arm_linux_a-dispatch-arm-linux.o -MD -MP -MF .deps/libcoregrind_arm_linux_a-dispatch-arm-linux.Tpo -c -o libcoregrind_arm_linux_a-dispatch-arm-linux.o `test -f 'm_dispatch/dispatch-arm-linux.S' || echo './'`m_dispatch/dispatch-arm-linux.S m_dispatch/dispatch-arm-linux.S: Assembler messages: m_dispatch/dispatch-arm-linux.S:91: Error: internal_relocation (type: OFFSET_IMM) not fixed up How can I fix this? I have binutils-arm-linux-gnu 2.17. BTW, the patch didn't apply on the svn tree with patch 2.6 -- it looked for dispatch-arm-linux.S and syswrap-generic.c in top_srcdir and not in the respective subdirectory. Which tool do you use to apply svn patches? Thanks in advance, Baurzhan. |
|
From: John R. <jr...@bi...> - 2011-12-09 16:26:34
|
On 12/09/2011 03:37 AM, Baurzhan Ismagulov wrote: >> The patch is: https://bugs.kde.org/show_bug.cgi?id=276897#c2 > arm-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1 -I../coregrind -DVG_LIBDIR="\"/usr/local/lib/valgrind"\" -DVG_PLATFORM="\"arm-linux\"" -I.. -I../include -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1 -I../coregrind -DVG_LIBDIR="\"/usr/local/lib/valgrind"\" -DVG_PLATFORM="\"arm-linux\"" -march=armv5te -g -Wno-long-long -MT libcoregrind_arm_linux_a-dispatch-arm-linux.o -MD -MP -MF .deps/libcoregrind_arm_linux_a-dispatch-arm-linux.Tpo -c -o libcoregrind_arm_linux_a-dispatch-arm-linux.o `test -f 'm_dispatch/dispatch-arm-linux.S' || echo './'`m_dispatch/dispatch-arm-linux.S > m_dispatch/dispatch-arm-linux.S: Assembler messages: > m_dispatch/dispatch-arm-linux.S:91: Error: internal_relocation (type: OFFSET_IMM) not fixed up > > How can I fix this? Did you look at Comment #3, immediately following (and about 1 hour after) Comment #2? Did you look at Comment #6, about one week after Comment #2, and now two months ago? > BTW, the patch didn't apply on the svn tree with patch 2.6 -- it looked > for dispatch-arm-linux.S and syswrap-generic.c in top_srcdir and not in > the respective subdirectory. Which tool do you use to apply svn patches? "man patch": "not specifying -p at all just gives you blurfl.c" -- |