diff --git a/utils/process-pt-dynamic.c b/utils/process-pt-dynamic.c
index 62131eba3c58fa31a0f01b0bbdee9b1fb87720dd..7511a0d1ee039fef189a0c0107bf9093cab6f4d7 100644
--- a/utils/process-pt-dynamic.c
+++ b/utils/process-pt-dynamic.c
@@ -31,7 +31,13 @@
 #include "mmap-info.h"
 
 static void *
+#if __ELF_NATIVE_CLASS == 32
+addr (ElfW(Addr) base, ElfW(Addr) ptr, ElfW(Sword) addend)
+#elif __ELF_NATIVE_CLASS == 64
 addr (ElfW(Addr) base, ElfW(Addr) ptr, ElfW(Sxword) addend)
+#else
+#error "Unsupported __ELF_NATIVE_CLASS size (not 32 or 64)"
+#endif
 {
     if( (ptr + addend) > base )
         return (void *)(ptr + addend);