Valgrind Installation error in Oracle Linux

636 views Asked by At

I am working on Oracle Linux Server release 6.5.

GCC version 4.4.7

I am trying to install Valgrind valgrind-3.17.0 but ending up in error. Can you please suggest on the below issue? Thanks in advance.

Below are the steps I followed:

./configure

When I checked the logs after running ./configure, I found one sentence as:

checking if amd64 assembler knows the RDSEED instruction... no

make install

priv/guest_amd64_helpers.c:3799: Error: no such instruction: `rdseed %r11d'
make[3]: *** [priv/libvex_amd64_linux_a-guest_amd64_helpers.o] Error 1
make[3]: Leaving directory `/usr/src/valgrind-3.17.0/VEX'
make[2]: *** [install] Error 2
make[2]: Leaving directory `/usr/src/valgrind-3.17.0/VEX'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/usr/src/valgrind-3.17.0'
make: *** [install] Error 2```



2

There are 2 answers

2
phd On

This looks like a bug, you should file a problem in valgrind bugzilla.

In the meantime, you could modify the source file guest_amd64_helpers.c by replacing

#  if defined(__x86_64__)

by

#  if defined(__do_not_use_this_it_is_broken_on_my_system__)

at the relevant place

1
Nate Eldredge On

It sounds like your assembler doesn't recognize the rdseed instruction, probably because it is a very old version.

GCC 4.4.7 is about 10 years old, so if your assembler and binutils is of similar vintage, then this is to be expected: the instruction wasn't even invented until about 2012 or so.

I think you need to upgrade your toolchain and maybe your entire OS. This is probably the least of the problems you're going to encounter by using such ancient tools.

(It does look like they check for assembler support when doing configure, so in principle they could avoid using that instruction when the assembler doesn't support it, but they don't. It may be that at some point, they decided to drop support for these old assemblers, but didn't bother to remove the test from configure, nor to make a failure of this test a fatal error.)