Blob Blame History Raw
Use stat64 to detect presence of file that alters IFUNC selection.
This avoids problems in NVMe drives where 32-bit stat would fail
because the device ID doesn't fit into teh truncated 16-bit dev_t.

diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h
index 4e2e6fabb39ab600..e3b8167ae0669f00 100644
--- a/sysdeps/x86/cpu-features.h
+++ b/sysdeps/x86/cpu-features.h
@@ -184,11 +184,19 @@
 static bool __attribute__ ((unused))
 use_unaligned_strstr (void)
 {
+# if defined __x86_64__
   struct stat unaligned_strstr_etc_sysconfig_file;
+# else
+  struct stat64 unaligned_strstr_etc_sysconfig_file;
+# endif
 
   /* TLS may not have been set up yet, so avoid using stat since it tries to
      set errno.  */
+# if defined __x86_64__
   return INTERNAL_SYSCALL (stat, , 2,
+# else
+  return INTERNAL_SYSCALL (stat64, , 2,
+# endif
 			   ENABLE_STRSTR_UNALIGNED_PATHNAME,
 			   &unaligned_strstr_etc_sysconfig_file) == 0;
 }