* elf/ldconfig.c (main): Call setlocale and textdomain.
	Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
This commit is contained in:
Ulrich Drepper 2006-11-10 21:12:47 +00:00
parent 4260af60e9
commit 6decd24cc2
18 changed files with 48 additions and 38 deletions

View File

@ -1,5 +1,9 @@
2006-11-10 Ulrich Drepper <drepper@redhat.com> 2006-11-10 Ulrich Drepper <drepper@redhat.com>
[BZ #3483]
* elf/ldconfig.c (main): Call setlocale and textdomain.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
[BZ #3480] [BZ #3480]
* manual/argp.texi: Fix typos. * manual/argp.texi: Fix typos.
* manual/charset.texi: Likewise. * manual/charset.texi: Likewise.

View File

@ -24,6 +24,7 @@
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <libintl.h> #include <libintl.h>
#include <locale.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <stdio_ext.h> #include <stdio_ext.h>
@ -1166,9 +1167,14 @@ set_hwcap (void)
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
int remaining; /* Set locale via LC_ALL. */
setlocale (LC_ALL, "");
/* Set the text message domain. */
textdomain (_libc_intl_domainname);
/* Parse and process arguments. */ /* Parse and process arguments. */
int remaining;
argp_parse (&argp, argc, argv, 0, &remaining, NULL); argp_parse (&argp, argc, argv, 0, &remaining, NULL);
/* Remaining arguments are additional directories if opt_manual_link /* Remaining arguments are additional directories if opt_manual_link

View File

@ -832,7 +832,7 @@ Don't exit on errors, although they may still result in error messages.
@item ARGP_LONG_ONLY @item ARGP_LONG_ONLY
Use the gnu getopt `long-only' rules for parsing arguments. This allows Use the gnu getopt `long-only' rules for parsing arguments. This allows
long-options to be recognized with only a single @samp{-} long-options to be recognized with only a single @samp{-}
(i.e. @samp{-help}). This results in a less useful interface, and its (i.e., @samp{-help}). This results in a less useful interface, and its
use is discouraged as it conflicts with the way most GNU programs work use is discouraged as it conflicts with the way most GNU programs work
as well as the GNU coding standards. as well as the GNU coding standards.

View File

@ -207,7 +207,7 @@ and transmittal. Because each single wide character consists of more
than one byte, they are effected by byte-ordering. Thus, machines with than one byte, they are effected by byte-ordering. Thus, machines with
different endianesses would see different values when accessing the same different endianesses would see different values when accessing the same
data. This byte ordering concern also applies for communication protocols data. This byte ordering concern also applies for communication protocols
that are all byte-based and, thereforet require that the sender has to that are all byte-based and therefore require that the sender has to
decide about splitting the wide character in bytes. A last (but not least decide about splitting the wide character in bytes. A last (but not least
important) point is that wide characters often require more storage space important) point is that wide characters often require more storage space
than a customized byte-oriented character set. than a customized byte-oriented character set.
@ -737,7 +737,7 @@ the return value is @math{0}. If the next @var{n} bytes form a valid
multibyte character, the number of bytes belonging to this multibyte multibyte character, the number of bytes belonging to this multibyte
character byte sequence is returned. character byte sequence is returned.
If the the first @var{n} bytes possibly form a valid multibyte If the first @var{n} bytes possibly form a valid multibyte
character but the character is incomplete, the return value is character but the character is incomplete, the return value is
@code{(size_t) -2}. Otherwise the multibyte character sequence is invalid @code{(size_t) -2}. Otherwise the multibyte character sequence is invalid
and the return value is @code{(size_t) -1}. and the return value is @code{(size_t) -1}.
@ -2231,7 +2231,7 @@ ordering of the processor (or at least the running process) is not the
same as the one required for UCS-4. This is done for performance reasons same as the one required for UCS-4. This is done for performance reasons
as one does not want to perform unnecessary byte-swapping operations if as one does not want to perform unnecessary byte-swapping operations if
one is not interested in actually seeing the result in UCS-4. To avoid one is not interested in actually seeing the result in UCS-4. To avoid
trouble with endianess, the internal representation consistently is named trouble with endianness, the internal representation consistently is named
@code{INTERNAL} even on big-endian systems where the representations are @code{INTERNAL} even on big-endian systems where the representations are
identical. identical.

View File

@ -1434,7 +1434,7 @@ like those given to the @code{printf} family of functions. The
arguments required for the format can follow the @var{format} parameter. arguments required for the format can follow the @var{format} parameter.
Just like @code{perror}, @code{error} also can report an error code in Just like @code{perror}, @code{error} also can report an error code in
textual form. But unlike @code{perror} the error value is explicitly textual form. But unlike @code{perror} the error value is explicitly
passed to the function in the @var{errnum} parameter. This elimintates passed to the function in the @var{errnum} parameter. This eliminates
the problem mentioned above that the error reporting function must be the problem mentioned above that the error reporting function must be
called immediately after the function causing the error since otherwise called immediately after the function causing the error since otherwise
@code{errno} might have a different value. @code{errno} might have a different value.
@ -1479,7 +1479,7 @@ in an input file (like a programming language source code file etc).
If the global variable @code{error_one_per_line} is set to a non-zero If the global variable @code{error_one_per_line} is set to a non-zero
value @code{error_at_line} will avoid printing consecutive messages for value @code{error_at_line} will avoid printing consecutive messages for
the same file anem line. Repetition which are not directly following the same file and line. Repetition which are not directly following
each other are not caught. each other are not caught.
Just like @code{error} this function only returned if @var{status} is Just like @code{error} this function only returned if @var{status} is

View File

@ -131,7 +131,7 @@ this function is deprecated.
@comment GNU @comment GNU
@deftypefun {char *} get_current_dir_name (void) @deftypefun {char *} get_current_dir_name (void)
@vindex PWD @vindex PWD
This @code{get_current_dir_name} function is bascially equivalent to This @code{get_current_dir_name} function is basically equivalent to
@w{@code{getcwd (NULL, 0)}}. The only difference is that the value of @w{@code{getcwd (NULL, 0)}}. The only difference is that the value of
the @code{PWD} variable is returned if this value is correct. This is a the @code{PWD} variable is returned if this value is correct. This is a
subtle difference which is visible if the path described by the subtle difference which is visible if the path described by the
@ -917,7 +917,7 @@ function returns a value other than @math{0} this value is returned as
the return value of @code{ftw}. the return value of @code{ftw}.
When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a
32-bit system this function is in fact @code{ftw64}, i.e. the LFS 32-bit system this function is in fact @code{ftw64}, i.e., the LFS
interface transparently replaces the old interface. interface transparently replaces the old interface.
@end deftypefun @end deftypefun
@ -990,7 +990,7 @@ accordingly. If the return value of a callback invocation was non-zero
then that value is returned. then that value is returned.
When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a
32-bit system this function is in fact @code{nftw64}, i.e. the LFS 32-bit system this function is in fact @code{nftw64}, i.e., the LFS
interface transparently replaces the old interface. interface transparently replaces the old interface.
@end deftypefun @end deftypefun
@ -1434,7 +1434,7 @@ the existing directory named @var{newname} is deleted first. The name
One useful feature of @code{rename} is that the meaning of @var{newname} One useful feature of @code{rename} is that the meaning of @var{newname}
changes ``atomically'' from any previously existing file by that name to changes ``atomically'' from any previously existing file by that name to
its new meaning (i.e. the file that was called @var{oldname}). There is its new meaning (i.e., the file that was called @var{oldname}). There is
no instant at which @var{newname} is non-existent ``in between'' the old no instant at which @var{newname} is non-existent ``in between'' the old
meaning and the new meaning. If there is a system crash during the meaning and the new meaning. If there is a system crash during the
operation, it is possible for both names to still exist; but operation, it is possible for both names to still exist; but
@ -3104,7 +3104,7 @@ terminates abnormally).
This function is reentrant. This function is reentrant.
When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a
32-bit system this function is in fact @code{tmpfile64}, i.e. the LFS 32-bit system this function is in fact @code{tmpfile64}, i.e., the LFS
interface transparently replaces the old interface. interface transparently replaces the old interface.
@end deftypefun @end deftypefun

View File

@ -1274,7 +1274,7 @@ type of a particular structure member.
@comment ISO @comment ISO
@deftypefn {Macro} size_t offsetof (@var{type}, @var{member}) @deftypefn {Macro} size_t offsetof (@var{type}, @var{member})
This expands to a integer constant expression that is the offset of the This expands to a integer constant expression that is the offset of the
structure member named @var{member} in a the structure type @var{type}. structure member named @var{member} in the structure type @var{type}.
For example, @code{offsetof (struct s, elem)} is the offset, in bytes, For example, @code{offsetof (struct s, elem)} is the offset, in bytes,
of the member @code{elem} in a @code{struct s}. of the member @code{elem} in a @code{struct s}.

View File

@ -156,7 +156,7 @@ subdirectories under it intended to be new specific categories.
to look for a system-dependent version of a file that's not in to look for a system-dependent version of a file that's not in
@file{generic}. This means that any system-dependent source file must @file{generic}. This means that any system-dependent source file must
have an analogue in @file{generic}, even if the routines defined by that have an analogue in @file{generic}, even if the routines defined by that
file are not implemented on other platforms. Second. the @file{generic} file are not implemented on other platforms. Second, the @file{generic}
version of a system-dependent file is used if the makefiles do not find version of a system-dependent file is used if the makefiles do not find
a version specific to the system you're compiling for. a version specific to the system you're compiling for.

View File

@ -31,7 +31,7 @@ One of the most basic resources a process has available to it is memory.
There are a lot of different ways systems organize memory, but in a There are a lot of different ways systems organize memory, but in a
typical one, each process has one linear virtual address space, with typical one, each process has one linear virtual address space, with
addresses running from zero to some huge maximum. It need not be addresses running from zero to some huge maximum. It need not be
contiguous; i.e. not all of these addresses actually can be used to contiguous; i.e., not all of these addresses actually can be used to
store data. store data.
The virtual memory is divided into pages (4 kilobytes is typical). The virtual memory is divided into pages (4 kilobytes is typical).
@ -1065,7 +1065,7 @@ This is the total size of memory occupied by free (not in use) chunks.
@item int keepcost @item int keepcost
This is the size of the top-most releasable chunk that normally This is the size of the top-most releasable chunk that normally
borders the end of the heap (i.e. the high end of the virtual address borders the end of the heap (i.e., the high end of the virtual address
space's data segment). space's data segment).
@end table @end table
@ -2407,7 +2407,7 @@ of the data segment is.
@cindex paging @cindex paging
You can tell the system to associate a particular virtual memory page You can tell the system to associate a particular virtual memory page
with a real page frame and keep it that way --- i.e. cause the page to with a real page frame and keep it that way --- i.e., cause the page to
be paged in if it isn't already and mark it so it will never be paged be paged in if it isn't already and mark it so it will never be paged
out and consequently will never cause a page fault. This is called out and consequently will never cause a page fault. This is called
@dfn{locking} a page. @dfn{locking} a page.
@ -2467,7 +2467,7 @@ A memory lock is associated with a virtual page, not a real frame. The
paging rule is: If a frame backs at least one locked page, don't page it paging rule is: If a frame backs at least one locked page, don't page it
out. out.
Memory locks do not stack. I.e. you can't lock a particular page twice Memory locks do not stack. I.e., you can't lock a particular page twice
so that it has to be unlocked twice before it is truly unlocked. It is so that it has to be unlocked twice before it is truly unlocked. It is
either locked or it isn't. either locked or it isn't.

View File

@ -1810,8 +1810,8 @@ help to understand the input better.
Other programs help to manage development cycle when new messages appear Other programs help to manage development cycle when new messages appear
in the source files or when a new translation of the messages appear. in the source files or when a new translation of the messages appear.
here it should only be noted that using all the tools in GNU gettext it Here it should only be noted that using all the tools in GNU gettext it
is possible to @emph{completely} automize the handling of message is possible to @emph{completely} automate the handling of message
catalog. Beside marking the translatable string in the source code and catalog. Beside marking the translatable string in the source code and
generating the translations the developers do not have anything to do generating the translations the developers do not have anything to do
themselves. themselves.

View File

@ -584,7 +584,7 @@ to}, but doesn't @emph{need to} run occupies the CPU.
@cindex preemptive scheduling @cindex preemptive scheduling
When two processes are in contention to use the CPU at any instant, the When two processes are in contention to use the CPU at any instant, the
one with the higher absolute priority always gets it. This is true even if the one with the higher absolute priority always gets it. This is true even if the
process with the lower priority is already using the CPU (i.e. the process with the lower priority is already using the CPU (i.e., the
scheduling is preemptive). Of course, we're only talking about scheduling is preemptive). Of course, we're only talking about
processes that are running or ``ready to run,'' which means they are processes that are running or ``ready to run,'' which means they are
ready to execute instructions right now. When a process blocks to wait ready to execute instructions right now. When a process blocks to wait
@ -819,7 +819,7 @@ existing policy is not @code{SCHED_OTHER}.
@item @item
The calling process does not have @code{CAP_SYS_NICE} permission and its The calling process does not have @code{CAP_SYS_NICE} permission and its
owner is not the target process' owner. I.e. the effective uid of the owner is not the target process' owner. I.e., the effective uid of the
calling process is neither the effective nor the real uid of process calling process is neither the effective nor the real uid of process
@var{pid}. @var{pid}.
@c We need a cross reference to the capabilities section, when written. @c We need a cross reference to the capabilities section, when written.
@ -1185,7 +1185,7 @@ The value of @var{class} is not valid.
@item EPERM @item EPERM
The call would set the nice value of a process which is owned by a different The call would set the nice value of a process which is owned by a different
user than the calling process (i.e. the target process' real or effective user than the calling process (i.e., the target process' real or effective
uid does not match the calling process' effective uid) and the calling uid does not match the calling process' effective uid) and the calling
process does not have @code{CAP_SYS_NICE} permission. process does not have @code{CAP_SYS_NICE} permission.
@ -1215,7 +1215,7 @@ a process group ID (pgid).
@comment sys/resource.h @comment sys/resource.h
@comment BSD @comment BSD
@item PRIO_USER @item PRIO_USER
All the processes owned by a particular user (i.e. whose real uid All the processes owned by a particular user (i.e., whose real uid
indicates the user). The argument @var{id} is a user ID (uid). indicates the user). The argument @var{id} is a user ID (uid).
@end vtable @end vtable
@ -1272,7 +1272,7 @@ other process or thread is allowed to use.
@item @item
The access to certain resources (RAM, I/O ports) has different costs The access to certain resources (RAM, I/O ports) has different costs
from different CPUs. This is the case in NUMA (Non-Uniform Memory from different CPUs. This is the case in NUMA (Non-Uniform Memory
Architecture) machines. Preferrably memory should be accessed locally Architecture) machines. Preferably memory should be accessed locally
but this requirement is usually not visible to the scheduler. but this requirement is usually not visible to the scheduler.
Therefore forcing a process or thread to the CPUs which have local Therefore forcing a process or thread to the CPUs which have local
access to the mostly used memory helps to significantly boost the access to the mostly used memory helps to significantly boost the

View File

@ -368,9 +368,9 @@ necessary for the @code{struct hsearch_data} object can be allocated
dynamically. It must be initialized with zero before calling this dynamically. It must be initialized with zero before calling this
function. function.
The return value is non-zero if the operation were successful. if the The return value is non-zero if the operation was successful. If the
return value is zero something went wrong which probably means the return value is zero, something went wrong, which probably means the
programs runs out of memory. programs ran out of memory.
@end deftypefun @end deftypefun
@comment search.h @comment search.h

View File

@ -2567,7 +2567,7 @@ The prototype for the @code{sigprocmask} function is in @file{signal.h}.
Note that you must not use @code{sigprocmask} in multi-threaded processes, Note that you must not use @code{sigprocmask} in multi-threaded processes,
because each thread has its own signal mask and there is no single process because each thread has its own signal mask and there is no single process
signal mask. According to POSIX, the behavior of @code{sigprocmask} in a signal mask. According to POSIX, the behavior of @code{sigprocmask} in a
multi-threaded process is ``unspeficied''. multi-threaded process is ``unspecified''.
Instead, use @code{pthread_sigmask}. Instead, use @code{pthread_sigmask}.
@ifset linuxthreads @ifset linuxthreads
@xref{Threads and Signal Handling}. @xref{Threads and Signal Handling}.

View File

@ -830,7 +830,7 @@ mean that there was difficulty in opening the files.
Don't confuse a program's exit status with a process' termination status. Don't confuse a program's exit status with a process' termination status.
There are lots of ways a process can terminate besides having it's program There are lots of ways a process can terminate besides having it's program
finish. In the event that the process termination @emph{is} caused by program finish. In the event that the process termination @emph{is} caused by program
termination (i.e. @code{exit}), though, the program's exit status becomes termination (i.e., @code{exit}), though, the program's exit status becomes
part of the process' termination status. part of the process' termination status.
@node Cleanups on Exit @node Cleanups on Exit

View File

@ -433,7 +433,7 @@ see @ref{Stream Buffering}.
@cindex multi-threaded application @cindex multi-threaded application
Streams can be used in multi-threaded applications in the same way they Streams can be used in multi-threaded applications in the same way they
are used in single-threaded applications. But the programmer must be are used in single-threaded applications. But the programmer must be
aware of a the possible complications. It is important to know about aware of the possible complications. It is important to know about
these also if the program one writes never use threads since the design these also if the program one writes never use threads since the design
and implementation of many stream functions is heavily influenced by the and implementation of many stream functions is heavily influenced by the
requirements added by multi-threaded programming. requirements added by multi-threaded programming.
@ -1992,7 +1992,7 @@ the precision. The exponent always contains at least two digits. The
The @samp{%g} and @samp{%G} conversions print the argument in the style The @samp{%g} and @samp{%G} conversions print the argument in the style
of @samp{%e} or @samp{%E} (respectively) if the exponent would be less of @samp{%e} or @samp{%E} (respectively) if the exponent would be less
than -4 or greater than or equal to the precision; otherwise they use than -4 or greater than or equal to the precision; otherwise they use
the @samp{%f} style. A precision of @code{0}, is taken as 1. is the @samp{%f} style. A precision of @code{0}, is taken as 1.
Trailing zeros are removed from the fractional portion of the result and Trailing zeros are removed from the fractional portion of the result and
a decimal-point character appears only if it is followed by a digit. a decimal-point character appears only if it is followed by a digit.

View File

@ -872,7 +872,7 @@ shall be accessible while the filesystem is mounted.
@item MS_SYNCHRONOUS @item MS_SYNCHRONOUS
This bit on specifies that all writes to the filesystem while it is This bit on specifies that all writes to the filesystem while it is
mounted shall be synchronous; i.e. data shall be synced before each mounted shall be synchronous; i.e., data shall be synced before each
write completes rather than held in the buffer cache. write completes rather than held in the buffer cache.
@item MS_MANDLOCK @item MS_MANDLOCK

View File

@ -370,7 +370,7 @@ The message is only for debugging purposes.
Results are undefined if the priority code is anything else. Results are undefined if the priority code is anything else.
If the process does not presently have a Syslog connection open (i.e. If the process does not presently have a Syslog connection open (i.e.,
it did not call @code{openlog}), @code{syslog} implicitly opens the it did not call @code{openlog}), @code{syslog} implicitly opens the
connection the same as @code{openlog} would, with the following defaults connection the same as @code{openlog} would, with the following defaults
for information that would otherwise be included in an @code{openlog} for information that would otherwise be included in an @code{openlog}

View File

@ -193,7 +193,7 @@ total amount of time a process has actively used a CPU since some
arbitrary event. On the GNU system, that event is the creation of the arbitrary event. On the GNU system, that event is the creation of the
process. While arbitrary in general, the event is always the same event process. While arbitrary in general, the event is always the same event
for any particular process, so you can always measure how much time on for any particular process, so you can always measure how much time on
the CPU a particular computation takes by examinining the process' CPU the CPU a particular computation takes by examining the process' CPU
time before and after the computation. time before and after the computation.
@cindex CPU time @cindex CPU time
@cindex clock ticks @cindex clock ticks
@ -447,7 +447,7 @@ current calendar time is not available, the value
@comment time.h @comment time.h
@comment SVID, XPG @comment SVID, XPG
@deftypefun int stime (time_t *@var{newtime}) @deftypefun int stime (time_t *@var{newtime})
@code{stime} sets the system clock, i.e. it tells the system that the @code{stime} sets the system clock, i.e., it tells the system that the
current calendar time is @var{newtime}, where @code{newtime} is current calendar time is @var{newtime}, where @code{newtime} is
interpreted as described in the above definition of @code{time_t}. interpreted as described in the above definition of @code{time_t}.
@ -1470,7 +1470,7 @@ widely available.
@node Low-Level Time String Parsing @node Low-Level Time String Parsing
@subsubsection Interpret string according to given format @subsubsection Interpret string according to given format
he first function is rather low-level. It is nevertheless frequently The first function is rather low-level. It is nevertheless frequently
used in software since it is better known. Its interface and used in software since it is better known. Its interface and
implementation are heavily influenced by the @code{getdate} function, implementation are heavily influenced by the @code{getdate} function,
which is defined and implemented in terms of calls to @code{strptime}. which is defined and implemented in terms of calls to @code{strptime}.
@ -1790,7 +1790,7 @@ process. If the input string contains more characters than required by
the format string the return value points right after the last consumed the format string the return value points right after the last consumed
input character. If the whole input string is consumed the return value input character. If the whole input string is consumed the return value
points to the @code{NULL} byte at the end of the string. If an error points to the @code{NULL} byte at the end of the string. If an error
occurs, i.e. @code{strptime} fails to match all of the format string, occurs, i.e., @code{strptime} fails to match all of the format string,
the function returns @code{NULL}. the function returns @code{NULL}.
@end deftypefun @end deftypefun