To make progress in the meantime, replace those 32 bits by the two instructions mov r0,#0 mov r1,#0 which clear general registers r0 and r1. This is a guess that zeroes mean "this CPU has no such hardware assist". The libcrypto software will choose slower but equivalent code, instead of using any special hardware assist.
How do I "replace" those 32 bits with instructions before the library is loaded at run-time ?
If you have the source for libcrypto.so.1.1, which is in software package openssl-1.1.0h (or openssl-libs-1.1.0h depending on your Linux distro) then in file crypto/armv4cpuid.pl change to: ===== _armv7_tick: #ifdef __APPLE__ mrrc p15,0,r0,r1,c14 @ CNTPCT #else @ mrrc p15,1,r0,r1,c14 @ CNTVCT <<< COMMENTED OUT mov r0,#0 @ replacement for valgrind-3.13 mov r1,#0 @ replacement for valgrind-3.13 #endif bx lr ===== Build from the modified source, and install the modified shared library. If you don't have source, then use a hex (binary) editor such as hexedit. Assemble a one-instruction program "mov r0,#0", then over-write the bytes for "mrrc p15,1,r0,r1,cr14" with the bytes for "mov r0,#0". If the code is 32-bit ARM mode, then that's all there is to do. If the code is 16-bit Thumb mode, then over-write the second 16-bit word with "mov r1,#0". Your initial report said "(thumb)", but perhaps that is inaccurate. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users