Module Name:    src
Committed By:   christos
Date:           Thu Feb  8 19:24:43 UTC 2024

Modified Files:
        src/distrib/hppa/sysnbsd: Makefile
        src/sys/arch/hppa/stand/mkboot: mkboot.c

Log Message:
PR/57911: Jan-Benedict Glaw: Allow to set repro timestamp (and use it)


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/distrib/hppa/sysnbsd/Makefile
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/hppa/stand/mkboot/mkboot.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/hppa/sysnbsd/Makefile
diff -u src/distrib/hppa/sysnbsd/Makefile:1.1 src/distrib/hppa/sysnbsd/Makefile:1.2
--- src/distrib/hppa/sysnbsd/Makefile:1.1	Mon Feb 24 02:23:39 2014
+++ src/distrib/hppa/sysnbsd/Makefile	Thu Feb  8 14:24:43 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.1 2014/02/24 07:23:39 skrll Exp $
+#	$NetBSD: Makefile,v 1.2 2024/02/08 19:24:43 christos Exp $
 
 .include <bsd.own.mk>
 .include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
@@ -10,8 +10,12 @@ MKBOOT = ${TOOLDIR}/bin/${_TOOL_PREFIX}h
 KERN=	${KERNOBJDIR}/GENERIC/netbsd
 LIF=	SYSNBSD
 
+.if ${MKREPRO_TIMESTAMP:Uno} != "no"
+MKBOOT_TIMESTAMP=-t "${MKREPRO_TIMESTAMP}"
+.endif
+
 release: check_RELEASEDIR 
-	${MKBOOT} ${DESTDIR}/usr/mdec/boot ${KERN} ${.OBJDIR}/${LIF}
+	${MKBOOT} ${MKBOOT_TIMESTAMP} ${DESTDIR}/usr/mdec/boot ${KERN} ${.OBJDIR}/${LIF}
 	${RELEASE_INSTALL} ${.OBJDIR}/${LIF} \
 	    ${RELEASEDIR}/${RELEASEMACHINEDIR}/installation
 

Index: src/sys/arch/hppa/stand/mkboot/mkboot.c
diff -u src/sys/arch/hppa/stand/mkboot/mkboot.c:1.2 src/sys/arch/hppa/stand/mkboot/mkboot.c:1.3
--- src/sys/arch/hppa/stand/mkboot/mkboot.c:1.2	Thu Jan 21 12:00:23 2016
+++ src/sys/arch/hppa/stand/mkboot/mkboot.c	Thu Feb  8 14:24:43 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkboot.c,v 1.2 2016/01/21 17:00:23 christos Exp $	*/
+/*	$NetBSD: mkboot.c,v 1.3 2024/02/08 19:24:43 christos Exp $	*/
 
 /*	$OpenBSD: mkboot.c,v 1.9 2001/05/17 00:57:55 pvalchev Exp $	*/
 
@@ -115,6 +115,7 @@ int cksum(int, int *, int);
 char *to_file;
 int loadpoint, verbose;
 u_long entry;
+time_t repro_epoch = 0;
 
 /*
  * Old Format:
@@ -140,14 +141,17 @@ main(int argc, char **argv)
 	struct hppa_lifvol *lifv = (struct hppa_lifvol *)buf;
 	struct hppa_lifdir *lifd = (struct hppa_lifdir *)(buf + HPPA_LIF_DIRSTART);
 
-	while ((c = getopt(argc, argv, "vl:")) != -1) {
+	while ((c = getopt(argc, argv, "l:t:v")) != -1) {
 		switch (c) {
+		case 'l':
+			loadpoint = strtol(optarg, NULL, 0);
+			break;
+		case 't':
+			repro_epoch = atoll(optarg);
+			break;
 		case 'v':
 			verbose++;
 			break;
-		case 'l':
-			sscanf(optarg, "0x%x", &loadpoint);
-			break;
 		default:
 			usage();
 		}
@@ -374,8 +378,8 @@ void __dead
 usage(void)
 {
 	fprintf(stderr,
-		"usage: %s [-v] [-l loadpoint] prog1 {progN} outfile\n",
-		getprogname());
+	    "Usage: %s [-v] [-l <loadpoint>] [-t <timestamp>] prog1 {progN} outfile\n",
+	    getprogname());
 	exit(1);
 }
 
@@ -411,6 +415,12 @@ bcddate(char *file, char *toc)
 	struct stat statb;
 	struct tm *tm;
 
+	if (repro_epoch)
+		tm = gmtime(&repro_epoch);
+	else {
+		stat(file, &statb);
+		tm = localtime(&statb.st_ctime);
+	}
 	stat(file, &statb);
 	tm = localtime(&statb.st_ctime);
 	tm->tm_year %= 100;

Reply via email to