https://bugzilla.samba.org/show_bug.cgi?id=6276
Summary: crtimes.patch does not preserve creation dates on Mac x86_64 only Product: rsync Version: 3.0.6 Platform: x86 OS/Version: Mac OS X Status: NEW Severity: normal Priority: P3 Component: core AssignedTo: way...@samba.org ReportedBy: bugzilla.samba....@maclemon.at QAContact: rsync...@samba.org Summary: rsync with fileflags and crtimes patches does not preserve creation date/time on Mac OS X 10.5.6 under x86_64 when compiled as x86_64. I'm compiling rsync 3.0.6-pre1 (and 3.0.5) on Mac OS X Leopard 10.5.6 (9G2141) with gcc version 4.0.1 (Apple Inc. build 5490). I'm creating a 4 way universal binary for ppc, ppc64, i386 and x86_64. crtimes patch works fine for 3.0.5 and 3.0.6-pre1 on ppc, ppc64 and i386. However rsync does not preserve creation dates on Mac OS X when run as x86_64 binary. Running the same rsync with the same patch created as i386 (32 bit binary) DOES correctly preserve creation dates. This is how I build rsync 3.0.6-pre1 as a 4 way universal binary: patch -p1 <../patches/fileflags.diff ./prepare-source patch -p1 <../patches/crtimes.diff ./configure --prefix=/usr/local/maclemon-beta --disable-debug CC="gcc -std=gnu99 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" CFLAGS="-g -fprefetch-loop-arrays -funroll-loops -O3 -DHAVE_CONFIG_H -Wall -W -I./popt -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64" LDFLAGS="-mmacosx-version-min=10.4 -arch ppc -arch i386 -arch ppc64 -arch x86_64" make Result: MD5 (rsync) = 9cc18a386a256f6aecd9c46815088594 SHA1(rsync)= d4c9b32e088208e12821f96117b632f20750e08f rsync: Mach-O universal binary with 4 architectures rsync (for architecture ppc): Mach-O executable ppc rsync (for architecture i386): Mach-O executable i386 rsync (for architecture ppc64): Mach-O 64-bit executable ppc64 rsync (for architecture x86_64): Mach-O 64-bit executable x86_64 -rwxr-xr-x 1 pepi staff 2535144 18 Apr 22:49 rsync When created this way, rsync running on an intel Core2Duo based Mac will not preserve creation date/time. I've tested this with backupbouncer 0.1.3: ------------------ rsync3-maclemon-beta ------------------ This copier produced log output in: /Volumes/Dst/81-rsync3-maclemon-beta/log Verifying: basic-permissions ... ok (Critical) Verifying: timestamps ... ok (Critical) Verifying: symlinks ... ok (Critical) Verifying: symlink-ownership ... ok Verifying: hardlinks ... ok (Important) Verifying: resource-forks ... Sub-test: on files ... ok (Critical) Sub-test: on hardlinked files ... ok (Important) Verifying: finder-flags ... ok (Critical) Verifying: finder-locks ... ok Verifying: creation-date ... FAIL <-----------------FAILS here Verifying: bsd-flags ... ok Verifying: extended-attrs ... Sub-test: on files ... ok (Important) Sub-test: on directories ... ok (Important) Sub-test: on symlinks ... ok Verifying: access-control-lists ... Sub-test: on files ... ok (Important) Sub-test: on dirs ... ok (Important) Verifying: fifo ... ok Verifying: devices ... ok Verifying: combo-tests ... Sub-test: xattrs + rsrc forks ... ok Sub-test: lots of metadata ... ok When compiled as i386 (32bit) only (doesn't matter if I also compile in the ppc and ppc64 versions) The ONLY difference to the above build is the omission of -arch x86_64 in configure. patch -p1 <../patches/fileflags.diff ./prepare-source patch -p1 <../patches/crtimes.diff ./configure --prefix=/usr/local/maclemon-beta --disable-debug CC="gcc -std=gnu99 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" CFLAGS="-g -fprefetch-loop-arrays -funroll-loops -O3 -DHAVE_CONFIG_H -Wall -W -I./popt -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -arch ppc64" LDFLAGS="-mmacosx-version-min=10.4 -arch ppc -arch i386 -arch ppc64" make MD5 (rsync) = 85e347ea3cf8567b1b2f980c673d856f SHA1(rsync)= 23c2c188a80db12ca268202fa28ce32c1a02e804 rsync: Mach-O universal binary with 3 architectures rsync (for architecture ppc): Mach-O executable ppc rsync (for architecture i386): Mach-O executable i386 rsync (for architecture ppc64): Mach-O 64-bit executable ppc64 -rwxr-xr-x 1 pepi staff 1888720 18 Apr 22:56 rsync Now backup bouncer reports this: ------------------ rsync3-maclemon-beta ------------------ This copier produced log output in: /Volumes/Dst/81-rsync3-maclemon-beta/log Verifying: basic-permissions ... ok (Critical) Verifying: timestamps ... ok (Critical) Verifying: symlinks ... ok (Critical) Verifying: symlink-ownership ... ok Verifying: hardlinks ... ok (Important) Verifying: resource-forks ... Sub-test: on files ... ok (Critical) Sub-test: on hardlinked files ... ok (Important) Verifying: finder-flags ... ok (Critical) Verifying: finder-locks ... ok Verifying: creation-date ... ok <-------------- WORKS! Verifying: bsd-flags ... ok Verifying: extended-attrs ... Sub-test: on files ... ok (Important) Sub-test: on directories ... ok (Important) Sub-test: on symlinks ... ok Verifying: access-control-lists ... Sub-test: on files ... ok (Important) Sub-test: on dirs ... ok (Important) Verifying: fifo ... ok Verifying: devices ... ok Verifying: combo-tests ... Sub-test: xattrs + rsrc forks ... ok Sub-test: lots of metadata ... ok Conclusion: crtimes patch does not work when rsync 3.0.6-pre1 (and 3.0.5) is compiled for x86_64 and run on Core2Duo in 64bit mode on Mac OS X 10.5.6. crtimes patch does only work when rsync is compiled in 32bit mode (i386) or for any PPC build. Best regards Pepi -- Configure bugmail: https://bugzilla.samba.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. -- Please use reply-all for most replies to avoid omitting the mailing list. To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html