mk was failing to read archive times because sizeof(struct ar_hdr) == 64 on amd64 (8-byte alignment), and not 60. this caused the read to be too large, and time timestamps to all be set to 0. Reference: /n/sources/patch/applied/amd64-mk-ar Date: Fri Jan 11 01:21:17 CET 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/mk/archive.c Fri Jan 11 01:18:59 2013 +++ /sys/src/cmd/mk/archive.c Fri Jan 11 01:18:57 2013 @@ -101,7 +101,7 @@ } at = d->mtime; free(d); - while(read(fd, (char *)&h, sizeof(h)) == sizeof(h)){ + while(read(fd, (char *)&h, SAR_HDR) == SAR_HDR){ t = atol(h.date); if(t >= at) /* new things in old archives confuses mk */ t = at-1;