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