diff --git a/src/lib/rng/processor_rng/info.txt b/src/lib/rng/processor_rng/info.txt
index 3429af09577..eb2d5ef51b8 100644
--- a/src/lib/rng/processor_rng/info.txt
+++ b/src/lib/rng/processor_rng/info.txt
@@ -17,12 +17,6 @@ ppc64
processor_rng.h
-
-x86_32:rdrand
-x86_64:rdrand
-ppc64:power9
-
-
cpuid
diff --git a/src/lib/rng/processor_rng/processor_rng.cpp b/src/lib/rng/processor_rng/processor_rng.cpp
index 4711e1f12fc..31557543fa8 100644
--- a/src/lib/rng/processor_rng/processor_rng.cpp
+++ b/src/lib/rng/processor_rng/processor_rng.cpp
@@ -7,6 +7,7 @@
#include
#include
+#include
#include
#include
@@ -48,7 +49,7 @@ typedef uint32_t hwrng_output;
typedef uint64_t hwrng_output;
#endif
-hwrng_output read_hwrng(bool& success) {
+hwrng_output BOTAN_FN_ISA_RNG read_hwrng(bool& success) {
hwrng_output output = 0; // NOLINT(*-const-correctness) clang-tidy doesn't understand inline asm
success = false;
diff --git a/src/lib/utils/isa_extn.h b/src/lib/utils/isa_extn.h
index 667e71e8421..e78564fa70a 100644
--- a/src/lib/utils/isa_extn.h
+++ b/src/lib/utils/isa_extn.h
@@ -28,6 +28,7 @@
#define BOTAN_FN_ISA_SHANI BOTAN_FUNC_ISA("sha,ssse3,sse4.1")
#define BOTAN_FN_ISA_SHA512 BOTAN_FUNC_ISA("sha512,avx2")
#define BOTAN_FN_ISA_BMI2 BOTAN_FUNC_ISA("bmi,bmi2")
+ #define BOTAN_FN_ISA_RNG BOTAN_FUNC_ISA("rdrnd")
#define BOTAN_FN_ISA_SSE2 BOTAN_FUNC_ISA("sse2")
#define BOTAN_FN_ISA_AVX2 BOTAN_FUNC_ISA("avx2")
#define BOTAN_FN_ISA_AVX2_BMI2 BOTAN_FUNC_ISA("avx2,bmi,bmi2")
@@ -64,6 +65,7 @@
#define BOTAN_FN_ISA_SIMD_4X32 BOTAN_FUNC_ISA("altivec")
#define BOTAN_FN_ISA_CLMUL BOTAN_FUNC_ISA("vsx,crypto")
#define BOTAN_FN_ISA_AES BOTAN_FUNC_ISA("vsx,crypto")
+ #define BOTAN_FN_ISA_RNG BOTAN_FUNC_ISA("cpu=power9")
#endif