git: 9front

Download patch

ref: 770adad6cd50878ee9ffa01b218dd02754481cb5
parent: 21c003eeb6209009cc8dd4510888133a161dc7a2
author: mia soweli <mia@soweli.net>
date: Sat Aug 16 14:59:18 EDT 2025

mkfile: use ar vr instead of ar vu

ar vu replaces only if the modification date has changed.  this is
problematic if you can build libc fast enough that the portable code
and architecture specific code end up with a close enough modification
time.

the portable files will not be replaced by the machine specific files,
which means code that uses locks will fail to link.

--- a/sys/src/cmd/cc/mkfile
+++ b/sys/src/cmd/cc/mkfile
@@ -37,7 +37,7 @@
 	date
 
 $LIB:	$LIBOBJ
-	ar vu $LIB $OFILES
+	ar vr $LIB $OFILES
 
 mac.$O: macbody
 
--- a/sys/src/cmd/ip/httpd/mkfile
+++ b/sys/src/cmd/ip/httpd/mkfile
@@ -53,7 +53,7 @@
 	sed 17q /tmp/search
 
 $LIBS:	$LIBSOFILES
-	ar vu $LIBS $newprereq
+	ar vr $LIBS $newprereq
 	rm $newprereq
 	# rm $newmember - cannot do this because of mk race
 
--- a/sys/src/cmd/mklib
+++ b/sys/src/cmd/mklib
@@ -9,7 +9,7 @@
 all:V:	$LIB
 
 $LIB:	$LIBOBJ
-	ar vu $LIB $newmember
+	ar vr $LIB $newmember
 
 %.$O:	$HFILES		# don't combine with following %.$O rules
 
--- a/sys/src/cmd/mksyslib
+++ b/sys/src/cmd/mksyslib
@@ -3,10 +3,10 @@
 all:V:	$LIB
 
 $LIB:V:	$OFILES			# force archive even when not needed
-	ar vu $LIB $newprereq
+	ar vr $LIB $newprereq
 
 &:n:	&.$O
-	ar vu $LIB $stem.$O
+	ar vr $LIB $stem.$O
 
 %.$O:	$HFILES			# don't combine with following %.$O rules
 
--- a/sys/src/libc/9syscall/mkfile
+++ b/sys/src/libc/9syscall/mkfile
@@ -148,7 +148,7 @@
 		}} > $i.s
 		$AS $i.s
 	}
-	ar vu /$objtype/lib/libc.a *.$O
+	ar vr /$objtype/lib/libc.a *.$O
 	rm -f *.$O *.s
 
 nuke clean:V:
--- a/sys/src/libc/port/mkfile
+++ b/sys/src/libc/port/mkfile
@@ -163,6 +163,6 @@
 $EXTRA:		$GEN
 
 extra:V:	$EXTRA
-	ar vu $LIB $prereq
+	ar vr $LIB $prereq
 
 regen:V:	$GEN
--