Hi tar folks, I've started a detailed analysis of the problem I complained. (By the way, the last patch is too radical and does not work/test suite fails too).
Within my environment using UserModeLinux (http://user-mode-linux.sf.net) restore of nano secondes does not work! lstat() returns always tv_nsec == 0! I think also the check_time() function need a else- case where the is and should values are tested more accurate. A warning here would help a lot to discover the problem I have. The next patch against 1.15.91 solve the problem with nano seconds and does not corrupt other things (testsuite fine): --- tar-1.15.91.orig/src/extract.c +++ tar-1.15.91/src/extract.c @@ -918,7 +918,7 @@ for (; ds; ds = ds->next) if (ds->dev == st1.st_dev && ds->ino == st1.st_ino - && timespec_cmp (ds->mtime, get_stat_mtime (&st1)) == 0) + && tar_timespec_cmp (ds->mtime, get_stat_mtime (&st1)) == 0) { struct string_list *p = xmalloc (offsetof (struct string_list, string) + strlen (file_name) + 1); @@ -1254,7 +1254,7 @@ if (lstat (source, &st) == 0 && st.st_dev == ds->dev && st.st_ino == ds->ino - && timespec_cmp (get_stat_mtime (&st), ds->mtime) == 0) + && tar_timespec_cmp (get_stat_mtime (&st), ds->mtime) == 0) { /* Unlink the placeholder, then create a hard link if possible, a symbolic link otherwise. */ ---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<--- Any furter comments are welcome because I would like to know how tar will handle this in future on Linux/i386. Thanks for your comments, Raphael Bossek -- Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit! "Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]