Markus Teich wrote: > vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xC7 0xF0 0x72 0x4 0xFF > 0xC9 > vex amd64->IR: REX=1 REX.W=1 REX.R=0 REX.X=0 REX.B=0 > vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F > vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 > ==10769== valgrind: Unrecognised instruction at address 0x60082d3. > ==10769== at 0x60082D3: poll_drng.isra.0 (in > /usr/lib64/libgcrypt.so.20.1.3)
> I have a x86_64 gentoo system with valgrind-3.11.0 and libgcrypt-1.7.3 > installed. > The CFLAGS from my make.conf are: > > CFLAGS="-O2 -pipe" > CFLAGS="${CFLAGS} -march=core-avx2 -mtune=core-avx2 -mcx16 -msahf -mmovbe > -maes" > CFLAGS="${CFLAGS} -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop" > CFLAGS="${CFLAGS} -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 > -mlzcnt" > CFLAGS="${CFLAGS} -mrdrnd -mf16c -mfsgsbase --param l1-cache-size=32" > CFLAGS="${CFLAGS} --param l1-cache-line-size=64 --param l2-cache-size=4096" gdb says that the bytes 0xF 0xC7 0xF0 are "rdrand %rax". Evidently valgrind's libVEX does not know about this, or perhaps the preceding 0x48 prefix has confused valgrind. [gdb 7.9.1-20.fc22 didn't know how to interpret 0x48 0xF 0xC7 0xF0, either.] So, please file a bug at http://valgrind.org/support/bug_reports.html . Just copy+paste your original message into the bug report, and give a title such as "rdrand not recognized on amd64". Give the version of your compiler, too: the output from "gcc --version" . Meanwhile, it should be possible to make progress by avoiding the 'rdrand' instruction. Is there some application flag or environment variable which says "do not use the hardware random number generator?" After that, try rebuilding libgcrypt-1.7.3 without "-mrdrnd". -- ------------------------------------------------------------------------------ _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users