diff -Naur rsync-3.0.7.old/syscall.c rsync-3.0.7.new/syscall.c --- rsync-3.0.7.old/syscall.c 2010-02-05 22:37:11.000000000 -0500 +++ rsync-3.0.7.new/syscall.c 2010-02-05 22:40:02.000000000 -0500 @@ -37,11 +37,6 @@ extern int preserve_perms; extern int preserve_executability; -struct create_time { - unsigned long length; - struct timespec crtime; -}; - #define RETURN_ERROR_IF(x,e) \ do { \ if (x) { \ @@ -402,7 +397,8 @@ time_t get_create_time(const char *path) { - static struct create_time attrBuf; + static char attrBuf[sizeof(u_int32_t) + sizeof(struct timespec)]; + static struct timespec *crtime = (struct timespec*)&attrBuf[sizeof(u_int32_t)]; struct attrlist attrList; memset(&attrList, 0, sizeof attrList); @@ -410,7 +406,7 @@ attrList.commonattr = ATTR_CMN_CRTIME; if (getattrlist(path, &attrList, &attrBuf, sizeof attrBuf, FSOPT_NOFOLLOW) < 0) return 0; - return attrBuf.crtime.tv_sec; + return crtime->tv_sec; } int set_create_time(const char *path, time_t crtime)