From ff8962446b0a1efc992373636bf917874a039b58 Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Sun, 11 Jan 1998 11:43:36 +0000 Subject: [PATCH] Add an option (-M) to install to disable use of mmap(2). This is kinda handy at the moment with -current's mmap+unlink interactions.. The problems seem worst when using INSTALL="install -C" in /etc/make.conf. This could well come in handy in the future too. --- usr.bin/xinstall/install.1 | 10 +++++++--- usr.bin/xinstall/xinstall.c | 11 +++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/usr.bin/xinstall/install.1 b/usr.bin/xinstall/install.1 index 6d06e4987188..2ebe83ff06cc 100644 --- a/usr.bin/xinstall/install.1 +++ b/usr.bin/xinstall/install.1 @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)install.1 8.1 (Berkeley) 6/6/93 -.\" $Id: install.1,v 1.9 1997/02/22 19:57:54 peter Exp $ +.\" $Id: install.1,v 1.10 1997/08/27 06:29:23 charnier Exp $ .\" .Dd September 22, 1996 .Dt INSTALL 1 @@ -40,14 +40,14 @@ .Nd install binaries .Sh SYNOPSIS .Nm install -.Op Fl CcDps +.Op Fl CcDMps .Op Fl f Ar flags .Op Fl g Ar group .Op Fl m Ar mode .Op Fl o Ar owner .Ar file1 file2 .Nm install -.Op Fl CcDps +.Op Fl CcDMps .Op Fl f Ar flags .Op Fl g Ar group .Op Fl m Ar mode @@ -107,6 +107,9 @@ Specify the target's file flags; see for a list of possible flags and their meanings. .It Fl g Specify a group. A numeric GID is allowed. +.It Fl M +Disable all use of +.Xr mmap 2 . .It Fl m Specify an alternate mode. The default mode is set to rwxr-xr-x (0755). @@ -162,6 +165,7 @@ are created in the target directory. .Xr cp 1 , .Xr mv 1 , .Xr strip 1 , +.Xr mmap 2 , .Xr chown 8 .Sh HISTORY The diff --git a/usr.bin/xinstall/xinstall.c b/usr.bin/xinstall/xinstall.c index 607d7ada316b..a4a1bede01b5 100644 --- a/usr.bin/xinstall/xinstall.c +++ b/usr.bin/xinstall/xinstall.c @@ -42,7 +42,7 @@ static const char copyright[] = static char sccsid[] = "From: @(#)xinstall.c 8.1 (Berkeley) 7/21/93"; #endif static const char rcsid[] = - "$Id: xinstall.c,v 1.27 1997/10/28 14:20:10 ache Exp $"; + "$Id: xinstall.c,v 1.28 1998/01/09 06:05:13 jb Exp $"; #endif /* not lint */ /*- @@ -87,7 +87,7 @@ static const char rcsid[] = #define MAP_FAILED ((caddr_t)-1) /* from */ #endif -int debug, docompare, docopy, dodir, dopreserve, dostrip, verbose; +int debug, docompare, docopy, dodir, dopreserve, dostrip, verbose, nommap; int mode = S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH; char *group, *owner, pathbuf[MAXPATHLEN]; char pathbuf2[MAXPATHLEN]; @@ -136,7 +136,7 @@ main(argc, argv) char *flags, *to_name; iflags = 0; - while ((ch = getopt(argc, argv, "CcdDf:g:m:o:psv")) != -1) + while ((ch = getopt(argc, argv, "CcdDf:g:m:Mo:psv")) != -1) switch((char)ch) { case 'C': docompare = docopy = 1; @@ -165,6 +165,9 @@ main(argc, argv) optarg); mode = getmode(set, 0); break; + case 'M': + nommap = 1; + break; case 'o': owner = optarg; break; @@ -711,7 +714,7 @@ trymmap(fd) { struct statfs stfs; - if (fstatfs(fd, &stfs) < 0) + if (nommap || fstatfs(fd, &stfs) < 0) return 0; /* NetBSD MOUNT_XXX defines are strings, but doesn't have a MOUNT_NONE. */