[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
minor wording fixups for "Posix", "Unix", "DOS variants", etc.
From: |
Paul Eggert |
Subject: |
minor wording fixups for "Posix", "Unix", "DOS variants", etc. |
Date: |
Mon, 11 Oct 2004 13:22:40 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
I installed this to standardize terminology a bit in the Autoconf manual.
2004-10-11 Paul Eggert <address@hidden>
* doc/autoconf.texi: Standardize spelling of "Posix" (as opposed
to "POSIX" or "@acronym{POSIX}"), and similarly for "DOS
variants", "Unix", and some related minor wording fixups.
Index: autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.834
retrieving revision 1.835
diff -p -u -r1.834 -r1.835
--- autoconf.texi 28 Sep 2004 17:21:52 -0000 1.834
+++ autoconf.texi 11 Oct 2004 20:21:33 -0000 1.835
@@ -333,9 +333,9 @@ Existing Tests
* Declarations:: Declarations that may be missing
* Structures:: Structures or members that might be missing
* Types:: Types that might be missing
-* Compilers and Preprocessors:: Checking for compiling programs
+* Compilers and Preprocessors:: Checking for compiling programs
* System Services:: Operating system services
-* Unix Variants:: Special kludges for specific Unix variants
+* Posix Variants:: Special kludges for specific Posix variants
Common Behavior
@@ -596,7 +596,7 @@ shouted: ``And the Chaos, where do you t
Autoconf is a tool for producing shell scripts that automatically
configure software source code packages to adapt to many kinds of
-Unix-like systems. The configuration scripts produced by Autoconf
+Posix-like systems. The configuration scripts produced by Autoconf
are independent of Autoconf when they are run, so their users do not
need to have Autoconf.
@@ -607,9 +607,9 @@ presence of each feature that the softwa
(Before each check, they print a one-line message stating what they are
checking for, so the user doesn't get too bored while waiting for the
script to finish.) As a result, they deal well with systems that are
-hybrids or customized from the more common Unix variants. There is
+hybrids or customized from the more common Posix variants. There is
no need to maintain files that list the features supported by each
-release of each variant of Unix.
+release of each variant of Posix.
For each software package that Autoconf is used with, it creates a
configuration script from a template file that lists the system features
@@ -639,7 +639,7 @@ Autoconf imposes some restrictions on th
@code{#if} in C programs (@pxref{Preprocessor Symbol Index}).
Autoconf requires @acronym{GNU} M4 in order to generate the scripts. It uses
-features that some Unix versions of M4, including @acronym{GNU} M4 1.3,
+features that some versions of M4, including @acronym{GNU} M4 1.3,
do not have. You must use version 1.4 or later of @acronym{GNU} M4.
@xref{Autoconf 1}, for information about upgrading from version 1.
@@ -1745,8 +1745,8 @@ other auxiliary files. It checks for @f
name is obsolete because some @code{make} have a rule that creates
@file{install} from it if there is no @file{Makefile}.
-The auxiliary directory should not be named @file{aux} for portability
-to MS-DOS, because the file name @file{aux} is reserved under MS-DOS.
+If you need portability to @acronym{DOS} variants, do not name the
+auxiliary directory @file{aux}. @xref{File System Conventions}.
@end defmac
@defmac AC_REQUIRE_AUX_FILE (@var{file})
@@ -2022,7 +2022,8 @@ AC_CONFIG_FILES([Makefile:boiler/top.mk:
@end example
@noindent
-Doing this allows you to keep your file names acceptable to MS-DOS, or
+Doing this allows you to keep your file names acceptable to
address@hidden variants, or
to prepend and/or append boilerplate to the file.
@end defmac
@@ -2592,7 +2593,8 @@ AC_CONFIG_HEADERS([defines.h:defs.pre:de
@end example
@noindent
-Doing this allows you to keep your file names acceptable to MS-DOS, or
+Doing this allows you to keep your file names acceptable to
address@hidden variants, or
to prepend and/or append boilerplate to the file.
@end defmac
@@ -3078,7 +3080,7 @@ Symbols}, for how to get those symbol de
* Types:: Types that might be missing
* Compilers and Preprocessors:: Checking for compiling programs
* System Services:: Operating system services
-* Unix Variants:: Special kludges for specific Unix variants
+* Posix Variants:: Special kludges for specific Posix variants
@end menu
@node Common Behavior
@@ -3721,11 +3723,11 @@ can be used to insist on address@hidden
@item @code{putenv}
@c @fuindex putenv
@prindex @code{putenv}
-POSIX prefers @code{setenv} to @code{putenv}; among other things,
address@hidden is not required of all POSIX implementations, but
+Posix prefers @code{setenv} to @code{putenv}; among other things,
address@hidden is not required of all Posix implementations, but
@code{setenv} is.
-POSIX specifies that @code{putenv} puts the given string directly in
+Posix specifies that @code{putenv} puts the given string directly in
@code{environ}, but some systems make a copy of it instead (e.g.,
glibc 2.0, or BSD). And when a copy is made, @code{unsetenv} might
not free it, causing a memory leak (e.g., FreeBSD 4).
@@ -3795,7 +3797,7 @@ having format strings read-only can be a
@item @code{strerror_r}
@c @fuindex strerror_r
@prindex @code{strerror_r}
-POSIX specifies that @code{strerror_r} returns an @code{int}, but many
+Posix specifies that @code{strerror_r} returns an @code{int}, but many
systems (e.g., @acronym{GNU} C Library version 2.2.4) provide a
different version returning a @code{char *}. @code{AC_FUNC_STRERROR_R}
can detect which is in use (@pxref{Particular Functions}).
@@ -3829,13 +3831,10 @@ strnlen ("foobar", 9) = 6
@item @code{unlink}
@c @fuindex unlink
@prindex @code{unlink}
-The @acronym{POSIX} spec says that @code{unlink} causes the given file to be
-removed only after there are no more open file handles for it. Not all
-OSes support this behavior though. So even on systems that provide
address@hidden, you cannot portably assume it is OK to call it on files
-that are open. For example, on Windows 9x and ME, such a call would fail;
-on DOS it could even lead to file system corruption, as the file might end
-up being written to after the OS has removed it.
+The Posix spec says that @code{unlink} causes the given file to be
+removed only after there are no more open file handles for it. Some
+non-Posix hosts have trouble with this requirement, though,
+and some @acronym{DOS} variants even corrupt the file system.
@item @code{unsetenv}
@c @fuindex unsetenv
@@ -3974,7 +3973,7 @@ If the @code{error_at_line} function is
@acindex{FUNC_FNMATCH}
@c @fuindex fnmatch
@prindex @code{fnmatch}
-If the @code{fnmatch} function conforms to @acronym{POSIX}, define
+If the @code{fnmatch} function conforms to Posix, define
@code{HAVE_FNMATCH}. Detect common implementation bugs, for example,
the bugs in Solaris 2.4.
@@ -4129,9 +4128,9 @@ libraries, for @sc{irix} 4, PTX, and Uni
@prindex @code{getpgid}
@prindex @code{getpgrp}
Define @code{GETPGRP_VOID} if it is an error to pass 0 to
address@hidden; this is the @acronym{POSIX} behavior. On older BSD
address@hidden; this is the Posix behavior. On older BSD
systems, you must pass 0 to @code{getpgrp}, as it takes an argument and
-behaves like @acronym{POSIX}'s @code{getpgid}.
+behaves like Posix's @code{getpgid}.
@example
#if GETPGRP_VOID
@@ -4232,7 +4231,7 @@ type @code{mbstate_t} are properly decla
If the @code{mktime} function is not available, or does not work
correctly, require an @code{AC_LIBOBJ} replacement for @samp{mktime}.
For the purposes of this test, @code{mktime} should conform to the
address@hidden standard and should be the inverse of
+Posix standard and should be the inverse of
@code{localtime}.
@end defmac
@@ -4289,7 +4288,7 @@ and @code{SELECT_TYPE_ARG5} defaults to
@cvindex SETPGRP_VOID
@c @fuindex setpgrp
@prindex @code{setpgrp}
-If @code{setpgrp} takes no argument (the @acronym{POSIX} version), define
+If @code{setpgrp} takes no argument (the Posix version), define
@code{SETPGRP_VOID}. Otherwise, it is the @acronym{BSD} version, which takes
two process IDs as arguments. This macro does not check whether
@code{setpgrp} exists at all; if you need to work in that situation,
@@ -4359,7 +4358,7 @@ If @code{strerror_r} is available, defin
it is declared, define @code{HAVE_DECL_STRERROR_R}. If it returns a
@code{char *} message, define @code{STRERROR_R_CHAR_P}; otherwise it
returns an @code{int} error number. The Thread-Safe Functions option of
address@hidden requires @code{strerror_r} to return @code{int}, but
+Posix requires @code{strerror_r} to return @code{int}, but
many systems (including, for example, version 2.2.4 of the @acronym{GNU} C
Library) return a @code{char *} value that is not necessarily equal to
the buffer argument.
@@ -4409,7 +4408,7 @@ are also available.)
@c @fuindex fnmatch
@prindex @code{fnmatch}
@hdrindex{fnmatch.h}
-If the @code{fnmatch} function does not conform to @acronym{POSIX} (see
+If the @code{fnmatch} function does not conform to Posix (see
@code{AC_FUNC_FNMATCH}), ask for its @code{AC_LIBOBJ} replacement.
The files @file{fnmatch.c}, @file{fnmatch_loop.c}, and @file{fnmatch_.h}
@@ -4459,7 +4458,7 @@ functions is not found.
Autoconf follows a philosophy that was formed over the years by those
who have struggled for portability: isolate the portability issues in
-specific files, and then program as if you were in a @acronym{POSIX}
+specific files, and then program as if you were in a Posix
environment. Some functions may be missing or unfixable, and your
package must be ready to replace them.
@@ -4859,12 +4858,12 @@ for example, put it in @file{memchr.c} a
@acindex{HEADER_SYS_WAIT}
@cvindex HAVE_SYS_WAIT_H
@hdrindex{sys/wait.h}
-If @file{sys/wait.h} exists and is compatible with @acronym{POSIX}, define
+If @file{sys/wait.h} exists and is compatible with Posix, define
@code{HAVE_SYS_WAIT_H}. Incompatibility can occur if @file{sys/wait.h}
does not exist, or if it uses the old @acronym{BSD} @code{union wait} instead
of @code{int} to store a status value. If @file{sys/wait.h} is not
address@hidden compatible, then instead of including it, define the
address@hidden macros with their usual interpretations. Here is an
+Posix compatible, then instead of including it, define the
+Posix macros with their usual interpretations. Here is an
example:
@example
@@ -4886,11 +4885,11 @@ example:
@cvindex _POSIX_VERSION
@hdrindex{unistd.h}
@code{_POSIX_VERSION} is defined when @file{unistd.h} is included on
address@hidden systems. If there is no @file{unistd.h}, it is definitely
-not a @acronym{POSIX} system. However, some address@hidden systems do
+Posix systems. If there is no @file{unistd.h}, it is definitely
+not a Posix system. However, some non-Posix systems do
have @file{unistd.h}.
-The way to check if the system supports @acronym{POSIX} is:
+The way to check whether the system supports Posix is:
@example
@group
@@ -4900,7 +4899,7 @@ The way to check if the system supports
#endif
#ifdef _POSIX_VERSION
-/* Code for POSIX systems. */
+/* Code for Posix systems. */
#endif
@end group
@end example
@@ -5367,13 +5366,13 @@ implemented. In case of doubt, read the
@ovindex EXEEXT
All the tests for compilers (@code{AC_PROG_CC}, @code{AC_PROG_CXX},
@code{AC_PROG_F77}) define the output variable @code{EXEEXT} based on
-the output of the compiler, typically to the empty string if Unix and
address@hidden if Win32 or OS/2.
+the output of the compiler, typically to the empty string if
+Posix and @samp{.exe} if a @acronym{DOS} variant.
@ovindex OBJEXT
They also define the output variable @code{OBJEXT} based on the
output of the compiler, after @file{.c} files have been excluded, typically
-to @samp{o} if Unix, @samp{obj} if Win32.
+to @samp{o} if Posix, @samp{obj} if a @acronym{DOS} variant.
If the compiler being used does not produce executables, the tests fail. If
the executables can't be run, and cross-compilation is not enabled, they
@@ -5798,7 +5797,7 @@ this is becoming a less prevalent proble
@acindex{PROG_CXX}
@ovindex CXX
@ovindex CXXFLAGS
-Determine a C++ compiler to use. Check if the environment variable
+Determine a C++ compiler to use. Check whether the environment variable
@code{CXX} or @code{CCC} (in that order) is set; if so, then set output
variable @code{CXX} to its value.
@@ -5925,7 +5924,7 @@ set @code{FCFLAGS} to @option{-g} for al
@acindex{PROG_FC_C_O}
@cvindex F77_NO_MINUS_C_MINUS_O
@cvindex FC_NO_MINUS_C_MINUS_O
-Test if the Fortran compiler accepts the options @option{-c} and
+Test whether the Fortran compiler accepts the options @option{-c} and
@option{-o} simultaneously, and define @code{F77_NO_MINUS_C_MINUS_O} or
@code{FC_NO_MINUS_C_MINUS_O}, respectively, if it does not.
@end defmac
@@ -6287,15 +6286,15 @@ If the system supports file names longer
@defmac AC_SYS_POSIX_TERMIOS
@acindex{SYS_POSIX_TERMIOS}
address@hidden POSIX termios headers
address@hidden termios POSIX headers
-Check to see if the POSIX termios headers and functions are available on the
address@hidden Posix termios headers
address@hidden termios Posix headers
+Check to see if the Posix termios headers and functions are available on the
system. If so, set the shell variable @code{ac_cv_sys_posix_termios} to
@samp{yes}. If not, set the variable to @samp{no}.
@end defmac
address@hidden Unix Variants
address@hidden Unix Variants
address@hidden Posix Variants
address@hidden Posix Variants
The following macros check for certain operating systems that need
special treatment for some programs, due to exceptional oddities in
@@ -6321,10 +6320,10 @@ before any macros that run the C compile
@defmac AC_ISC_POSIX
@acindex{ISC_POSIX}
@ovindex LIBS
-For @sc{interactive unix} (@acronym{ISC}), add @option{-lcposix} to output
-variable @code{LIBS} if necessary for @acronym{POSIX} facilities. Call this
-after @code{AC_PROG_CC} and before any other macros that use @acronym{POSIX}
-interfaces. @sc{interactive unix} is no longer sold, and Sun says that
+For @sc{interactive} Systems Corporation Unix, add @option{-lcposix} to output
+variable @code{LIBS} if necessary for Posix facilities. Call this
+after @code{AC_PROG_CC} and before any other macros that use Posix
+interfaces. @sc{interactive} Unix is no longer sold, and Sun says that
they will drop support for it on 2006-07-23, so this macro is becoming
obsolescent.
@end defmac
@@ -6335,7 +6334,7 @@ obsolescent.
@cvindex _POSIX_SOURCE
@cvindex _POSIX_1_SOURCE
If on Minix, define @code{_MINIX} and @code{_POSIX_SOURCE} and define
address@hidden to be 2. This allows the use of @acronym{POSIX}
address@hidden to be 2. This allows the use of Posix
facilities. Should be called before any macros that run the C compiler.
@end defmac
@@ -6500,7 +6499,7 @@ strictness as real programs are written.
avoid ``shortcuts'' and simplifications.
Don't just play with the preprocessor if you want to prepare a
-compilation. For instance, using @command{cpp} to check if a header is
+compilation. For instance, using @command{cpp} to check whether a header is
functional might let your @command{configure} accept a header which will
cause some @emph{compiler} error. Do not hesitate checking header with
other headers included before, especially required headers.
@@ -6932,7 +6931,8 @@ documentation. It may help you addressi
by users.
The @uref{http://bhami.com/rosetta.html, Rosetta Stone for Unix}
-contains a lot of interesting crossed information on various Unix variants.
+contains a lot of interesting crossed information on various
+Posix-conforming systems.
@table @asis
@item Darwin
@@ -6957,7 +6957,7 @@ tree on the UFS).
@c QNX Neutrino.
@acronym{QNX} is a realtime operating system running on Intel architecture
meant to be scalable from the small embedded systems to the hundred
-processor super-computer. It claims to be @acronym{POSIX} certified. More
+processor super-computer. It claims to be Posix certified. More
information is available on the
@uref{http://www.qnx.com/, @acronym{QNX} home page}.
@@ -6983,7 +6983,7 @@ they were not as widely used.
@section Multiple Cases
Some operations are accomplished in several possible ways, depending on
-the Unix variant. Checking for them essentially requires a ``case
+the OS variant. Checking for them essentially requires a ``case
statement''. Autoconf does not directly provide one; however, it is
easy to simulate by using a shell variable to keep track of whether a
way to perform the operation has been found yet.
@@ -8724,7 +8724,7 @@ that unfortunately are not portable in p
@defmac AS_DIRNAME (@var{file-name})
@asindex{DIRNAME}
Return the directory portion of @var{file-name}, using the algorithm
-required by @acronym{POSIX}. @xref{Limitations of Usual Tools}, for more
+required by Posix. @xref{Limitations of Usual Tools}, for more
details about what this returns and why it is more portable than the
@command{dirname} command.
@end defmac
@@ -8743,7 +8743,7 @@ as necessary. This is equivalent to @sa
except that it is portable to older versions of @command{mkdir} that
lack support for the @option{-p} option. Also, @code{AS_MKDIR_P}
succeeds if @var{file-name} is a symbolic link to an existing directory,
-even though @acronym{POSIX} is unclear whether @samp{mkdir -p} should
+even though Posix is unclear whether @samp{mkdir -p} should
succeed in that case.
@end defmac
@@ -8857,7 +8857,7 @@ Declarations of C variables in header fi
@item FUNC
Functions in libraries.
@item GROUP
-Unix group owners of files.
+Posix group owners of files.
@item HEADER
Header files.
@item LIB
@@ -9394,7 +9394,7 @@ There are several families of shells, mo
and the C shell family which are deeply incompatible. If you want to
write portable shell scripts, avoid members of the C shell family. The
@uref{http://www.faqs.org/faqs/unix-faq/shell/shell-differences/, the
-Shell difference FAQ} includes a small history of Unix shells, and a
+Shell difference FAQ} includes a small history of Posix shells, and a
comparison between several of them.
Below we describe some of the members of the Bourne shell family.
@@ -9438,8 +9438,8 @@ Substitutions}, item ``Command Substitut
@cindex Bash
To detect whether you are running Bash, test whether
@code{BASH_VERSION} is set. To require
address@hidden compatibility, run @samp{set -o posix}. @xref{Bash POSIX
-Mode,, Bash @acronym{POSIX} Mode, bash, The @acronym{GNU} Bash Reference
+Posix compatibility, run @samp{set -o posix}. @xref{Bash POSIX
+Mode,, Bash Posix Mode, bash, The @acronym{GNU} Bash Reference
Manual}, for details.
@item Bash 2.05 and later
@@ -9458,7 +9458,7 @@ you'll need to use Bash 2.05 for all oth
@prindex @samp{ksh88}
@prindex @samp{ksh93}
The Korn shell is compatible with the Bourne family and it mostly
-conforms to @acronym{POSIX}. It has two major variants commonly
+conforms to Posix. It has two major variants commonly
called @samp{ksh88} and @samp{ksh93}, named after the years of initial
release. It is usually called @command{ksh}, but is called @command{sh}
on some hosts if you set your path appropriately.
@@ -9469,7 +9469,7 @@ Solaris systems have three variants:
@prindex @command{/usr/bin/ksh} on Solaris
@command{/usr/bin/ksh} is @samp{ksh88},
@prindex @command{/usr/xpg4/bin/sh} on Solaris
address@hidden/usr/xpg4/bin/sh} is a @acronym{POSIX}-compliant variant of
address@hidden/usr/xpg4/bin/sh} is a Posix-compliant variant of
@samp{ksh88}, and
@prindex @command{/usr/dt/bin/dtksh} on Solaris
@command{/usr/dt/bin/dtksh} is @samp{ksh93}. @command{/usr/bin/ksh}
@@ -9482,7 +9482,7 @@ not have it.
Starting with Tru64 Version 4.0, the Korn shell @command{/usr/bin/ksh}
is also available as @command{/usr/bin/posix/sh}. If the environment
variable @env{BIN_SH} is set to @code{xpg4}, subsidiary invocations of
-the standard shell conform to @acronym{POSIX}.
+the standard shell conform to Posix.
@end itemize
@@ -9492,10 +9492,10 @@ A public-domain clone of the Korn shell
available: it has most of the @samp{ksh88} features along with a few of
its own. Similarly to Bash, you can detect whether you are
running @command{pdksh} by testing whether @code{KSH_VERSION} is set,
-and you can require @acronym{POSIX} compatibility by running @samp{set
+and you can require Posix compatibility by running @samp{set
-o posix}. Unfortunately, with @command{pdksh} 5.2.14 (the latest
-stable version as of July 2004) @acronym{POSIX} mode is buggy and causes
address@hidden to depart from @acronym{POSIX} in at least one respect:
+stable version as of July 2004) Posix mode is buggy and causes
address@hidden to depart from Posix in at least one respect:
@example
$ echo "`echo \"hello\"`"
@@ -9512,7 +9512,7 @@ Substitutions}).
@item Zsh
@cindex Zsh
-To detect whether you are running @command{zsh}, test if
+To detect whether you are running @command{zsh}, test whether
@code{ZSH_VERSION} is set. By default @command{zsh} is @emph{not}
compatible with the Bourne shell: you have to run @samp{emulate sh} and
set @code{NULLCMD} to @samp{:}. @xref{Compatibility,, Compatibility,
@@ -9531,10 +9531,10 @@ Russ Allbery:
The @acronym{GNU} assumption that @command{/bin/sh} is the one and only shell
leads to a permanent deadlock. Vendors don't want to break users'
existing shell scripts, and there are some corner cases in the Bourne
-shell that are not completely compatible with a @acronym{POSIX} shell. Thus,
+shell that are not completely compatible with a Posix shell. Thus,
vendors who have taken this route will @emph{never} (address@hidden say
never'') replace the Bourne shell (as @command{/bin/sh}) with a
address@hidden shell.
+Posix shell.
@end quotation
@noindent
@@ -9543,10 +9543,10 @@ Robert Lipe:
@quotation
This is exactly the problem. While most (at least most System V's) do
have a Bourne shell that accepts shell functions most vendor
address@hidden/bin/sh} programs are not the @acronym{POSIX} shell.
address@hidden/bin/sh} programs are not the Posix shell.
So while most modern systems do have a shell @emph{somewhere} that meets the
address@hidden standard, the challenge is to find it.
+Posix standard, the challenge is to find it.
@end quotation
@node Here-Documents
@@ -9703,7 +9703,7 @@ bar}; see @ref{Limitations of Builtins},
@section File System Conventions
@cindex File system conventions
-While @command{autoconf} and friends will usually be run on some Unix
+While @command{autoconf} and friends will usually be run on some Posix
variety, it can and will be used on other systems, most notably @acronym{DOS}
variants. This impacts several assumptions regarding file names.
@@ -9723,7 +9723,7 @@ esac
will fail to properly detect absolute file names on those systems, because
they can use a drivespec, and will usually use a backslash as directory
separator. If you want to be portable to @acronym{DOS} variants (at the
-price of rejecting valid but oddball Unix file names like @file{a:\b}),
+price of rejecting valid but oddball Posix file names like @file{a:\b}),
you can check for absolute file names like this:
@example
@@ -9744,8 +9744,8 @@ use it as path separator. When creating
@code{PATH_SEPARATOR} output variable instead. @command{configure} sets this
to the appropriate value (@samp{:} or @samp{;}) when it starts up.
-File names need extra care as well. While @acronym{DOS}-based environments
-that are Unixy enough to run @command{autoconf} (such as DJGPP) will
+File names need extra care as well. While @acronym{DOS} variants
+that are Posixy enough to run @command{autoconf} (such as DJGPP) will
usually be able to handle long file names properly, there are still
limitations that can seriously break packages. Several of these issues
can be easily detected by the
@@ -9754,8 +9754,9 @@ package.
A short overview follows; problems are marked with @sc{sfn}/@sc{lfn} to
indicate where they apply: @sc{sfn} means the issues are only relevant to
-plain @acronym{DOS}, not to @acronym{DOS} boxes under Windows, while @sc{lfn}
-identifies problems that exist even under Windows.
+plain @acronym{DOS}, not to @acronym{DOS} under Microsoft Windows
+variants, while @sc{lfn} identifies problems that exist even under
+Microsoft Windows variants.
@table @asis
@item No multiple dots (@sc{sfn})
@@ -9763,7 +9764,7 @@ identifies problems that exist even unde
important thing to remember when building a portable configure script,
as @command{autoconf} uses a .in suffix for template files.
-This is perfectly OK on Unix variants:
+This is perfectly OK on Posix variants:
@example
AC_CONFIG_HEADERS([config.h])
@@ -9801,7 +9802,8 @@ That means that @file{foobar-part1.c}, @
(@file{FOOBAR-P.C}). The same goes for @file{foo.bar} and
@file{foo.bartender}.
-Note: This is not usually a problem under Windows, as it uses numeric
+The 8+3 limit is not usually a problem under Microsoft Windows, as it
+uses numeric
tails in the short version of file names to make them unique. However, a
registry setting can turn this behavior off. While this makes it
possible to share file trees containing long file names between @sc{sfn}
@@ -9820,7 +9822,7 @@ Some @acronym{DOS} file names are reserv
try to use files with those names. These names include @file{CON},
@file{AUX}, @file{COM1}, @file{COM2}, @file{COM3}, @file{COM4},
@file{LPT1}, @file{LPT2}, @file{LPT3}, @file{NUL}, and @file{PRN}.
-Remember that file names are case insensitive, so even names like
+File names are case insensitive, so even names like
@file{aux/config.guess} are disallowed.
@end table
@@ -9863,7 +9865,7 @@ strings inside double-quoted back-quoted
@item $@@
@cindex @samp{"$@@"}
One of the most famous shell-portability issues is related to
address@hidden"$@@"}. When there are no positional arguments, @acronym{POSIX}
says
address@hidden"$@@"}. When there are no positional arguments, Posix says
that @samp{"$@@"} is supposed to be equivalent to nothing, but the
original Unix version 7 Bourne shell treated it as equivalent to
@samp{""} instead, and this behavior survives in later implementations
@@ -10177,7 +10179,7 @@ To work around this problem, insert a sp
parentheses. There is a similar problem and workaround with
@samp{$((}; see @ref{Shell Substitutions}.
address@hidden requires support for @code{case} patterns with opening
+Posix requires support for @code{case} patterns with opening
parentheses like this:
@example
@@ -10229,12 +10231,12 @@ fallback value is needed. We list these
@item CDPATH
@evindex CDPATH
When this variable is set it specifies a list of directories to search
-when invoking @code{cd} with a relative file name. @acronym{POSIX}
+when invoking @code{cd} with a relative file name. Posix
1003.1-2001 says that if a nonempty directory name from @code{CDPATH}
is used successfully, @code{cd} prints the resulting absolute
file name. Unfortunately this output can break idioms like
@samp{abs=`cd src && pwd`} because @code{abs} receives the name twice.
-Also, many shells do not conform to this part of @acronym{POSIX}; for
+Also, many shells do not conform to this part of Posix; for
example, @command{zsh} prints the result only if a directory name
other than @file{.} was chosen from @code{CDPATH}.
@@ -10279,7 +10281,7 @@ especially important, as it is used to j
Autoconf-generated scripts normally set all these variables to
@samp{C} because so much configuration code assumes the C locale and
address@hidden requires that locale environment variables be set to
+Posix requires that locale environment variables be set to
@samp{C} if the C locale is desired. However, some older, nonstandard
systems (notably @acronym{SCO}) break if locale environment variables
are set to @samp{C}, so when running on these systems
@@ -10288,7 +10290,7 @@ Autoconf-generated scripts unset the var
@item LANGUAGE
@evindex LANGUAGE
address@hidden is not specified by @acronym{POSIX}, but it is a @acronym{GNU}
address@hidden is not specified by Posix, but it is a @acronym{GNU}
extension that overrides @env{LC_ALL} in some cases, so
Autoconf-generated scripts set it too.
@@ -10306,7 +10308,7 @@ Autoconf-generated scripts set it too.
@evindex LC_TELEPHONE
These locale environment variables are @acronym{GNU} extensions. They
-are treated like their @acronym{POSIX} brethren (@env{LC_COLLATE},
+are treated like their Posix brethren (@env{LC_COLLATE},
etc.)@: as described above.
@item LINENO
@@ -10434,7 +10436,7 @@ PS4='+ '
@item PWD
@evindex PWD
address@hidden 1003.1-2001 requires that @command{cd} and
+Posix 1003.1-2001 requires that @command{cd} and
@command{pwd} must update the @env{PWD} environment variable to point
to the logical name of the current directory, but traditional shells
do not support this. This can cause confusion if one shell instance
@@ -10544,7 +10546,7 @@ bash-2.02$
@noindent
This is extremely unfortunate, since you are likely to use this code to
-handle Unix or @sc{ms-dos} absolute file names. To work around this
+handle Posix or @sc{ms-dos} absolute file names. To work around this
bug, always put the backslash first:
@example
@@ -10575,7 +10577,7 @@ $ @kbd{case foo in (foo) echo foo;; esac
@item @command{cd}
@c ---------------
@prindex @command{cd}
address@hidden 1003.1-2001 requires that @command{cd} must support
+Posix 1003.1-2001 requires that @command{cd} must support
the @option{-L} (``logical'') and @option{-P} (``physical'') options,
with @option{-L} being the default. However, traditional shells do
not support these options, and their @command{cd} command has the
@@ -10583,7 +10585,7 @@ not support these options, and their @co
Portable scripts should assume neither option is supported, and should
assume neither behavior is the default. This can be a bit tricky,
-since the @acronym{POSIX} default behavior means that, for example,
+since the Posix default behavior means that, for example,
@samp{ls ..} and @samp{cd ..} may refer to different directories if
the current logical directory is a symbolic link. It is safe to use
@command{cd @var{dir}} if @var{dir} contains no @file{..} components.
@@ -10797,7 +10799,7 @@ directory name, some of whose components
directory names are in contrast to ``physical'' directory names, whose
components are all directories.
address@hidden 1003.1-2001 requires that @command{pwd} must support
+Posix 1003.1-2001 requires that @command{pwd} must support
the @option{-L} (``logical'') and @option{-P} (``physical'') options,
with @option{-L} being the default. However, traditional shells do
not support these options, and their @command{pwd} command has the
@@ -10805,7 +10807,7 @@ not support these options, and their @co
Portable scripts should assume neither option is supported, and should
assume neither behavior is the default. Also, on many hosts
address@hidden/bin/pwd} is equivalent to @samp{pwd -P}, but @acronym{POSIX}
address@hidden/bin/pwd} is equivalent to @samp{pwd -P}, but Posix
does not require this behavior and portable scripts should not rely on
it.
@@ -10862,7 +10864,7 @@ RISC/OS} 4.52 refuses to do it.
@item @command{source}
@c -------------------
@prindex @command{source}
-This command is not portable, as @acronym{POSIX} does not require it; use
+This command is not portable, as Posix does not require it; use
@command{.} instead.
@@ -10878,7 +10880,7 @@ If you need to make multiple checks usin
the shell operators @samp{&&} and @samp{||} instead of using the
@code{test} operators @option{-a} and @option{-o}. On System V, the
precedence of @option{-a} and @option{-o} is wrong relative to the unary
-operators; consequently, @acronym{POSIX} does not specify them, so using them
+operators; consequently, Posix does not specify them, so using them
is nonportable. If you combine @samp{&&} and @samp{||} in the same
statement, keep in mind that they have equal precedence.
@@ -10896,7 +10898,7 @@ whether some arbitrary file exists. To
have it. Do not use @samp{test -e} either, because Solaris 2.5 does not
have it. To test for symbolic links on systems that have them, use
@samp{test -h} rather than @samp{test -L}; either form conforms to
address@hidden 1003.1-2001, but older shells like Solaris 8
+Posix 1003.1-2001, but older shells like Solaris 8
@code{/bin/sh} support only @option{-h}.
@item @command{test} (strings)
@@ -10946,7 +10948,7 @@ esac
@end example
Alas, negated character classes are probably not portable, although no
-shell is known to not support the @acronym{POSIX} syntax @address@hidden
+shell is known to not support the Posix syntax @address@hidden
(when in interactive mode, @command{zsh} is confused by the
@address@hidden syntax and looks for an event in its history because of
@samp{!}). Many shells do not support the alternative syntax
@@ -10979,7 +10981,7 @@ It is safe to trap at least the signals
trap 0, i.e., have the @command{trap} run when the script ends (either via an
explicit @command{exit}, or the end of the script).
-Although @acronym{POSIX} is not absolutely clear on this point, it is widely
+Although Posix is not absolutely clear on this point, it is widely
admitted that when entering the trap @samp{$?} should be set to the exit
status of the last command run before the trap. The ambiguity can be
summarized as: ``when the trap is launched by an @command{exit}, what is
@@ -11135,7 +11137,7 @@ non-printing characters, @emph{seems} po
The command @samp{cc -c foo.c} traditionally produces an object file
named @file{foo.o}. Most compilers allow @option{-c} to be combined
with @option{-o} to specify a different object file name, but
address@hidden does not require this combination and a few compilers
+Posix does not require this combination and a few compilers
lack support for it. @xref{C Compiler}, for how @acronym{GNU} Make
tests for this feature with @code{AC_PROG_CC_C_O}.
@@ -11149,7 +11151,7 @@ nothing.
The default executable, produced by @samp{cc foo.c}, can be
@itemize
address@hidden @file{a.out} --- usual Unix convention.
address@hidden @file{a.out} --- usual Posix convention.
@item @file{b.out} --- i960 compilers (including @command{gcc}).
@item @file{a.exe} --- DJGPP port of @command{gcc}.
@item @file{a_out.exe} --- GNV @command{cc} wrapper for DEC C on OpenVMS.
@@ -11157,8 +11159,8 @@ The default executable, produced by @sam
@end itemize
The C compiler's traditional name is @command{cc}, but other names like
address@hidden are common. @acronym{POSIX} 1003.1-2001 specifies the
-name @command{c99}, but older @acronym{POSIX} editions specified
address@hidden are common. Posix 1003.1-2001 specifies the
+name @command{c99}, but older Posix editions specified
@command{c89} and anyway these standard names are rarely used in
practice. Typically the C compiler is invoked from makefiles that use
@samp{$(CC)}, so the value of the @samp{CC} make variable selects the
@@ -11172,8 +11174,8 @@ Avoid usages like @samp{chmod -w file};
instead, for two reasons. First, plain @samp{-w} does not necessarily
make the file unwriteable, since it does not affect mode bits that
correspond to bits in the file mode creation mask. Second,
address@hidden says that the @samp{-w} might be interpreted as an
-implementation-specific option, not as a mode; @acronym{POSIX} suggests
+Posix says that the @samp{-w} might be interpreted as an
+implementation-specific option, not as a mode; Posix suggests
using @samp{chmod -- -w file} to avoid this confusion, but unfortunately
@samp{--} does not work on some older hosts.
@@ -11280,31 +11282,29 @@ dir=`AS_DIRNAME(["$file"])` # This is mo
@noindent
This handles a few subtleties in the standard way required by
address@hidden For example, under UN*X, should @samp{dirname //1} give
+Posix. For example, under UN*X, should @samp{dirname //1} give
@samp{/}? Paul Eggert answers:
@quotation
No, under some older flavors of Unix, leading @samp{//} is a special
file name: it refers to a ``super-root'' and is used to access other
machines' files. Leading @samp{///}, @samp{////}, etc.@: are equivalent
-to @samp{/}; but leading @samp{//} is special. I think this tradition
-started with Apollo Domain/OS, an OS that is still in use on some older
-hosts.
+to @samp{/}; but leading @samp{//} is special. This tradition
+started with Apollo Domain/OS, though it has largely died out in practice.
address@hidden allows but does not require the special treatment for
+Posix allows but does not require the special treatment for
@samp{//}. It says that the behavior of @command{dirname} on file names of the
form @samp{//([^/]+/*)?} is implementation defined. In these cases,
address@hidden @command{dirname} returns @samp{/}, but it's more
-portable to return @samp{//} as this works even on those older flavors
-of Unix.
address@hidden @command{dirname} returns @samp{/}, but those no-longer-used
+flavors of Unix returned @samp{//}.
@end quotation
@item @command{egrep}
@c ------------------
@prindex @command{egrep}
address@hidden 1003.1-2001 no longer requires @command{egrep},
-but many older hosts do not yet support the @acronym{POSIX}
+Posix 1003.1-2001 no longer requires @command{egrep},
+but many older hosts do not yet support the Posix
replacement @code{grep -E}. Also, some traditional implementations do
not work on long input lines. To work around these problems, invoke
@code{AC_PROG_EGREP} and then use @code{$EGREP}.
@@ -11335,7 +11335,7 @@ Don't use @code{length}, @code{substr},
@item @command{expr} (@samp{|})
@prindex @command{expr} (@samp{|})
-You can use @samp{|}. Although @acronym{POSIX} does require that @samp{expr
+You can use @samp{|}. Although Posix does require that @samp{expr
''} return the empty string, it does not specify the result when you
@samp{|} together the empty string (or zero) with the empty string. For
example:
@@ -11344,10 +11344,10 @@ example:
expr '' \| ''
@end example
address@hidden/Linux and @acronym{POSIX}.2-1992 return the empty string
address@hidden/Linux and Posix 1003.2-1992 return the empty string
for this case, but traditional Unix returns @samp{0} (Solaris is
-one such example). In @acronym{POSIX}.1-2001, the specification has
-been changed to match traditional Unix's behavior (which is
+one such example). In Posix 1003.1-2001, the specification was
+changed to match traditional Unix's behavior (which is
bizarre, but it's too late to fix this). Please note that the same
problem does arise when the empty string results from a computation,
as in:
@@ -11366,7 +11366,7 @@ Avoid this portability problem by avoidi
Don't use @samp{\?}, @samp{\+} and @samp{\|} in patterns, as they are
not supported on Solaris.
-The @acronym{POSIX} standard is ambiguous as to whether
+The Posix standard is ambiguous as to whether
@samp{expr 'a' : '\(b\)'} outputs @samp{0} or the empty string.
In practice, it outputs the empty string on most platforms, but portable
scripts should not assume this. For instance, the @acronym{QNX} 4.25 native
@@ -11425,8 +11425,8 @@ set to @command{expr} or to @command{fal
@item @command{fgrep}
@c ------------------
@prindex @command{fgrep}
address@hidden 1003.1-2001 no longer requires @command{fgrep},
-but many older hosts do not yet support the @acronym{POSIX}
+Posix 1003.1-2001 no longer requires @command{fgrep},
+but many older hosts do not yet support the Posix
replacement @code{grep -F}. Also, some traditional implementations do
not work on long input lines. To work around these problems, invoke
@code{AC_PROG_FGREP} and then use @code{$FGREP}.
@@ -11483,7 +11483,7 @@ are not available on old systems; use @s
For versions of the DJGPP before 2.04, @command{ln} emulates soft links
to executables by generating a stub that in turn calls the real
program. This feature also works with nonexistent files like in the
-Unix spec. So @samp{ln -s file link} will generate @file{link.exe},
+Posix spec. So @samp{ln -s file link} will generate @file{link.exe},
which will attempt to call @file{file.exe} if run. But this feature only
works for executables, so @samp{cp -p} is used instead for these
systems. DJGPP versions 2.04 and later have full symlink support.
@@ -11531,7 +11531,7 @@ None of @command{mkdir}'s options are po
@samp{mkdir -p @var{file-name}}, you should use use
@code{AS_MKDIR_P(@var{file-name})} (@pxref{Programming in M4sh}).
address@hidden does not clearly specify whether @samp{mkdir -p foo}
+Posix does not clearly specify whether @samp{mkdir -p foo}
should succeed when @file{foo} is a symbolic link to an already-existing
directory. GNU Coreutils 5.1.0 @command{mkdir} succeeds, but Solaris 9
@command{mkdir} fails.
@@ -11580,7 +11580,7 @@ foo
@end example
@noindent
-This behavior conforms to @acronym{POSIX}:
+This behavior conforms to Posix:
@quotation
If the duplication of the file characteristics fails for any reason, mv
@@ -11592,7 +11592,7 @@ Moving directories across mount points i
and @command{rm}.
Moving/Deleting open files isn't portable. The following can't be done
-on DOS/WIN32:
+on @acronym{DOS} variants:
@example
exec > foo
@@ -11611,7 +11611,7 @@ rm -f foo
@c ----------------
@prindex @command{sed}
Patterns should not include the separator (unless escaped), even as part
-of a character class. In conformance with @acronym{POSIX}, the Cray
+of a character class. In conformance with Posix, the Cray
@command{sed} will reject @samp{s/[^/]*$//}: use @samp{s,[^/]*$,,}.
Sed scripts should not use branch labels longer than 8 characters and
@@ -11628,7 +11628,7 @@ sed: 1: "s/x/x/;;s/x/x/": invalid comman
Input should have reasonably long lines, since some @command{sed} have
an input buffer limited to 4000 bytes.
-Alternation, @samp{\|}, is common but @acronym{POSIX} does not require its
+Alternation, @samp{\|}, is common but Posix does not require its
support, so it should be avoided in portable scripts. Solaris 8
@command{sed} does not support alternation; e.g., @samp{sed '/a\|b/d'}
deletes only lines that contain the literal string @samp{a|b}.
@@ -11658,12 +11658,12 @@ sed @var{instruction-1};@var{instruction
Contrary to yet another urban legend, you may portably use @samp{&} in
the replacement part of the @code{s} command to mean ``what was
-matched''. All descendants of Bell Lab's Unix version 7 @command{sed}
+matched''. All descendants of Unix version 7 @command{sed}
(at least; we
don't have first hand experience with older @command{sed}s) have
supported it.
address@hidden requires that you must not have any white space between
+Posix requires that you must not have any white space between
@samp{!} and the following command. It is OK to have blanks between
the address and the @samp{!}. For instance, on Solaris 8:
@@ -11782,20 +11782,20 @@ are executed by the shell, all its weakn
@table @asis
@item @code{$<}
address@hidden says that the @samp{$<} construct in makefiles can be
+Posix says that the @samp{$<} construct in makefiles can be
used only in inference rules and in the @samp{.DEFAULT} rule; its
meaning in ordinary rules is unspecified. Solaris 8's @command{make}
for instance will replace it with the empty string. OpenBSD (3.0 and
later) @command{make} will diagnose these uses and error out.
@item Command execution
-Since 1992 @acronym{POSIX} has required that @command{make} must invoke
+Since 1992 Posix has required that @command{make} must invoke
each command with the equivalent of a @samp{sh -c} subshell. However,
many @command{make} implementations, including BSD make through 2004,
use @samp{sh -e -c} instead, and the @option{-e} option causes the
subshell to exit immediately if a subsidiary simple-command fails. For
example, the command @samp{touch T; rm -f U} will always attempt to
-remove @file{U} with @acronym{POSIX} make, but incompatible
+remove @file{U} with Posix make, but incompatible
@command{make} implementations skip the @command{rm} if the
@command{touch} fails. One way to work around this is to reword the
affected simple-commands so that they always succeed, e.g., @samp{touch
@@ -11845,7 +11845,7 @@ line.
@item Escaped newline in comments
-According to @acronym{POSIX}, @file{Makefile} comments start with @code{#}
+According to Posix, @file{Makefile} comments start with @code{#}
and continue until an unescaped newline is reached.
@example
@@ -11961,7 +11961,7 @@ you do that.
@cindex @code{SHELL} and @command{make}
@cindex @command{make} and @code{SHELL}
address@hidden @command{make}s internally use the @code{$(SHELL)}
+Posix-compliant @command{make}s internally use the @code{$(SHELL)}
macro to spawn shell processes and execute @file{Makefile} rules. This
is a builtin macro supplied by @command{make}, but it can be modified
from the @file{Makefile} or a command-line argument.
@@ -11983,7 +11983,7 @@ on top of DOS's @command{command.com}.
incomplete; for instance it does not handle command substitutions.
On DJGPP @code{SHELL} should point the port of Bash.
address@hidden @command{make}s should never acquire the value of
+Posix-compliant @command{make}s should never acquire the value of
$(SHELL) from the environment, even when @code{make -e} is used
(otherwise, think about what would happen to your rules if
@code{SHELL=/bin/tcsh}).
@@ -12073,7 +12073,7 @@ exit status: 0
@item @code{VPATH}
@cindex @code{VPATH}
-There is no @code{VPATH} support specified in @acronym{POSIX}. Many
+There is no @code{VPATH} support specified in Posix. Many
@command{make}s have a form of @code{VPATH} support, but its
implementation is not consistent amongst @command{make}s.
@@ -12770,24 +12770,6 @@ case $host in
esac
@end example
-Another example is file names made to vary according to system
-conventions. On Unix-like systems ``dot'' files are usual but on DOS
-systems @file{ini} files are usual. It may be worth allowing the user
-to override such things though, if it's a matter of personal preference,
-or in case a new DOS-like system comes along.
-
address@hidden
-case $host in
- *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
- MUMBLE_INIT="mumble.ini"
- ;;
- *)
- MUMBLE_INIT=".mumbleinit"
- ;;
-esac
-AC_SUBST(MUMBLE_INIT)
address@hidden example
-
The host system type can also be used to find cross-compilation tools
with @code{AC_CHECK_TOOL} (@pxref{Generic Programs}).
@@ -13827,7 +13809,7 @@ now it is just @code{AC_FUNC_GETMNTENT}.
@ovindex EXEEXT
Defined the output variable @code{EXEEXT} based on the output of the
compiler, which is now done automatically. Typically set to empty
-string if Unix and @samp{.exe} if Win32 or OS/2.
+string if Posix and @samp{.exe} if a @acronym{DOS} variant.
@end defmac
@defmac AC_EMXOS2
@@ -13864,8 +13846,7 @@ If @code{wait3} is found and fills in th
@code{HAVE_WAIT3}.
These days portable programs should use @code{waitpid}, not
address@hidden, as @code{wait3} is being removed from the Open Group
-standards, and will not appear in the next revision of address@hidden
address@hidden, as @code{wait3} has been removed from Posix.
@end defmac
@defmac AC_GCC_TRADITIONAL
@@ -14076,7 +14057,8 @@ environment and sets @code{MINGW32}.
@ovindex OBJEXT
Defined the output variable @code{OBJEXT} based on the output of the
compiler, after .c files have been excluded. Typically set to @samp{o}
-if Unix, @samp{obj} if Win32. Now the compiler checking macros handle
+if Posix, @samp{obj} if a @acronym{DOS} variant.
+Now the compiler checking macros handle
this automatically.
@end defmac
@@ -14223,7 +14205,7 @@ removed because of limited usefulness
@acindex{SCO_INTL}
@ovindex LIBS
If on SCO Unix, add @option{-lintl} to output variable @code{LIBS}. This
-macro used to
+macro used to do this:
@example
AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS")
@@ -14288,9 +14270,9 @@ Now it just calls @code{AC_FUNC_STRFTIME
@cvindex HAVE_RESTARTABLE_SYSCALLS
If the system automatically restarts a system call that is interrupted
by a signal, define @code{HAVE_RESTARTABLE_SYSCALLS}. This macro does
-not check if system calls are restarted in general--it tests whether a
+not check whether system calls are restarted in general---it checks whether a
signal handler installed with @code{signal} (but not @code{sigaction})
-causes system calls to be restarted. It does not test if system calls
+causes system calls to be restarted. It does not check whether system calls
can be restarted when interrupted by signals that have no handler.
These days portable programs should use @code{sigaction} with
@@ -15095,7 +15077,7 @@ It is paradoxical that portable projects
to run their test suite. Autoconf by itself is the paragon of this
problem: although it aims at perfectly portability, up to 2.13, its
test suite was using address@hidden, a rich and complex testing
-framework, but which is far from being standard on Unix systems.
+framework, but which is far from being standard on Posix systems.
Worse yet, it was likely to be missing on the most fragile platforms,
the very platforms that are most likely to torture Autoconf and
exhibit deficiencies.
@@ -15258,7 +15240,7 @@ need, but therefore most of the time it
@table @asis
@item command line arguments
@c akim s/to consist in/to consist of/
-A very bad Unix habit which is unfortunately widespread consists of
+A very bad Posix habit which is unfortunately widespread consists of
setting environment variables before the command, such as in
@samp{CC=my-home-grown-cc ./testsuite}. This results in the test suite
not knowing this change, hence (i) it can't report it to you, and (ii)
- minor wording fixups for "Posix", "Unix", "DOS variants", etc.,
Paul Eggert <=