diff -Naur fakeroot-upstream-1.25.2.org/configure.ac fakeroot-upstream-1.25.2.sw/configure.ac --- fakeroot-upstream-1.25.2.org/configure.ac 2022-04-28 17:01:46.991888440 +0800 +++ fakeroot-upstream-1.25.2.sw/configure.ac 2022-04-28 17:04:38.291888440 +0800 @@ -430,7 +430,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*) @@ -577,6 +577,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 +_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 -Naur fakeroot-upstream-1.25.2.org/statconv/glibc/linux/sw_64/stats.h fakeroot-upstream-1.25.2.sw/statconv/glibc/linux/sw_64/stats.h --- fakeroot-upstream-1.25.2.org/statconv/glibc/linux/sw_64/stats.h 1970-01-01 08:00:00.000000000 +0800 +++ fakeroot-upstream-1.25.2.sw/statconv/glibc/linux/sw_64/stats.h 2022-04-28 17:04:03.311888440 +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]; + };