#701691 valgrind: support for ARMv5/v6

Package:
valgrind
Source:
valgrind
Description:
instrumentation framework for building dynamic analysis tools
Submitter:
Timo Juhani Lindfors
Date:
2013-11-14 12:51:05 UTC
Severity:
wishlist
#701691#5
Date:
2013-02-26 09:39:20 UTC
From:
To:
On "Marvell Feroceon CPU @ 1GHz on a Marvell DB-78x00-BP Development
Board (ARM v5)" running Linux 2.6.32.42 valgrind immediately dies in
my unstable chroot:

$ valgrind --version
Illegal instruction

gdb shows

Program received signal SIGILL, Illegal instruction.
0x00008b6c in ?? ()
(gdb) bt
#0  0x00008b6c in ?? ()
#1  0x00008d7c in ?? ()
#2  0x00008d7c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) x/4i $pc
=> 0x8b6c: movw	r2, #4097	; 0x1001
   0x8b70: add	r0, sp, #20
   0x8b74: bl	0x89cc <memset>
   0x8b78: ldr	r0, [pc, #632]	; 0x8df8

#701691#16
Date:
2013-02-26 11:15:47 UTC
From:
To:
forwarded 701691 https://bugs.kde.org/show_bug.cgi?id=248998
severity 701691 wishlist
retitle 701691 valgrind: support for ARMv5/v6
kthxbye

AFAICT building/running valgrind on ARMv5 is not supported (also see #592614)
but there are a couple of patches floating around [0] to add support for them.
I don't know if they actually work (or if they apply at all) though.

Cheers

[0] https://bugs.kde.org/show_bug.cgi?id=248998

#701691#21
Date:
2013-02-26 11:32:34 UTC
From:
To:
Alessandro Ghedini <ghedo@debian.org> writes:
is a shell script maybe it could inform the user about this? Something
like this:

if grep -q "^CPU architecture: 4" /proc/cpuinfo || grep -q "^CPU architecture: 5" /proc/cpuinfo; then
   echo "valgrind does not yet support ARMv4 or ARMv5"
   exit 1
fi

Example cpuinfo from openmoko:

Processor       : ARM920T rev 0 (v4l)
BogoMIPS        : 199.47
Features        : swp half thumb
CPU implementer : 0x41
CPU architecture: 4T
CPU variant     : 0x1
CPU part        : 0x920
CPU revision    : 0

Hardware        : GTA02
Revision        : 0360
Serial          : 0000000000000000

Example cpuinfo from the marvell development board:

Processor       : Feroceon rev 0 (v5l)
BogoMIPS        : 999.42
Features        : swp half thumb fastmult vfp edsp
CPU implementer : 0x41
CPU architecture: 5TE
CPU variant       : 0x1
CPU part          : 0x926
CPU revision      : 0

Hardware          : Marvell DB-78x00-BP Development Board
Revision          : 0000
Serial              : 0000000000000000

Example cpuinfo from marvell sheevaplug:

Processor       : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1192.75
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant       : 0x2
CPU part          : 0x131
CPU revision      : 1

Hardware          : Marvell eSATA SheevaPlug Reference Board
Revision          : 0000
Serial              : 0000000000000000

#701691#26
Date:
2013-08-06 17:14:19 UTC
From:
To:
Just ran into this issue on our build box abel -- I was genuinly surprised to
see valgrind available for that architecture so immediately jumped to install
it -- but as this report shows, it is next to useless on armel, so why we carry
armel build at all thus confusing poor users?

may be

 override_dh_auto_test:
        : # do nothing for now

should be tuned up to run at least few really quick tests to guarantee that
valgrind works to at least some degree on a given platform, and if not -- fail
that build thus avoiding users' frustration with useless package.  Meanwhile
removing all the builds for unsupported architectures.

NB I have been enabling build-time testing for all of my packages and yes
-- it does give more work to make package suitable for testing/stable BUT it
provides a guarantee against many bugs being unraveled on users systems after.

Cheers,

#701691#31
Date:
2013-08-07 09:01:46 UTC
From:
To:
It was enabled to let armel users with ARMv7 hardware to use valgrind. At least
that's what I understood from #592614, but I wasn't the maintainer at the time.

There's no such thing as "quick tests" in valgrind sources, and the regression
and performance test suites (intended for the valgrind developers) are way too
heavy and fragile to be enabled on Debian's buildds.

Cheers

#701691#36
Date:
2013-11-12 22:13:54 UTC
From:
To:
Hi,
Something as little as "valgrind ls" would do it.
It could have saved some time from me when I tried running valgrind on
armel on Wheezy...

Thanks,
Balint

#701691#41
Date:
2013-11-13 10:05:03 UTC
From:
To:
Did you read the other part of my email?

Obviously running valgrind on the armel buildd wouldn't have worked since thay
are not ARMv7. Building armel ARMv7-only valgrind on ARMv5 was *by design*, to
let people with armel ARMv7 systems use it.

In any case valgrind is no longer built on armel, and will be removed from
there soon.

Cheers

#701691#46
Date:
2013-11-14 12:46:28 UTC
From:
To:
Hi Alessandro,
2013.11.13. 11:06, "Alessandro Ghedini" <ghedo@debian.org> ezt írta:
surprised to
to install
why we carry
valgrind. At least
the time.
regression
are way too
Sure. I meant this could be a very basic regression test which would run on
buildd machines now with dropping the special case armel arch and could
help people rebuilding Valgrind with changed dependencies.
valgrind. At least
the time.
thay
design*, to