Module Name:    src
Committed By:   christos
Date:           Thu Feb  8 18:10:34 UTC 2024

Modified Files:
        src/sys/arch/hp300/stand: Makefile.buildboot
        src/sys/arch/hp300/stand/mkboot: mkboot.c

Log Message:
PR/57909: Jan-Benedict Glaw: Don't include (build) timestamp when doing a
reproducible build


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/hp300/stand/Makefile.buildboot
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/hp300/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/sys/arch/hp300/stand/Makefile.buildboot
diff -u src/sys/arch/hp300/stand/Makefile.buildboot:1.37 src/sys/arch/hp300/stand/Makefile.buildboot:1.38
--- src/sys/arch/hp300/stand/Makefile.buildboot:1.37	Fri Jul  9 13:44:28 2021
+++ src/sys/arch/hp300/stand/Makefile.buildboot	Thu Feb  8 13:10:34 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.buildboot,v 1.37 2021/07/09 17:44:28 tsutsui Exp $
+#	$NetBSD: Makefile.buildboot,v 1.38 2024/02/08 18:10:34 christos Exp $
 
 # RELOC=FFF00000 allows for boot prog up to FF000 (1044480) bytes long
 RELOC=	FFF00000
@@ -29,9 +29,13 @@ LIBC=
 LIBCRTBEGIN=
 LIBCRTEND=
 
+.if ${MKREPRO_TIMESTAMP:Uno} != "no"
+HP300MKBOOT_TIMESTAMP=-t "${MKREPRO_TIMESTAMP}"
+.endif
+
 ${PROG}: ${PROGAOUT}
 	${OBJCOPY} --output-target=binary ${PROGAOUT} ${PROGAOUT}.bin
-	${TOOL_HP300MKBOOT} -l 0x${RELOC} ${PROGAOUT}.bin ${PROG}
+	${TOOL_HP300MKBOOT} -l 0x${RELOC} ${HP300MKBOOT_TIMESTAMP} ${PROGAOUT}.bin ${PROG}
 	rm -f ${PROGAOUT}.bin
 
 .include "${S}/conf/newvers_stand.mk"

Index: src/sys/arch/hp300/stand/mkboot/mkboot.c
diff -u src/sys/arch/hp300/stand/mkboot/mkboot.c:1.11 src/sys/arch/hp300/stand/mkboot/mkboot.c:1.12
--- src/sys/arch/hp300/stand/mkboot/mkboot.c:1.11	Sat Oct 11 01:33:25 2014
+++ src/sys/arch/hp300/stand/mkboot/mkboot.c	Thu Feb  8 13:10:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkboot.c,v 1.11 2014/10/11 05:33:25 dholland Exp $	*/
+/*	$NetBSD: mkboot.c,v 1.12 2024/02/08 18:10:34 christos Exp $	*/
 
 /*
  * Copyright (c) 1990, 1993
@@ -47,7 +47,7 @@ __COPYRIGHT(
 #ifdef notdef
 static char sccsid[] = "@(#)mkboot.c	7.2 (Berkeley) 12/16/90";
 #endif
-__RCSID("$NetBSD: mkboot.c,v 1.11 2014/10/11 05:33:25 dholland Exp $");
+__RCSID("$NetBSD: mkboot.c,v 1.12 2024/02/08 18:10:34 christos Exp $");
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -60,6 +60,7 @@ __RCSID("$NetBSD: mkboot.c,v 1.11 2014/1
 #include <time.h>
 
 #include <ctype.h>
+#include <err.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -78,11 +79,11 @@ __RCSID("$NetBSD: mkboot.c,v 1.11 2014/1
 #define btolifs(b)	(((b) + (SECTSIZE - 1)) / SECTSIZE)
 #define lifstob(s)	((s) * SECTSIZE)
 
-int	lpflag;
-int	loadpoint;
+int	loadpoint = -1;
 struct  load ld;
 struct	lifvol lifv;
 struct	lifdir lifd[LIF_NUMDIR];
+time_t repro_epoch = 0;
 
 int	 main(int, char **);
 void	 bcddate(char *, char *);
@@ -110,24 +111,25 @@ int
 main(int argc, char **argv)
 {
 	char *n1, *n2, *n3;
-	int n, to;
+	int n, to, ch;
 	int count;
 
-	--argc;
-	++argv;
-	if (argc == 0)
-		usage();
-	if (!strcmp(argv[0], "-l")) {
-		argv++;
-		argc--;
-		if (argc == 0)
+
+	while ((ch = getopt(argc, argv, "l:t:")) != -1)
+		switch (ch) {
+		case 'l':
+			loadpoint = strtol(optarg, NULL, 0);
+			break;
+		case 't':
+			repro_epoch = (time_t)atoll(optarg);
+			break;
+		default:
 			usage();
-		sscanf(argv[0], "0x%x", &loadpoint);
-		lpflag++;
-		argv++;
-		argc--;
-	}
-	if (!lpflag || argc == 0)
+		}
+
+	argc -= optind;
+	argv += optind;
+	if (loadpoint == -1 || argc == 0)
 		usage();
 	n1 = argv[0];
 	argv++;
@@ -147,11 +149,8 @@ main(int argc, char **argv)
 	} else
 		n2 = n3 = NULL;
 
-	to = open(argv[0], O_WRONLY | O_TRUNC | O_CREAT, 0644);
-	if (to < 0) {
-		perror("open");
-		exit(1);
-	}
+	if ((to = open(argv[0], O_WRONLY | O_TRUNC | O_CREAT, 0644)) == -1)
+		err(1, "Can't open `%s'", argv[0]);
 	/* clear possibly unused directory entries */
 	strncpy(lifd[1].dir_name, "          ", 10);
 	lifd[1].dir_type = htobe16(-1);
@@ -250,8 +249,7 @@ void
 usage(void)
 {
 
-	fprintf(stderr,
-		"usage:	 mkboot -l loadpoint prog1 [ prog2 ] outfile\n");
+	fprintf(stderr, "Usage:	%s -l <loadpoint [-t <timestamp>] prog1 [ prog2 ] outfile\n", getprogname());
 	exit(1);
 }
 

Reply via email to