This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Clean up glibc manual references to "GNU system" (bug 6911)
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: libc-alpha at sourceware dot org
- Cc: sandra at codesourcery dot com, rmh at gnu dot org
- Date: Fri, 17 Feb 2012 21:54:17 +0000 (UTC)
- Subject: Clean up glibc manual references to "GNU system" (bug 6911)
glibc bug 6911 reports a problem with the manual referring to how
something is on the GNU system, which is ambiguous between Linux-based
GNU systems and Hurd-based GNU systems.
The most appropriate fix seems to me to be to say "GNU/Hurd system"
when something is specific to that system and leave "GNU system" for
something generic to all GNU systems. This patch does this as best as
I could work out for each case. Comments?
Notes on issues seen and not fixed (that I'll fix separately or file
separate bugs for in due course):
* filesys.texi documents the types used for typedefs such as ino64_t
and dev_t in ways that may be true for the GNU/Hurd system as a
consequence of it being 32-bit only, but are not true for 64-bit
GNU/Linux systems. I did not change these since I think the right
fix would be to stop documenting the particular types these typedefs
have on particular systems; programs should avoid relying on that
information. Similarly, the discussion of possible types of size_t
in lang.texi says unsigned int and unsigned long int are equivalent
on the GNU system (only true for 32-bit); more rework is needed to
be clear that they are only conditionally equivalent (and
redeclaring a system function yourself is not now an important case
where the difference matters; C++ name mangling may be more
significant).
* job.texi says "The GNU system does support job control, but if you
are using the GNU library on some other system, that system may not
support job control itself.". True for both GNU/Hurd and GNU/Linux
so "GNU system" is correct - but the GNU C library is not usable on
other systems, so the rest of the sentence is irrelevant. In
general the portability information in the manual needs reworking to
reflect:
- When glibc is used, it's always on some form of GNU system, more
or less by definition, whether GNU/Linux, GNU/Hurd, GNU/kFreeBSD
or some other variant. Information about what APIs will work how
on other systems is relevant to people interested in portability
of their programs to non-glibc systems - but those other systems
won't be running glibc.
- The systems that were portability targets originally, described as
"System V" and "BSD" and "Unix", are largely only historically
relevant now; portability information should be for current
Unix-like operating systems.
- Portability to pre-ISO C is also not relevant now.
- If and when the GNU/kFreeBSD support is submitted, that should
include the results of checking all references to "GNU system",
"GNU operating system", "GNU/Hurd system" etc. to see whether they
apply to GNU/kFreeBSD or not.
* llio.texi says:
On some systems, reading a large amount of data from a character special
file can also fail with @code{EAGAIN} if the kernel cannot find enough
physical memory to lock down the user's pages. This is limited to
devices that transfer with direct memory access into the user's memory,
which means it does not include terminals, since they always use
separate buffers inside the kernel. This problem never happens in the
GNU system.
Does someone know if this "never happens" is specific to GNU/Hurd,
or if it also applies to GNU/Linux?
* llio.texi says of off_t "In the GNU system, this is equivalent to
@code{fpos_t} or @code{long int}." - but fpos_t is a structure.
* llio.texi describes an interface fclean. There appears to be no
implementation of this function in glibc for any system, only the
documentation.
* Various sets of bits in terminal.texi are described as specific to
BSD and GNU and actually appear to have some bits available in
Linux, some not (those are marked as BSD and GNU/Hurd after this
patch as that seems the safer option).
2012-02-17 Joseph Myers <joseph@codesourcery.com>
[BZ #6911]
* manual/conf.texi (FILENAME_MAX): Refer specifically to GNU/Hurd
instead of just the GNU system.
* manual/errno.texi (errno): Update example of errno macro
expansion on GNU system.
(EFAULT): Refer specifically to GNU/Hurd instead of just the GNU
system.
(ENFILE): Likewise.
(ETXTBSY): Likewise.
(EREMOTE): Likewise.
(ENOLCK): Likewise.
(EBACKGROUND): Likewise.
(EDIED): Likewise.
* manual/filesys.texi (getwd): Likewise.
(ENFILE): Likewise.
(umask): Likewise.
* manual/io.texi (ENAMETOOLONG): Likewise.
(File Name Portability): Likewise.
* manual/llio.texi (ENFILE): Likewise.
(File Access Modes): Likewise.
(O_NOCTTY): Likewise.
(O_IGNORE_CTTY, O_NOLINK, O_NOTRANS): Likewise.
* manual/maint.texi (mach): Likewise.
* manual/process.texi (execlp): Likewise.
* manual/resource.texi (getrusage): Likewise.
* manual/signal.texi (Delivery of a Signal): Likewise.
(SIGTTOU): Likewise.
(SIGLOST): Likewise.
(SIGINFO): Likewise.
* manual/terminal.texi (TCSASOFT): Likewise.
(CCTS_OFLOW, CRTS_IFLOW, MDMBUF, CIGNORE): Likewise.
(ALTWERASE, FLUSHO, NOKERNINFO, PENDIN): Likewise.
(DSUSP): Likewise.
(Other Special): Likewise.
diff --git a/manual/conf.texi b/manual/conf.texi
index 605e305..fddb718 100644
--- a/manual/conf.texi
+++ b/manual/conf.texi
@@ -1190,7 +1190,7 @@ represents the maximum length of a file name string. It is defined in
Unlike @code{PATH_MAX}, this macro is defined even if there is no actual
limit imposed. In such a case, its value is typically a very large
-number. @strong{This is always the case on the GNU system.}
+number. @strong{This is always the case on the GNU/Hurd system.}
@strong{Usage Note:} Don't use @code{FILENAME_MAX} as the size of an
array in which to store a file name! You can't possibly make an array
diff --git a/manual/errno.texi b/manual/errno.texi
index 70ce277..d9f74cb 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -66,7 +66,7 @@ function returns an error.
@strong{Portability Note:} @w{ISO C} specifies @code{errno} as a
``modifiable lvalue'' rather than as a variable, permitting it to be
implemented as a macro. For example, its expansion might involve a
-function call, like @w{@code{*_errno ()}}. In fact, that is what it is
+function call, like @w{@code{*__errno_location ()}}. In fact, that is what it is
on the GNU system itself. The GNU library, on non-GNU systems, does
whatever is right for the particular system.
@@ -96,10 +96,10 @@ codes of their own for other situations. The only values that are
guaranteed to be meaningful for a particular library function are the
ones that this manual lists for that function.
-On non-GNU systems, almost any system call can return @code{EFAULT} if
+On non-GNU/Hurd systems, almost any system call can return @code{EFAULT} if
it is given an invalid pointer as an argument. Since this could only
happen as a result of a bug in your program, and since it will not
-happen on the GNU system, we have saved space by not mentioning
+happen on the GNU/Hurd system, we have saved space by not mentioning
@code{EFAULT} in the descriptions of individual functions.
In some Unix systems, many system calls can also return @code{EFAULT} if
@@ -179,7 +179,7 @@ computer.
Argument list too long; used when the arguments passed to a new program
being executed with one of the @code{exec} functions (@pxref{Executing a
File}) occupy too much memory space. This condition never arises in the
-GNU system.
+GNU/Hurd system.
@end deftypevr
@comment errno.h
@@ -238,7 +238,7 @@ Permission denied; the file permissions do not allow the attempted operation.
@deftypevr Macro int EFAULT
@comment errno 14 @c DO NOT REMOVE
Bad address; an invalid pointer was detected.
-In the GNU system, this error never happens; you get a signal instead.
+In the GNU/Hurd system, this error never happens; you get a signal instead.
@end deftypevr
@comment errno.h
@@ -326,7 +326,7 @@ want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
@comment errno 23 @c DO NOT REMOVE
There are too many distinct file openings in the entire system. Note
that any number of linked channels count as just one file opening; see
-@ref{Linked Channels}. This error never occurs in the GNU system.
+@ref{Linked Channels}. This error never occurs in the GNU/Hurd system.
@end deftypevr
@comment errno.h
@@ -345,7 +345,7 @@ An attempt to execute a file that is currently open for writing, or
write to a file that is currently being executed. Often using a
debugger to run a program is considered having it open for writing and
will cause this error. (The name stands for ``text file busy''.) This
-is not an error in the GNU system; the text is copied as necessary.
+is not an error in the GNU/Hurd system; the text is copied as necessary.
@end deftypevr
@comment errno.h
@@ -533,7 +533,7 @@ The socket type is not supported.
@comment errno 45 @c DO NOT REMOVE
The operation you requested is not supported. Some socket functions
don't make sense for all types of sockets, and others may not be
-implemented for all communications protocols. In the GNU system, this
+implemented for all communications protocols. In the GNU/Hurd system, this
error can happen for many calls when the object does not support the
particular operation; it is a generic indication that the server knows
nothing to do for that call.
@@ -754,7 +754,7 @@ the NFS file system on the local host.
An attempt was made to NFS-mount a remote file system with a file name that
already specifies an NFS-mounted file.
(This is an error on some operating systems, but we expect it to work
-properly on the GNU system, making this error code impossible.)
+properly on the GNU/Hurd system, making this error code impossible.)
@end deftypevr
@comment errno.h
@@ -797,7 +797,7 @@ properly on the GNU system, making this error code impossible.)
@deftypevr Macro int ENOLCK
@comment errno 77 @c DO NOT REMOVE
No locks available. This is used by the file locking facilities; see
-@ref{File Locks}. This error is never generated by the GNU system, but
+@ref{File Locks}. This error is never generated by the GNU/Hurd system, but
it can result from an operation to an NFS server running another
operating system.
@end deftypevr
@@ -868,7 +868,7 @@ or an incomplete sequence of bytes or the given wide character is invalid.
@comment GNU: Inappropriate operation for background process
@deftypevr Macro int EBACKGROUND
@comment errno 100 @c DO NOT REMOVE
-In the GNU system, servers supporting the @code{term} protocol return
+In the GNU/Hurd system, servers supporting the @code{term} protocol return
this error for certain operations when the caller is not in the
foreground process group of the terminal. Users do not usually see this
error because functions such as @code{read} and @code{write} translate
@@ -880,7 +880,7 @@ for information on process groups and these signals.
@comment GNU: Translator died
@deftypevr Macro int EDIED
@comment errno 101 @c DO NOT REMOVE
-In the GNU system, opening a file returns this error when the file is
+In the GNU/Hurd system, opening a file returns this error when the file is
translated by a program and the translator program dies while starting
up, before it has connected to the file.
@end deftypevr
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 049e7e0..f95c953f 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -121,7 +121,7 @@ the buffer. The GNU library provides @code{getwd} only
for backwards compatibility with BSD.
The @var{buffer} argument should be a pointer to an array at least
-@code{PATH_MAX} bytes long (@pxref{Limits for Files}). In the GNU
+@code{PATH_MAX} bytes long (@pxref{Limits for Files}). In the GNU/Hurd
system there is no limit to the size of a file name, so this is not
necessarily enough space to contain the directory name. That is why
this function is deprecated.
@@ -354,7 +354,7 @@ The process has too many files open.
@item ENFILE
The entire system, or perhaps the file system which contains the
directory, cannot support any additional open files at the moment.
-(This problem cannot happen on the GNU system.)
+(This problem cannot happen on the GNU/Hurd system.)
@item ENOMEM
Not enough memory available.
@@ -2482,7 +2482,7 @@ read_umask (void)
@noindent
However, it is better to use @code{getumask} if you just want to read
-the mask value, because it is reentrant (at least if you use the GNU
+the mask value, because it is reentrant (at least if you use the GNU/Hurd
operating system).
@end deftypefun
diff --git a/manual/io.texi b/manual/io.texi
index f839138..15e0a56 100644
--- a/manual/io.texi
+++ b/manual/io.texi
@@ -332,7 +332,7 @@ This error is used when either the total length of a file name is
greater than @code{PATH_MAX}, or when an individual file name component
has a length greater than @code{NAME_MAX}. @xref{Limits for Files}.
-In the GNU system, there is no imposed limit on overall file name
+In the GNU/Hurd system, there is no imposed limit on overall file name
length, but some file systems may place limits on the length of a
component.
@@ -389,7 +389,7 @@ some operating systems and not by others.
The POSIX.1 standard allows implementations to put additional
restrictions on file name syntax, concerning what characters are
permitted in file names and on the length of file name and file name
-component strings. However, in the GNU system, you do not need to worry
+component strings. However, in the GNU/Hurd system, you do not need to worry
about these restrictions; any character except the null character is
permitted in a file name string, and there are no limits on the length
of file name strings.
diff --git a/manual/llio.texi b/manual/llio.texi
index 8154de7..6c60d68 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -120,7 +120,7 @@ The maximum number of file descriptors is controlled by the
@item ENFILE
The entire system, or perhaps the file system which contains the
directory, cannot support any additional open files at the moment.
-(This problem cannot happen on the GNU system.)
+(This problem cannot happen on the GNU/Hurd system.)
@item ENOENT
The named file does not exist, and @code{O_CREAT} is not specified.
@@ -2908,7 +2908,7 @@ The symbols in this section are defined in the header file
@subsection File Access Modes
The file access modes allow a file descriptor to be used for reading,
-writing, or both. (In the GNU system, they can also allow none of these,
+writing, or both. (In the GNU/Hurd system, they can also allow none of these,
and allow execution of the file as a program.) The access modes are chosen
when the file is opened, and never change.
@@ -2930,13 +2930,13 @@ Open the file for write access.
Open the file for both reading and writing.
@end deftypevr
-In the GNU system (and not in other systems), @code{O_RDONLY} and
+In the GNU/Hurd system (and not in other systems), @code{O_RDONLY} and
@code{O_WRONLY} are independent bits that can be bitwise-ORed together,
and it is valid for either bit to be set or clear. This means that
@code{O_RDWR} is the same as @code{O_RDONLY|O_WRONLY}. A file access
mode of zero is permissible; it allows no operations that do input or
output to the file, but does allow other operations such as
-@code{fchmod}. On the GNU system, since ``read-only'' or ``write-only''
+@code{fchmod}. On the GNU/Hurd system, since ``read-only'' or ``write-only''
is a misnomer, @file{fcntl.h} defines additional names for the file
access modes. These names are preferred when writing GNU-specific code.
But most programs will want to be portable to other POSIX.1 systems and
@@ -2961,7 +2961,7 @@ Open the file for executing. Only defined on GNU.
@end deftypevr
To determine the file access mode with @code{fcntl}, you must extract
-the access mode bits from the retrieved file status flags. In the GNU
+the access mode bits from the retrieved file status flags. In the GNU/Hurd
system, you can just test the @code{O_READ} and @code{O_WRITE} bits in
the flags word. But in other POSIX.1 systems, reading and writing
access modes are not stored as distinct bit flags. The portable way to
@@ -2973,7 +2973,7 @@ extract the file access mode bits is with @code{O_ACCMODE}.
This macro stands for a mask that can be bitwise-ANDed with the file
status flag value to produce a value representing the file access mode.
The mode will be @code{O_RDONLY}, @code{O_WRONLY}, or @code{O_RDWR}.
-(In the GNU system it could also be zero, and it never includes the
+(In the GNU/Hurd system it could also be zero, and it never includes the
@code{O_EXEC} bit.)
@end deftypevr
@@ -3046,7 +3046,7 @@ If the named file is a terminal device, don't make it the controlling
terminal for the process. @xref{Job Control}, for information about
what it means to be the controlling terminal.
-In the GNU system and 4.4 BSD, opening a file never makes it the
+In the GNU/Hurd system and 4.4 BSD, opening a file never makes it the
controlling terminal and @code{O_NOCTTY} is zero. However, other
systems may use a nonzero value for @code{O_NOCTTY} and set the
controlling terminal when you open a file that is a terminal device; so
@@ -3054,7 +3054,8 @@ to be portable, use @code{O_NOCTTY} when it is important to avoid this.
@cindex controlling terminal, setting
@end deftypevr
-The following three file name translation flags exist only in the GNU system.
+The following three file name translation flags exist only in the
+GNU/Hurd system.
@comment fcntl.h
@comment GNU
diff --git a/manual/maint.texi b/manual/maint.texi
index 567db98..b4adaab 100644
--- a/manual/maint.texi
+++ b/manual/maint.texi
@@ -399,7 +399,7 @@ This directory is for @code{socket} and related functions on Unix systems.
@item mach
This is the directory for things based on the Mach microkernel from CMU
-(including the GNU operating system). Other basic operating systems
+(including the GNU/Hurd operating system). Other basic operating systems
(VMS, for example) would have their own directories at the top level of
the @file{sysdeps} hierarchy, parallel to @file{unix} and @file{mach}.
@end table
diff --git a/manual/pipe.texi b/manual/pipe.texi
index 67e446f..024bbf5 100644
--- a/manual/pipe.texi
+++ b/manual/pipe.texi
@@ -75,7 +75,7 @@ The process has too many files open.
@item ENFILE
There are too many open files in the entire system. @xref{Error Codes},
for more information about @code{ENFILE}. This error never occurs in
-the GNU system.
+the GNU/Hurd system.
@end table
@end deftypefun
diff --git a/manual/process.texi b/manual/process.texi
index 1946793..64cc261 100644
--- a/manual/process.texi
+++ b/manual/process.texi
@@ -351,7 +351,7 @@ file name searching as the @code{execvp} function.
The size of the argument list and environment list taken together must
not be greater than @code{ARG_MAX} bytes. @xref{General Limits}. In
-the GNU system, the size (which compares against @code{ARG_MAX})
+the GNU/Hurd system, the size (which compares against @code{ARG_MAX})
includes, for each string, the number of characters in the string, plus
the size of a @code{char *}, plus one, rounded up to a multiple of the
size of a @code{char *}. Other systems may have somewhat different
@@ -366,7 +366,7 @@ usual file name errors (@pxref{File Name Errors}), the following
@table @code
@item E2BIG
The combined size of the new program's argument list and environment
-list is larger than @code{ARG_MAX} bytes. The GNU system has no
+list is larger than @code{ARG_MAX} bytes. The GNU/Hurd system has no
specific limit on the argument list size, so this error code cannot
result, but you may get @code{ENOMEM} instead if the arguments are too
big for available memory.
@@ -406,7 +406,7 @@ Pending alarms. @xref{Setting an Alarm}.
@item
Current working directory and root directory. @xref{Working
-Directory}. In the GNU system, the root directory is not copied when
+Directory}. In the GNU/Hurd system, the root directory is not copied when
executing a setuid program; instead the system default root directory
is used for the new program.
diff --git a/manual/resource.texi b/manual/resource.texi
index 173ed41..c420286 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -42,7 +42,7 @@ Just the current process.
All child processes (direct and indirect) that have already terminated.
@end table
-In the GNU system, you can also inquire about a particular child process
+In the GNU/Hurd system, you can also inquire about a particular child process
by specifying its process ID.
The return value of @code{getrusage} is zero for success, and @code{-1}
diff --git a/manual/signal.texi b/manual/signal.texi
index 2fa5254..5bed5c3 100644
--- a/manual/signal.texi
+++ b/manual/signal.texi
@@ -274,7 +274,7 @@ When one of these program error signals terminates a process, it also
writes a @dfn{core dump file} which records the state of the process at
the time of termination. The core dump file is named @file{core} and is
written in whichever directory is current in the process at the time.
-(On the GNU system, you can specify the file name for core dumps with
+(On the GNU/Hurd system, you can specify the file name for core dumps with
the environment variable @code{COREFILE}.) The purpose of core dump
files is so that you can examine them with a debugger to investigate
what caused the error.
@@ -759,14 +759,14 @@ process would probably not be very useful, since there is no shell
program that will notice it stop and allow the user to continue it.
What happens instead depends on the operating system you are using.
Some systems may do nothing; others may deliver another signal instead,
-such as @code{SIGKILL} or @code{SIGHUP}. In the GNU system, the process
+such as @code{SIGKILL} or @code{SIGHUP}. In the GNU/Hurd system, the process
dies with @code{SIGKILL}; this avoids the problem of many stopped,
orphaned processes lying around the system.
@ignore
-On the GNU system, it is possible to reattach to the orphaned process
+On the GNU/Hurd system, it is possible to reattach to the orphaned process
group and continue it, so stop signals do stop the process as usual on
-a GNU system unless you have requested POSIX compatibility ``till it
+a GNU/Hurd system unless you have requested POSIX compatibility ``till it
hurts.''
@end ignore
@@ -805,7 +805,7 @@ that isn't connected. @xref{Sending Data}.
Resource lost. This signal is generated when you have an advisory lock
on an NFS file, and the NFS server reboots and forgets about your lock.
-In the GNU system, @code{SIGLOST} is generated when any server program
+In the GNU/Hurd system, @code{SIGLOST} is generated when any server program
dies unexpectedly. It is usually fine to ignore the signal; whatever
call was made to the server that died just returns an error.
@end deftypevr
@@ -864,7 +864,7 @@ reformat its display accordingly.
@comment signal.h
@comment BSD
@deftypevr Macro int SIGINFO
-Information request. In 4.4 BSD and the GNU system, this signal is sent
+Information request. In 4.4 BSD and the GNU/Hurd system, this signal is sent
to all the processes in the foreground process group of the controlling
terminal when the user types the STATUS character in canonical mode;
@pxref{Signal Characters}.
diff --git a/manual/terminal.texi b/manual/terminal.texi
index db7780f..cf6bcef 100644
--- a/manual/terminal.texi
+++ b/manual/terminal.texi
@@ -319,7 +319,7 @@ This is like @code{TCSADRAIN}, but also discards any queued input.
This is a flag bit that you can add to any of the above alternatives.
Its meaning is to inhibit alteration of the state of the terminal
hardware. It is a BSD extension; it is only supported on BSD systems
-and the GNU system.
+and the GNU/Hurd system.
Using @code{TCSASOFT} is exactly the same as setting the @code{CIGNORE}
bit in the @code{c_cflag} member of the structure @var{termios-p} points
@@ -612,7 +612,7 @@ If this bit isn't set, the characters are transmitted as-is.
@end deftypevr
The following three bits are BSD features, and they exist only BSD
-systems and the GNU system. They are effective only if @code{OPOST} is
+systems and the GNU/Hurd system. They are effective only if @code{OPOST} is
set.
@comment termios.h
@@ -748,7 +748,7 @@ This specifies eight bits per byte.
@end deftypevr
The following four bits are BSD extensions; this exist only on BSD
-systems and the GNU system.
+systems and the GNU/Hurd system.
@comment termios.h
@comment BSD
@@ -935,7 +935,7 @@ attempt to write to the terminal. @xref{Access to the Terminal}.
@end deftypevr
The following bits are BSD extensions; they exist only in BSD systems
-and the GNU system.
+and the GNU/Hurd system.
@comment termios.h
@comment BSD
@@ -1404,7 +1404,7 @@ The DSUSP (suspend) character is recognized only if the implementation
supports job control (@pxref{Job Control}). It sends a @code{SIGTSTP}
signal, like the SUSP character, but not right away---only when the
program tries to read it as input. Not all systems with job control
-support DSUSP; only BSD-compatible systems (including the GNU system).
+support DSUSP; only BSD-compatible systems (including the GNU/Hurd system).
@xref{Signal Handling}, for more information about signals.
@@ -1461,7 +1461,7 @@ regardless of what you specify.
@node Other Special
@subsubsection Other Special Characters
-These special characters exist only in BSD systems and the GNU system.
+These special characters exist only in BSD systems and the GNU/Hurd system.
@comment termios.h
@comment BSD
--
Joseph S. Myers
joseph@codesourcery.com