diff -ruN fakeroot/configure.ac fakeroot-upstream-1.30.1/configure.ac
--- fakeroot/configure.ac	2022-11-14 03:31:24.575795452 +0800
+++ fakeroot-upstream-1.30.1/configure.ac	2022-11-14 03:42:12.116973388 +0800
@@ -499,7 +499,7 @@
 LDPRELOADABS=0
 LDEXTRAVAR=""
 case $target_cpu:$target_os in
-	(alpha*:linux*|ia64*:linux*)
+	(sw_64*:linux|alpha*:linux*|ia64*:linux*)
 		libcpath="/lib/libc.so.6.1"
 		;;
 	(*:linux*)
@@ -666,6 +666,21 @@
 ],
        [AC_MSG_RESULT([no]);])
         ;;
+esac
+
+case "$target_cpu:$target_os" in
+	(sw_64*:linux*)
+	AH_TEMPLATE([STUPID_ALPHA_HACK], [stat-struct conversion hackery])
+	AC_MSG_CHECKING([if we need to do stat-struct conversion hackery])
+	AC_EGREP_CPP([3:3],[
+#include <sys/stat.h>
+_STAT_VER:_STAT_VER_GLIBC2_3_4
+],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(STUPID_ALPHA_HACK)
+CPPFLAGS="$CPPFLAGS -I\$(srcdir)/statconv/glibc/linux/sw_64"
+],
+       [AC_MSG_RESULT([no]);])
+        ;;
 esac
 
 dnl AH_TEMPLATE([MACOSX], [is __APPLE__ defined by the compiler])
diff -ruN fakeroot/statconv/glibc/linux/sw_64/stats.h fakeroot-upstream-1.30.1/statconv/glibc/linux/sw_64/stats.h
--- fakeroot/statconv/glibc/linux/sw_64/stats.h	1970-01-01 08:00:00.000000000 +0800
+++ fakeroot-upstream-1.30.1/statconv/glibc/linux/sw_64/stats.h	2022-11-14 03:42:12.116973388 +0800
@@ -0,0 +1,86 @@
+/* Definition of `struct stat' used in the kernel.  */
+struct fakeroot_kernel_stat
+  {
+    unsigned int st_dev;
+    unsigned int st_ino;
+    unsigned int st_mode;
+    unsigned int st_nlink;
+    unsigned int st_uid;
+    unsigned int st_gid;
+    unsigned int st_rdev;
+    long int st_size;
+    unsigned long int st_atime;
+    unsigned long int st_mtime;
+    unsigned long int st_ctime;
+    unsigned int st_blksize;
+    int st_blocks;
+    unsigned int st_flags;
+    unsigned int st_gen;
+  };
+
+/* Definition of `struct stat64' used in the kernel.  */
+struct fakeroot_kernel_stat64
+  {
+    unsigned long   st_dev;
+    unsigned long   st_ino;
+    unsigned long   st_rdev;
+    long            st_size;
+    unsigned long   st_blocks;
+
+    unsigned int    st_mode;
+    unsigned int    st_uid;
+    unsigned int    st_gid;
+    unsigned int    st_blksize;
+    unsigned int    st_nlink;
+    unsigned int    __pad0;
+
+    unsigned long   st_atime;
+    unsigned long   st_atimensec; 
+    unsigned long   st_mtime;
+    unsigned long   st_mtimensec;
+    unsigned long   st_ctime;
+    unsigned long   st_ctimensec;
+    long            __unused[3];
+  };
+
+/* Definition of `struct stat' used by glibc 2.0.  */
+struct fakeroot_glibc2_stat
+  {
+    __dev_t st_dev;
+    __ino_t st_ino;
+    __mode_t st_mode;
+    __nlink_t st_nlink;
+    __uid_t st_uid;
+    __gid_t st_gid;
+    __dev_t st_rdev;
+    __off_t st_size;
+    __time_t st_atime;
+    __time_t st_mtime;
+    __time_t st_ctime;
+    unsigned int st_blksize;
+    int st_blocks;
+    unsigned int st_flags;
+    unsigned int st_gen;
+  };
+
+/* Definition of `struct stat' used by glibc 2.1.  */
+struct fakeroot_glibc21_stat
+  {
+    __dev_t st_dev;
+    __ino64_t st_ino;
+    __mode_t st_mode;
+    __nlink_t st_nlink;
+    __uid_t st_uid;
+    __gid_t st_gid;
+    __dev_t st_rdev;
+    __off_t st_size;
+    __time_t st_atime;
+    __time_t st_mtime;
+    __time_t st_ctime;
+    __blkcnt64_t st_blocks;
+    __blksize_t st_blksize;
+    unsigned int st_flags;
+    unsigned int st_gen;
+    int __pad3;
+    long __unused[4];
+  };
