Module Name: src
Committed By: snj
Date: Thu Jul 16 21:36:59 UTC 2015
Modified Files:
src/usr.sbin/installboot [netbsd-7]: Makefile installboot.c
src/usr.sbin/installboot/arch [netbsd-7]: amiga.c
Log Message:
Pull up following revision(s) (requested by mlelstv in ticket #844):
usr.sbin/installboot/Makefile: revisions 1.49, 1.50
usr.sbin/installboot/installboot.c: revisions 1.37, 1.38
usr.sbin/installboot/arch/amiga.c: revision 1.9
Support wedge names.
--
Can't use getfsspecname (and thus wedge names) while building tools.
--
Linking against libutil is not appropiate for tools.
--
Compute bootloader checksum correctly also on little endian systems.
To generate a diff of this commit:
cvs rdiff -u -r1.48 -r1.48.4.1 src/usr.sbin/installboot/Makefile
cvs rdiff -u -r1.36 -r1.36.18.1 src/usr.sbin/installboot/installboot.c
cvs rdiff -u -r1.8 -r1.8.6.1 src/usr.sbin/installboot/arch/amiga.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/installboot/Makefile
diff -u src/usr.sbin/installboot/Makefile:1.48 src/usr.sbin/installboot/Makefile:1.48.4.1
--- src/usr.sbin/installboot/Makefile:1.48 Mon Feb 24 07:23:44 2014
+++ src/usr.sbin/installboot/Makefile Thu Jul 16 21:36:59 2015
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.48 2014/02/24 07:23:44 skrll Exp $
+# $NetBSD: Makefile,v 1.48.4.1 2015/07/16 21:36:59 snj Exp $
#
.include <bsd.own.mk>
@@ -7,7 +7,6 @@ PROG= installboot
MAN= installboot.8
SRCS= installboot.c sum.c machines.c fstypes.c
-
ARCH_XLAT= amd64-i386.c news68k-news.c newsmips-news.c
ARCH_XLAT+= sun2-sun68k.c sun3-sun68k.c
@@ -47,6 +46,9 @@ CPPFLAGS+= -I${.CURDIR} -I.
.for f in i386 macppc
COPTS.${f}.c+= -Wno-pointer-sign
.endfor
+
+LDADD+= -lutil
+DPADD+= ${LIBUTIL}
.endif
.include <bsd.prog.mk>
Index: src/usr.sbin/installboot/installboot.c
diff -u src/usr.sbin/installboot/installboot.c:1.36 src/usr.sbin/installboot/installboot.c:1.36.18.1
--- src/usr.sbin/installboot/installboot.c:1.36 Thu Nov 3 20:46:41 2011
+++ src/usr.sbin/installboot/installboot.c Thu Jul 16 21:36:59 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: installboot.c,v 1.36 2011/11/03 20:46:41 martin Exp $ */
+/* $NetBSD: installboot.c,v 1.36.18.1 2015/07/16 21:36:59 snj Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -35,9 +35,10 @@
#include <sys/cdefs.h>
#if !defined(__lint)
-__RCSID("$NetBSD: installboot.c,v 1.36 2011/11/03 20:46:41 martin Exp $");
+__RCSID("$NetBSD: installboot.c,v 1.36.18.1 2015/07/16 21:36:59 snj Exp $");
#endif /* !__lint */
+#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/utsname.h>
@@ -50,6 +51,9 @@ __RCSID("$NetBSD: installboot.c,v 1.36 2
#include <stddef.h>
#include <string.h>
#include <unistd.h>
+#if !HAVE_NBTOOL_CONFIG_H
+#include <util.h>
+#endif
#include "installboot.h"
@@ -105,6 +109,11 @@ main(int argc, char *argv[])
char *p;
const char *op;
ib_flags unsupported_flags;
+#if !HAVE_NBTOOL_CONFIG_H
+ char specname[MAXPATHLEN];
+ char rawname[MAXPATHLEN];
+ const char *special, *raw;
+#endif
setprogname(argv[0]);
params = &installboot_params;
@@ -229,7 +238,16 @@ main(int argc, char *argv[])
params->stage2 = argv[2];
}
+#if !HAVE_NBTOOL_CONFIG_H
+ special = getfsspecname(specname, sizeof(specname), argv[0]);
+ raw = getdiskrawname(rawname, sizeof(rawname), special);
+ if (raw != NULL)
+ special = raw;
+ params->filesystem = special;
+#else
params->filesystem = argv[0];
+#endif
+
if (params->flags & IB_NOWRITE) {
op = "only";
mode = O_RDONLY;
Index: src/usr.sbin/installboot/arch/amiga.c
diff -u src/usr.sbin/installboot/arch/amiga.c:1.8 src/usr.sbin/installboot/arch/amiga.c:1.8.6.1
--- src/usr.sbin/installboot/arch/amiga.c:1.8 Fri Jun 14 03:54:43 2013
+++ src/usr.sbin/installboot/arch/amiga.c Thu Jul 16 21:36:59 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: amiga.c,v 1.8 2013/06/14 03:54:43 msaitoh Exp $ */
+/* $NetBSD: amiga.c,v 1.8.6.1 2015/07/16 21:36:59 snj Exp $ */
/*-
* Copyright (c) 1999, 2002 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#if !defined(__lint)
-__RCSID("$NetBSD: amiga.c,v 1.8 2013/06/14 03:54:43 msaitoh Exp $");
+__RCSID("$NetBSD: amiga.c,v 1.8.6.1 2015/07/16 21:36:59 snj Exp $");
#endif /* !__lint */
#include <sys/param.h>
@@ -126,8 +126,8 @@ amiga_setboot(ib_params *params)
}
(void)strncpy(dline, params->command, CMDLN_LEN-1);
- block[1] = 0;
- block[1] = 0xffffffff - chksum(block, sumlen);
+ block[1] = htobe32(0);
+ block[1] = htobe32(0xffffffff - chksum(block, sumlen));
}
if (params->flags & IB_NOWRITE) {
@@ -164,7 +164,7 @@ chksum(block, size)
for (i=0; i<size; i++) {
lastsum = sum;
- sum += htobe32(block[i]);
+ sum += be32toh(block[i]);
if (sum < lastsum)
++sum;
}