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 +_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]; + };