Module Name:    src
Committed By:   rin
Date:           Wed Feb  8 16:11:40 UTC 2017

Modified Files:
        src/sbin/fsck_ffs: Makefile dir.c fsck.h inode.c main.c pass1.c pass2.c
            setup.c utilities.c
        src/sbin/newfs: Makefile extern.h mkfs.c newfs.c
        src/sys/ufs/ufs: ufs_bswap.h
Added Files:
        src/distrib/utils/x_fsck_ffs: Makefile
        src/distrib/utils/x_newfs: Makefile
        src/sbin/fsck_ffs: Makefile.common
        src/sbin/newfs: Makefile.common

Log Message:
Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where
support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1
and APPLE_UFS=1 are added to CRUNCHENV, respectively.

This reduces the size of ramdisk image for atari by over 15KB.

Thanks tsutsui and christos for their useful comments.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/distrib/utils/x_fsck_ffs/Makefile
cvs rdiff -u -r0 -r1.1 src/distrib/utils/x_newfs/Makefile
cvs rdiff -u -r1.47 -r1.48 src/sbin/fsck_ffs/Makefile
cvs rdiff -u -r0 -r1.1 src/sbin/fsck_ffs/Makefile.common
cvs rdiff -u -r1.57 -r1.58 src/sbin/fsck_ffs/dir.c
cvs rdiff -u -r1.49 -r1.50 src/sbin/fsck_ffs/fsck.h
cvs rdiff -u -r1.71 -r1.72 src/sbin/fsck_ffs/inode.c
cvs rdiff -u -r1.83 -r1.84 src/sbin/fsck_ffs/main.c
cvs rdiff -u -r1.56 -r1.57 src/sbin/fsck_ffs/pass1.c
cvs rdiff -u -r1.50 -r1.51 src/sbin/fsck_ffs/pass2.c
cvs rdiff -u -r1.100 -r1.101 src/sbin/fsck_ffs/setup.c
cvs rdiff -u -r1.64 -r1.65 src/sbin/fsck_ffs/utilities.c
cvs rdiff -u -r1.39 -r1.40 src/sbin/newfs/Makefile
cvs rdiff -u -r0 -r1.1 src/sbin/newfs/Makefile.common
cvs rdiff -u -r1.15 -r1.16 src/sbin/newfs/extern.h
cvs rdiff -u -r1.127 -r1.128 src/sbin/newfs/mkfs.c
cvs rdiff -u -r1.114 -r1.115 src/sbin/newfs/newfs.c
cvs rdiff -u -r1.21 -r1.22 src/sys/ufs/ufs/ufs_bswap.h

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

Modified files:

Index: src/sbin/fsck_ffs/Makefile
diff -u src/sbin/fsck_ffs/Makefile:1.47 src/sbin/fsck_ffs/Makefile:1.48
--- src/sbin/fsck_ffs/Makefile:1.47	Tue Feb  7 16:14:47 2017
+++ src/sbin/fsck_ffs/Makefile	Wed Feb  8 16:11:40 2017
@@ -1,45 +1,17 @@
-#	$NetBSD: Makefile,v 1.47 2017/02/07 16:14:47 rin Exp $
+#	$NetBSD: Makefile,v 1.48 2017/02/08 16:11:40 rin Exp $
 #	@(#)Makefile	8.2 (Berkeley) 4/27/95
 
+# when making a change to this file, please check if the change is
+# also needed for src/distrib/utils/x_fsck_ffs.
+# such stuff should be into Makefile.common.
+
 .include <bsd.own.mk>
 
-PROG=	fsck_ffs
 MAN=	fsck_ffs.8
-SRCS=	dir.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c pass4.c \
-	pass5.c pass6.c fsutil.c setup.c utilities.c ffs_bswap.c ffs_subr.c \
-	ffs_tables.c ffs_appleufs.c partutil.c snapshot.c quota2.c quota2_subr.c
-
-FSCK=	${NETBSDSRCDIR}/sbin/fsck
-DUMP=	${NETBSDSRCDIR}/sbin/dump
-CPPFLAGS+=-I${FSCK} -I${DUMP}
-.ifndef  SMALLPROG
-CPPFLAGS+=-DPROGRESS
-SRCS+=	progress.c
-.endif
-.PATH:	${FSCK}
-
-.PATH:	${NETBSDSRCDIR}/sys/ufs/ffs ${NETBSDSRCDIR}/sys/ufs/ufs ${FSCK} ${DUMP}
-
-SRCS+= vfs_wapbl.c wapbl.c
-.PATH:	${NETBSDSRCDIR}/sys/kern
-CPPFLAGS+=-DWAPBL_DEBUG_PRINT=0
-
-LDADD+=-lutil
-DPADD+=${LIBUTIL}
-
-LDADD+=-lprop
-DPADD+=${LIBPROP}
-
-COPTS.ffs_appleufs.c+=	-Wno-pointer-sign
-
-.if ${MACHINE_ARCH} == "m68000"
-COPTS.pass1.c+=	-fno-tree-fre -fno-tree-lrs
-.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.pass1.c+=	-O0
-.endif
+SRCS=	ffs_bswap.c ffs_appleufs.c
+SUBDIR=	SMM.doc
 
-SUBDIR+=SMM.doc
+.include "Makefile.common"
 
 .include <bsd.prog.mk>
 .include <bsd.subdir.mk>

Index: src/sbin/fsck_ffs/dir.c
diff -u src/sbin/fsck_ffs/dir.c:1.57 src/sbin/fsck_ffs/dir.c:1.58
--- src/sbin/fsck_ffs/dir.c:1.57	Sun Jun 23 07:28:36 2013
+++ src/sbin/fsck_ffs/dir.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: dir.c,v 1.57 2013/06/23 07:28:36 dholland Exp $	*/
+/*	$NetBSD: dir.c,v 1.58 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)dir.c	8.8 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: dir.c,v 1.57 2013/06/23 07:28:36 dholland Exp $");
+__RCSID("$NetBSD: dir.c,v 1.58 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -154,10 +154,10 @@ dirscan(struct inodesc *idesc)
 	struct bufarea *bp;
 	int dsize, n;
 	long blksiz;
-#if UFS_DIRBLKSIZ > APPLEUFS_DIRBLKSIZ
-	char dbuf[UFS_DIRBLKSIZ];
-#else
+#if !defined(NO_APPLE_UFS) && UFS_DIRBLKSIZ < APPLEUFS_DIRBLKSIZ
 	char dbuf[APPLEUFS_DIRBLKSIZ];
+#else
+	char dbuf[UFS_DIRBLKSIZ];
 #endif
 
 	if (idesc->id_type != DATA)
@@ -703,10 +703,10 @@ expanddir(union dinode *dp, char *name)
 	daddr_t lastbn, newblk, dirblk;
 	struct bufarea *bp;
 	char *cp;
-#if DIRBLKSIZ > APPLEUFS_DIRBLKSIZ
-	char firstblk[DIRBLKSIZ];
-#else
+#if !defined(NO_APPLE_UFS) && UFS_DIRBLKSIZ < APPLEUFS_DIRBLKSIZ
 	char firstblk[APPLEUFS_DIRBLKSIZ];
+#else
+	char firstblk[UFS_DIRBLKSIZ];
 #endif
 	struct ufs1_dinode *dp1 = NULL;
 	struct ufs2_dinode *dp2 = NULL;

Index: src/sbin/fsck_ffs/fsck.h
diff -u src/sbin/fsck_ffs/fsck.h:1.49 src/sbin/fsck_ffs/fsck.h:1.50
--- src/sbin/fsck_ffs/fsck.h:1.49	Sun Mar  6 17:08:16 2011
+++ src/sbin/fsck_ffs/fsck.h	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: fsck.h,v 1.49 2011/03/06 17:08:16 bouyer Exp $	*/
+/*	$NetBSD: fsck.h,v 1.50 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -120,7 +120,9 @@ struct bufarea {
 		struct cg *b_cg;		/* cylinder group */
 		struct ufs1_dinode *b_dinode1;	/* UFS1 inode block */
 		struct ufs2_dinode *b_dinode2;	/* UFS2 inode block */
+#ifndef NO_APPLE_UFS
 		struct appleufslabel *b_appleufs;		/* Apple UFS volume label */
+#endif
 	} b_un;
 	char b_dirty;
 };
@@ -142,7 +144,9 @@ struct bufarea bufhead;		/* head of list
 struct bufarea sblk;		/* file system superblock */
 struct bufarea asblk;		/* file system superblock */
 struct bufarea cgblk;		/* cylinder group blocks */
-struct bufarea appleufsblk;		/* Apple UFS volume label */
+#ifndef NO_APPLE_UFS
+struct bufarea appleufsblk;	/* Apple UFS volume label */
+#endif
 struct bufarea *pdirbp;		/* current directory contents */
 struct bufarea *pbp;		/* current inode block */
 
@@ -280,12 +284,7 @@ char	usedsoftdep;		/* just fix soft depe
 int	preen;			/* just fix normal inconsistencies */
 int	quiet;			/* Don't print anything if clean */
 int	forceimage;		/* file system is an image file */
-int	doswap;			/* convert byte order */
-int	needswap;		/* need to convert byte order in memory */
 int	is_ufs2;		/* we're dealing with an UFS2 filesystem */
-int	do_blkswap;		/* need to do block addr byteswap */
-int	do_dirswap;		/* need to do dir entry byteswap */
-int	endian;			/* endian coversion */
 int	markclean;		/* mark file system clean when done */
 char	havesb;			/* superblock has been read */
 char	skipclean;		/* skip clean file systems if preening */
@@ -294,7 +293,33 @@ int	fsreadfd;		/* file descriptor for re
 int	fswritefd;		/* file descriptor for writing file system */
 int	rerun;			/* rerun fsck.  Only used in non-preen mode */
 char	resolved;		/* cleared if unresolved changes => not clean */
+
+#ifndef NO_FFS_EI
+int	endian;			/* endian coversion */
+int	doswap;			/* convert byte order */
+int	needswap;		/* need to convert byte order in memory */
+int	do_blkswap;		/* need to do block addr byteswap */
+int	do_dirswap;		/* need to do dir entry byteswap */
+#else
+/* Disable Endian-Independent FFS support for install media */
+#define	endian			(0)
+#define	doswap			(0)
+#define	needswap 		(0)
+#define	do_blkswap		(0)
+#define	do_dirswap		(0)
+#define	ffs_cg_swap(a, b, c)	do {} while (/*CONSTCOND*/0)
+#define	ffs_csum_swap(a, b, c)	do {} while (/*CONSTCOND*/0)
+#define	ffs_sb_swap(a, b)	do {} while (/*CONSTCOND*/0)
+#define	swap_dinode1(a, b)	do {} while (/*CONSTCOND*/0)
+#define	swap_dinode2(a, b)	do {} while (/*CONSTCOND*/0)
+#endif
+
+#ifndef NO_APPLE_UFS
 int	isappleufs;		/* filesystem is Apple UFS */
+#else
+/* Disable Apple UFS support for install media */
+#define	isappleufs		(0)
+#endif
 
 daddr_t maxfsblock;		/* number of blocks in the file system */
 char	*blockmap;		/* ptr to primary blk allocation map */
@@ -334,6 +359,7 @@ struct	ufs2_dinode ufs2_zino;
 #define	ALTERED	0x08
 #define	FOUND	0x10
 
+#ifndef NO_FFS_EI
 /* some inline functs to help the byte-swapping mess */
 static inline u_int16_t iswap16 (u_int16_t);
 static inline u_int32_t iswap32 (u_int32_t);
@@ -362,3 +388,8 @@ iswap64(u_int64_t x)
 		return bswap64(x);
 	else return x;
 }
+#else
+#define	iswap16(x) (x)
+#define	iswap32(x) (x)
+#define	iswap64(x) (x)
+#endif /* NO_FFS_EI */

Index: src/sbin/fsck_ffs/inode.c
diff -u src/sbin/fsck_ffs/inode.c:1.71 src/sbin/fsck_ffs/inode.c:1.72
--- src/sbin/fsck_ffs/inode.c:1.71	Sat Apr  5 12:32:27 2014
+++ src/sbin/fsck_ffs/inode.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: inode.c,v 1.71 2014/04/05 12:32:27 justin Exp $	*/
+/*	$NetBSD: inode.c,v 1.72 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)inode.c	8.8 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: inode.c,v 1.71 2014/04/05 12:32:27 justin Exp $");
+__RCSID("$NetBSD: inode.c,v 1.72 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -64,8 +64,10 @@ __RCSID("$NetBSD: inode.c,v 1.71 2014/04
 static ino_t startinum;
 
 static int iblock(struct inodesc *, long, u_int64_t);
+#ifndef NO_FFS_EI
 static void swap_dinode1(union dinode *, int);
 static void swap_dinode2(union dinode *, int);
+#endif
 
 int
 ckinode(union dinode *dp, struct inodesc *idesc)
@@ -342,6 +344,7 @@ ginode(ino_t inumber)
 	return ((union dinode *)((caddr_t)pbp->b_un.b_buf + blkoff));
 }
 
+#ifndef NO_FFS_EI
 static void
 swap_dinode1(union dinode *dp, int n)
 {
@@ -385,6 +388,7 @@ swap_dinode2(union dinode *dp, int n)
 		}
 	}
 }
+#endif /* !NO_FFS_EI */
 
 /*
  * Special purpose version of ginode used to optimize first pass

Index: src/sbin/fsck_ffs/main.c
diff -u src/sbin/fsck_ffs/main.c:1.83 src/sbin/fsck_ffs/main.c:1.84
--- src/sbin/fsck_ffs/main.c:1.83	Tue Jun 16 23:58:30 2015
+++ src/sbin/fsck_ffs/main.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.83 2015/06/16 23:58:30 christos Exp $	*/
+/*	$NetBSD: main.c,v 1.84 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
 #if 0
 static char sccsid[] = "@(#)main.c	8.6 (Berkeley) 5/14/95";
 #else
-__RCSID("$NetBSD: main.c,v 1.83 2015/06/16 23:58:30 christos Exp $");
+__RCSID("$NetBSD: main.c,v 1.84 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -96,21 +96,30 @@ main(int argc, char *argv[])
 	skipclean = 1;
 	markclean = 1;
 	forceimage = 0;
+#ifndef NO_FFS_EI
 	endian = 0;
+#endif
+#ifndef NO_APPLE_UFS
 	isappleufs = 0;
+#endif
 	while ((ch = getopt(argc, argv, "aB:b:c:dFfm:npPqUyx:X")) != -1) {
 		switch (ch) {
+#ifndef NO_APPLE_UFS
 		case 'a':
 			isappleufs = 1;
 			break;
+#endif
 
+#ifndef NO_FFS_EI
 		case 'B':
 			if (strcmp(optarg, "be") == 0)
 				endian = BIG_ENDIAN;
 			else if (strcmp(optarg, "le") == 0)
 				endian = LITTLE_ENDIAN;
-			else usage();
+			else
+				usage();
 			break;
+#endif
 
 		case 'b':
 			skipclean = 0;
@@ -511,8 +520,15 @@ usage(void)
 {
 
 	(void) fprintf(stderr,
-	    "usage: %s [-adFfPpqUX] [-B byteorder] [-b block] [-c level] "
-	    "[-m mode]\n"
+	    "usage: %s [-"
+#ifndef NO_APPLE_UFS
+	    "a"
+#endif
+	    "dFfPpqUX] "
+#ifndef NO_FFS_EI
+	    "[-B byteorder] "
+#endif
+	    "[-b block] [-c level] [-m mode]\n"
 	    "\t[-x snap-backup] [-y | -n] filesystem ...\n",
 	    getprogname());
 	exit(FSCK_EXIT_USAGE);

Index: src/sbin/fsck_ffs/pass1.c
diff -u src/sbin/fsck_ffs/pass1.c:1.56 src/sbin/fsck_ffs/pass1.c:1.57
--- src/sbin/fsck_ffs/pass1.c:1.56	Sat Oct 19 01:09:58 2013
+++ src/sbin/fsck_ffs/pass1.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pass1.c,v 1.56 2013/10/19 01:09:58 christos Exp $	*/
+/*	$NetBSD: pass1.c,v 1.57 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)pass1.c	8.6 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: pass1.c,v 1.56 2013/10/19 01:09:58 christos Exp $");
+__RCSID("$NetBSD: pass1.c,v 1.57 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -220,7 +220,9 @@ pass1(void)
 		progress_done();
 #endif /* PROGRESS */
 	freeinodebuf();
+#ifndef NO_FFS_EI
 	do_blkswap = 0; /* has been done */
+#endif
 }
 
 static void

Index: src/sbin/fsck_ffs/pass2.c
diff -u src/sbin/fsck_ffs/pass2.c:1.50 src/sbin/fsck_ffs/pass2.c:1.51
--- src/sbin/fsck_ffs/pass2.c:1.50	Sun Jun  9 17:57:09 2013
+++ src/sbin/fsck_ffs/pass2.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pass2.c,v 1.50 2013/06/09 17:57:09 dholland Exp $	*/
+/*	$NetBSD: pass2.c,v 1.51 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)pass2.c	8.9 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: pass2.c,v 1.50 2013/06/09 17:57:09 dholland Exp $");
+__RCSID("$NetBSD: pass2.c,v 1.51 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -70,7 +70,9 @@ pass2(void)
 	struct inodesc curino;
 	union dinode dino;
 	int i, maxblk;
+#ifndef NO_FFS_EI
 	unsigned ii;
+#endif
 	char pathbuf[MAXPATHLEN + 1];
 
 	rinfo = inoinfo(UFS_ROOTINO);
@@ -223,6 +225,7 @@ pass2(void)
 		(void)ckinode(&dino, &curino);
 	}
 
+#ifndef NO_FFS_EI
 	/*
 	 * Byte swapping in directory entries, if needed, has been done.
 	 * Now rescan dirs for pass2check()
@@ -252,6 +255,7 @@ pass2(void)
 			(void)ckinode(&dino, &curino);
 		}
 	}
+#endif /* !NO_FFS_EI */
 
 	/*
 	 * Now that the parents of all directories have been found,

Index: src/sbin/fsck_ffs/setup.c
diff -u src/sbin/fsck_ffs/setup.c:1.100 src/sbin/fsck_ffs/setup.c:1.101
--- src/sbin/fsck_ffs/setup.c:1.100	Sun Jun 23 07:28:36 2013
+++ src/sbin/fsck_ffs/setup.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: setup.c,v 1.100 2013/06/23 07:28:36 dholland Exp $	*/
+/*	$NetBSD: setup.c,v 1.101 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)setup.c	8.10 (Berkeley) 5/9/95";
 #else
-__RCSID("$NetBSD: setup.c,v 1.100 2013/06/23 07:28:36 dholland Exp $");
+__RCSID("$NetBSD: setup.c,v 1.101 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -70,7 +70,9 @@ __RCSID("$NetBSD: setup.c,v 1.100 2013/0
 static void badsb(int, const char *);
 static int calcsb(const char *, int, struct fs *);
 static int readsb(int);
+#ifndef NO_APPLE_UFS
 static int readappleufs(void);
+#endif
 
 int16_t sblkpostbl[256];
 
@@ -527,19 +529,26 @@ setup(const char *dev, const char *origd
 	else
 		usedsoftdep = 0;
 
+#ifndef NO_APPLE_UFS
 	if (!forceimage && dkw.dkw_parent[0]) 
 		if (strcmp(dkw.dkw_ptype, DKW_PTYPE_APPLEUFS) == 0)
 			isappleufs = 1;
 
 	if (readappleufs())
 		isappleufs = 1;
+#endif
 
-	dirblksiz = UFS_DIRBLKSIZ;
 	if (isappleufs)
 		dirblksiz = APPLEUFS_DIRBLKSIZ;
+	else
+		dirblksiz = UFS_DIRBLKSIZ;
 
 	if (debug)
+#ifndef NO_APPLE_UFS
 		printf("isappleufs = %d, dirblksiz = %d\n", isappleufs, dirblksiz);
+#else
+		printf("dirblksiz = %d\n", dirblksiz);
+#endif
 
 	if (sblock->fs_flags & FS_DOQUOTA2) {
 		/* allocate the quota hash table */
@@ -580,6 +589,7 @@ badsblabel:
 	return (0);
 }
 
+#ifndef NO_APPLE_UFS
 static int
 readappleufs(void)
 {
@@ -684,6 +694,7 @@ readappleufs(void)
 	}
 	return 1;
 }
+#endif /* !NO_APPLE_UFS */
 
 /*
  * Detect byte order. Return 0 if valid magic found, -1 otherwise.
@@ -696,6 +707,7 @@ detect_byteorder(struct fs *fs, int sblo
 		/* Likely to be the first alternate of a fs with 64k blocks */
 		return -1;
 	if (fs->fs_magic == FS_UFS1_MAGIC || fs->fs_magic == FS_UFS2_MAGIC) {
+#ifndef NO_FFS_EI
 		if (endian == 0 || BYTE_ORDER == endian) {
 			needswap = 0;
 			doswap = do_blkswap = do_dirswap = 0;
@@ -703,8 +715,11 @@ detect_byteorder(struct fs *fs, int sblo
 			needswap = 1;
 			doswap = do_blkswap = do_dirswap = 1;
 		}
+#endif
 		return 0;
-	} else if (fs->fs_magic == FS_UFS1_MAGIC_SWAPPED ||
+	}
+#ifndef NO_FFS_EI
+	else if (fs->fs_magic == FS_UFS1_MAGIC_SWAPPED ||
 		   fs->fs_magic == FS_UFS2_MAGIC_SWAPPED) {
 		if (endian == 0 || BYTE_ORDER != endian) {
 			needswap = 1;
@@ -715,6 +730,7 @@ detect_byteorder(struct fs *fs, int sblo
 		}
 		return 0;
 	}
+#endif
 	return -1;
 }
 
@@ -1027,8 +1043,11 @@ calcsb(const char *dev, int devfd, struc
 		pfatal("%s: CANNOT FIGURE OUT FILE SYSTEM PARTITION\n", dev);
 		return (0);
 	}
-	if (strcmp(dkw.dkw_ptype, DKW_PTYPE_FFS) &&
-	    strcmp(dkw.dkw_ptype, DKW_PTYPE_APPLEUFS)) {
+	if (strcmp(dkw.dkw_ptype, DKW_PTYPE_FFS)
+#ifndef NO_APPLE_UFS
+	 && strcmp(dkw.dkw_ptype, DKW_PTYPE_APPLEUFS)
+#endif
+	) {
 		pfatal("%s: NOT LABELED AS A BSD FILE SYSTEM (%s)\n",
 		    dev, dkw.dkw_ptype);
 		return (0);

Index: src/sbin/fsck_ffs/utilities.c
diff -u src/sbin/fsck_ffs/utilities.c:1.64 src/sbin/fsck_ffs/utilities.c:1.65
--- src/sbin/fsck_ffs/utilities.c:1.64	Sat Oct 19 01:09:58 2013
+++ src/sbin/fsck_ffs/utilities.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: utilities.c,v 1.64 2013/10/19 01:09:58 christos Exp $	*/
+/*	$NetBSD: utilities.c,v 1.65 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)utilities.c	8.6 (Berkeley) 5/19/95";
 #else
-__RCSID("$NetBSD: utilities.c,v 1.64 2013/10/19 01:09:58 christos Exp $");
+__RCSID("$NetBSD: utilities.c,v 1.65 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -140,11 +140,13 @@ bufinit(void)
 		errexit("cannot allocate buffer pool");
 	cgblk.b_un.b_buf = bufp;
 	initbarea(&cgblk);
+#ifndef NO_APPLE_UFS
 	bufp = malloc((unsigned int)APPLEUFS_LABEL_SIZE);
 	if (bufp == 0)
 		errexit("cannot allocate buffer pool");
 	appleufsblk.b_un.b_buf = bufp;
 	initbarea(&appleufsblk);
+#endif
 	bufhead.b_next = bufhead.b_prev = &bufhead;
 	bufcnt = MAXBUFSPACE / sblock->fs_bsize;
 	if (bufcnt < MINBUFS)
@@ -287,8 +289,10 @@ ckfini(int noint)
 		sbdirty();
 		flush(fswritefd, &sblk);
 	}
+#ifndef NO_APPLE_UFS
 	flush(fswritefd, &appleufsblk);
 	free(appleufsblk.b_un.b_buf);
+#endif
 	flush(fswritefd, &cgblk);
 	free(cgblk.b_un.b_buf);
 	for (bp = bufhead.b_prev; bp && bp != &bufhead; bp = nbp) {

Index: src/sbin/newfs/Makefile
diff -u src/sbin/newfs/Makefile:1.39 src/sbin/newfs/Makefile:1.40
--- src/sbin/newfs/Makefile:1.39	Fri Aug 10 12:20:11 2012
+++ src/sbin/newfs/Makefile	Wed Feb  8 16:11:40 2017
@@ -1,31 +1,18 @@
-#	$NetBSD: Makefile,v 1.39 2012/08/10 12:20:11 joerg Exp $
+#	$NetBSD: Makefile,v 1.40 2017/02/08 16:11:40 rin Exp $
 #	@(#)Makefile	8.2 (Berkeley) 3/27/94
 
+# when making a change to this file, please check if the change is
+# also needed for src/distrib/utils/x_newfs.
+# such stuff should be into Makefile.common.
+
 .include <bsd.own.mk>
 
-PROG=	newfs
-SRCS=	dkcksum.c newfs.c mkfs.c ffs_bswap.c ffs_appleufs.c partutil.c
-SRCS+=	pathadj.c quota2_subr.c
+SRCS=	ffs_bswap.c ffs_appleufs.c
 MAN=	newfs.8 mount_mfs.8
 
-DISKLABEL=${NETBSDSRCDIR}/sbin/disklabel
-FSCK=${NETBSDSRCDIR}/sbin/fsck
-MOUNT=${NETBSDSRCDIR}/sbin/mount
-CPPFLAGS+=-DMFS -I${.CURDIR} -I${DISKLABEL} -I${FSCK} -I${MOUNT}
-CPPFLAGS+=-DGARBAGE
-
-DPADD+= ${LIBUTIL}
-LDADD+= -lutil
-
-LDADD+=-lprop
-DPADD+=${LIBPROP}
-
-.PATH:	${DISKLABEL} ${NETBSDSRCDIR}/sys/ufs/ffs ${NETBSDSRCDIR}/sys/ufs/ufs
-.PATH:  ${FSCK} ${MOUNT}
-
 LINKS=	${BINDIR}/newfs ${BINDIR}/mount_mfs
 MLINKS=	mount_mfs.8 mfs.8
 
-COPTS.ffs_appleufs.c+=	-Wno-pointer-sign
+.include "Makefile.common"
 
 .include <bsd.prog.mk>

Index: src/sbin/newfs/extern.h
diff -u src/sbin/newfs/extern.h:1.15 src/sbin/newfs/extern.h:1.16
--- src/sbin/newfs/extern.h:1.15	Sun Mar  6 17:08:16 2011
+++ src/sbin/newfs/extern.h	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: extern.h,v 1.15 2011/03/06 17:08:16 bouyer Exp $	*/
+/*	$NetBSD: extern.h,v 1.16 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1997 Christos Zoulas.  All rights reserved.
@@ -52,7 +52,23 @@ extern int	avgfilesize;	/* expected aver
 extern int	avgfpdir;	/* expected number of files per directory */
 extern u_long	memleft;	/* virtual memory available */
 extern caddr_t	membase;	/* start address of memory based filesystem */
+extern int	quotas;		/* filesystem quota to enable */
+
+#ifndef NO_FFS_EI
 extern int	needswap;	/* Filesystem not in native byte order */
+#else
+/* Disable Endian-Independent FFS support for install media */
+#define		needswap		(0)
+#define		ffs_cg_swap(a, b, c)	do {} while (/*CONSTCOND*/0)
+#define		ffs_csum_swap(a, b, c)	do {} while (/*CONSTCOND*/0)
+#define		ffs_dinode1_swap(a, b)	do {} while (/*CONSTCOND*/0)
+#define		ffs_sb_swap(a, b)	do {} while (/*CONSTCOND*/0)
+#endif
+
+#ifndef NO_APPLE_UFS
 extern int	isappleufs; /* Filesystem is Apple UFS */
 extern char	*appleufs_volname;	/* Apple UFS volume name */
-extern int	quotas;		/* filesystem quota to enable */
+#else
+/* Disable Apple UFS support for install media */
+#define		isappleufs		(0)
+#endif

Index: src/sbin/newfs/mkfs.c
diff -u src/sbin/newfs/mkfs.c:1.127 src/sbin/newfs/mkfs.c:1.128
--- src/sbin/newfs/mkfs.c:1.127	Mon Mar  7 15:55:06 2016
+++ src/sbin/newfs/mkfs.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkfs.c,v 1.127 2016/03/07 15:55:06 christos Exp $	*/
+/*	$NetBSD: mkfs.c,v 1.128 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1980, 1989, 1993
@@ -73,7 +73,7 @@
 #if 0
 static char sccsid[] = "@(#)mkfs.c	8.11 (Berkeley) 5/3/95";
 #else
-__RCSID("$NetBSD: mkfs.c,v 1.127 2016/03/07 15:55:06 christos Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.128 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -631,6 +631,7 @@ mkfs(const char *fsys, int fi, int fo,
 		 */
 		zap_old_sblock(EXT2FS_SBOFF);
 
+#ifndef NO_APPLE_UFS
 		if (isappleufs) {
 			struct appleufslabel appleufs;
 			ffs_appleufs_set(&appleufs, appleufs_volname,
@@ -648,6 +649,7 @@ mkfs(const char *fsys, int fi, int fo,
 				    APPLEUFS_LABEL_SIZE, &appleufs);
 			}
 		}
+#endif
 	}
 
 	/*

Index: src/sbin/newfs/newfs.c
diff -u src/sbin/newfs/newfs.c:1.114 src/sbin/newfs/newfs.c:1.115
--- src/sbin/newfs/newfs.c:1.114	Fri Apr  1 05:23:56 2016
+++ src/sbin/newfs/newfs.c	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: newfs.c,v 1.114 2016/04/01 05:23:56 ryo Exp $	*/
+/*	$NetBSD: newfs.c,v 1.115 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1983, 1989, 1993, 1994
@@ -78,7 +78,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
 #if 0
 static char sccsid[] = "@(#)newfs.c	8.13 (Berkeley) 5/1/95";
 #else
-__RCSID("$NetBSD: newfs.c,v 1.114 2016/04/01 05:23:56 ryo Exp $");
+__RCSID("$NetBSD: newfs.c,v 1.115 2017/02/08 16:11:40 rin Exp $");
 #endif
 #endif /* not lint */
 
@@ -225,11 +225,15 @@ int	avgfpdir = AFPDIR;	/* expected numbe
 int	mntflags = 0;		/* flags to be passed to mount */
 u_long	memleft;		/* virtual memory available */
 caddr_t	membase;		/* start address of memory based filesystem */
+#ifndef NO_FFS_EI
 int	needswap;		/* Filesystem not in native byte order */
+#endif
 char	*disktype = NULL;
 int	unlabeled;
+#ifndef NO_APPLE_UFS
 char *appleufs_volname = 0; /* Apple UFS volume name */
 int isappleufs = 0;
+#endif
 int quotas = 0;
 
 char	device[MAXPATHLEN];
@@ -280,18 +284,20 @@ main(int argc, char *argv[])
 	    "B:FGINO:S:T:V:Za:b:d:e:f:g:h:i:l:m:n:o:q:r:s:v:";
 	while ((ch = getopt(argc, argv, opstring)) != -1)
 		switch (ch) {
+#ifndef NO_FFS_EI
 		case 'B':
 			if (strcmp(optarg, "be") == 0) {
-#if BYTE_ORDER == LITTLE_ENDIAN
+# if BYTE_ORDER == LITTLE_ENDIAN
 				needswap = 1;
-#endif
+# endif
 			} else if (strcmp(optarg, "le") == 0) {
-#if BYTE_ORDER == BIG_ENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
 				needswap = 1;
-#endif
+# endif
 			} else
 				usage();
 			break;
+#endif
 		case 'F':
 			Fflag = 1;
 			break;
@@ -413,6 +419,7 @@ main(int argc, char *argv[])
 			/* mfs only */
 			mfsuid = mfs_user(optarg);
 			break;
+#ifndef NO_APPLE_UFS
 		case 'v':
 			appleufs_volname = optarg;
 			if (strchr(appleufs_volname, ':') || strchr(appleufs_volname, '/'))
@@ -421,6 +428,7 @@ main(int argc, char *argv[])
 				errx(1,"Apple UFS volume name cannot be zero length");
 			isappleufs = 1;
 			break;
+#endif
 		case '?':
 		default:
 			usage();
@@ -556,8 +564,10 @@ main(int argc, char *argv[])
 			if (dkw.dkw_size == 0)
 				errx(1, "%s partition is unavailable", special);
 
+#ifndef NO_APPLE_UFS
 			if (strcmp(dkw.dkw_ptype, DKW_PTYPE_APPLEUFS) == 0)
 				isappleufs = 1;
+#endif
 				
 			if (!Iflag) {
 				static const char m[] =
@@ -843,7 +853,9 @@ struct help_strings {
 	int flags;
 	const char *str;
 } const help_strings[] = {
+#ifndef NO_FFS_EI
 	{ NEWFS,	"-B byteorder\tbyte order (`be' or `le')" },
+#endif
 	{ NEWFS,	"-F \t\tcreate file system image in regular file" },
 	{ NEWFS,	"-G \t\tmake sanity calculations non-fatal (testing only!)" },
 	{ NEWFS,	"-I \t\tdo not check that the file system type is '4.2BSD'" },
@@ -874,7 +886,9 @@ struct help_strings {
 	{ MFS_MOUNT,	"-p perm\t\tpermissions (in octal)" },
 	{ BOTH,		"-s fssize\tfile system size (sectors)" },
 	{ MFS_MOUNT,	"-u username\tuser name of mount point" },
+#ifndef NO_APPLE_UFS
 	{ NEWFS,	"-v volname\tApple UFS volume name" },
+#endif
 	{ 0, NULL }
 };
 

Index: src/sys/ufs/ufs/ufs_bswap.h
diff -u src/sys/ufs/ufs/ufs_bswap.h:1.21 src/sys/ufs/ufs/ufs_bswap.h:1.22
--- src/sys/ufs/ufs/ufs_bswap.h:1.21	Fri Apr 29 03:05:04 2016
+++ src/sys/ufs/ufs/ufs_bswap.h	Wed Feb  8 16:11:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_bswap.h,v 1.21 2016/04/29 03:05:04 christos Exp $	*/
+/*	$NetBSD: ufs_bswap.h,v 1.22 2017/02/08 16:11:40 rin Exp $	*/
 
 /*
  * Copyright (c) 1998 Manuel Bouyer.
@@ -45,7 +45,7 @@
 #define	UFS_IPNEEDSWAP(ip)	((void)(ip), 0)
 #endif
 
-#if !defined(_KERNEL) || defined(FFS_EI)
+#if (!defined(_KERNEL) && !defined(NO_FFS_EI)) || defined(FFS_EI)
 /* inlines for access to swapped data */
 static inline u_int16_t
 ufs_rw16(uint16_t a, int ns)

Added files:

Index: src/distrib/utils/x_fsck_ffs/Makefile
diff -u /dev/null src/distrib/utils/x_fsck_ffs/Makefile:1.1
--- /dev/null	Wed Feb  8 16:11:40 2017
+++ src/distrib/utils/x_fsck_ffs/Makefile	Wed Feb  8 16:11:39 2017
@@ -0,0 +1,28 @@
+# $NetBSD: Makefile,v 1.1 2017/02/08 16:11:39 rin Exp $
+# Build a smaller fsck_ffs (i.e. for boot media).
+# Support for Endian-Independent FFS and Apple UFS is dropped unless FFS_EI=1
+# and APPLE_UFS=1 are added to CRUNCHENV, respectively.
+
+NOMAN=		# defined
+
+.include <bsd.own.mk>
+
+SRCDIR=		${.CURDIR}/../../../sbin/fsck_ffs
+
+.ifdef FFS_EI
+SRCS+=		ffs_bswap.c
+.else
+CPPFLAGS+=	-DNO_FFS_EI
+.endif
+
+.ifdef APPLE_UFS
+SRCS+=		ffs_appleufs.c
+.else
+CPPFLAGS+=	-DNO_APPLE_UFS
+.endif
+
+.PATH:		${SRCDIR}
+
+.include "${SRCDIR}/Makefile.common"
+
+.include <bsd.prog.mk>

Index: src/distrib/utils/x_newfs/Makefile
diff -u /dev/null src/distrib/utils/x_newfs/Makefile:1.1
--- /dev/null	Wed Feb  8 16:11:40 2017
+++ src/distrib/utils/x_newfs/Makefile	Wed Feb  8 16:11:40 2017
@@ -0,0 +1,28 @@
+# $NetBSD: Makefile,v 1.1 2017/02/08 16:11:40 rin Exp $
+# Build a smaller newfs (i.e. for boot media).
+# Support for Endian-Independent FFS and Apple UFS is dropped unless FFS_EI=1
+# and APPLE_UFS=1 are added to CRUNCHENV, respectively.
+
+NOMAN=		# defined
+
+.include <bsd.own.mk>
+
+SRCDIR=		${.CURDIR}/../../../sbin/newfs
+
+.ifdef FFS_EI
+SRCS+=		ffs_bswap.c
+.else
+CPPFLAGS+=	-DNO_FFS_EI
+.endif
+
+.ifdef APPLE_UFS
+SRCS+=		ffs_appleufs.c
+.else
+CPPFLAGS+=	-DNO_APPLE_UFS
+.endif
+
+.PATH:		${SRCDIR}
+
+.include "${SRCDIR}/Makefile.common"
+
+.include <bsd.prog.mk>

Index: src/sbin/fsck_ffs/Makefile.common
diff -u /dev/null src/sbin/fsck_ffs/Makefile.common:1.1
--- /dev/null	Wed Feb  8 16:11:40 2017
+++ src/sbin/fsck_ffs/Makefile.common	Wed Feb  8 16:11:40 2017
@@ -0,0 +1,41 @@
+#	$NetBSD: Makefile.common,v 1.1 2017/02/08 16:11:40 rin Exp $
+#	@(#)Makefile	8.2 (Berkeley) 4/27/95
+
+# shared stuff with src/distrib/utils/x_newfs for install media.
+# stuff not required by install media should be into Makefile.
+
+PROG=	fsck_ffs
+SRCS+=	dir.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c pass4.c pass5.c \
+	pass6.c fsutil.c setup.c utilities.c ffs_subr.c ffs_tables.c \
+	partutil.c snapshot.c quota2.c quota2_subr.c
+
+FSCK=	${NETBSDSRCDIR}/sbin/fsck
+DUMP=	${NETBSDSRCDIR}/sbin/dump
+CPPFLAGS+=-I${FSCK} -I${DUMP}
+
+.PATH:	${FSCK}
+.PATH:	${NETBSDSRCDIR}/sys/ufs/ffs ${NETBSDSRCDIR}/sys/ufs/ufs ${FSCK} ${DUMP}
+
+SRCS+= vfs_wapbl.c wapbl.c
+.PATH:	${NETBSDSRCDIR}/sys/kern
+CPPFLAGS+=-DWAPBL_DEBUG_PRINT=0
+
+.ifndef  SMALLPROG
+CPPFLAGS+=-DPROGRESS
+SRCS+=	progress.c
+.endif
+
+LDADD+=-lutil
+DPADD+=${LIBUTIL}
+
+LDADD+=-lprop
+DPADD+=${LIBPROP}
+
+COPTS.ffs_appleufs.c+=	-Wno-pointer-sign
+
+.if ${MACHINE_ARCH} == "m68000"
+COPTS.pass1.c+=	-fno-tree-fre -fno-tree-lrs
+.endif
+.if ${MACHINE_ARCH} == "vax"
+COPTS.pass1.c+=	-O0
+.endif

Index: src/sbin/newfs/Makefile.common
diff -u /dev/null src/sbin/newfs/Makefile.common:1.1
--- /dev/null	Wed Feb  8 16:11:40 2017
+++ src/sbin/newfs/Makefile.common	Wed Feb  8 16:11:40 2017
@@ -0,0 +1,25 @@
+#	$NetBSD: Makefile.common,v 1.1 2017/02/08 16:11:40 rin Exp $
+#	@(#)Makefile	8.2 (Berkeley) 3/27/94
+
+# shared stuff with src/distrib/utils/x_newfs for install media.
+# stuff not required by install media should be into Makefile.
+
+PROG=	newfs
+SRCS+=	dkcksum.c newfs.c mkfs.c partutil.c pathadj.c quota2_subr.c
+
+DISKLABEL=${NETBSDSRCDIR}/sbin/disklabel
+FSCK=${NETBSDSRCDIR}/sbin/fsck
+MOUNT=${NETBSDSRCDIR}/sbin/mount
+CPPFLAGS+=-DMFS -I${.CURDIR} -I${DISKLABEL} -I${FSCK} -I${MOUNT}
+CPPFLAGS+=-DGARBAGE
+
+DPADD+=	${LIBUTIL}
+LDADD+=	-lutil
+
+LDADD+=	-lprop
+DPADD+=	${LIBPROP}
+
+.PATH:	${DISKLABEL} ${NETBSDSRCDIR}/sys/ufs/ffs ${NETBSDSRCDIR}/sys/ufs/ufs
+.PATH:  ${FSCK} ${MOUNT}
+
+COPTS.ffs_appleufs.c+=	-Wno-pointer-sign

Reply via email to