git: 9front

Download patch

ref: eeb1d7e7d71dfce49835ee329a7cd4edd25c3587
parent: 92c8eb1f95fae1164758fa93d8b79f4bf436138b
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Thu Jan 10 22:16:30 EST 2013

mk: fix ar padding problems on 64bit (from eriks amd64mkar patch)

--- a/sys/src/cmd/mk/archive.c
+++ b/sys/src/cmd/mk/archive.c
@@ -60,12 +60,12 @@
 	if(symlook(name, S_TIME, 0)){
 		/* hoon off and change it in situ */
 		LSEEK(fd, SARMAG, 0);
-		while(read(fd, (char *)&h, sizeof(h)) == sizeof(h)){
+		while(read(fd, &h, SAR_HDR) == SAR_HDR){
 			for(i = SARNAME-1; i > 0 && h.name[i] == ' '; i--)
-					;
+				;
 			h.name[i+1]=0;
 			if(strcmp(member, h.name) == 0){
-				t = SARNAME-sizeof(h);	/* ughgghh */
+				t = SARNAME-SAR_HDR;	/* ughgghh */
 				LSEEK(fd, t, 1);
 				fprint(fd, "%-12ld", time(0));
 				break;
@@ -101,7 +101,7 @@
 	}
 	at = d->mtime;
 	free(d);
-	while(read(fd, (char *)&h, sizeof(h)) == sizeof(h)){
+	while(read(fd, &h, SAR_HDR) == SAR_HDR){
 		t = atol(h.date);
 		if(t >= at)	/* new things in old archives confuses mk */
 			t = at-1;
--