2003-05-21  Petter Reinholdtsen  <pere@hungry.com>

	* locale/programs/locale.c (main): Report an error if setlocale()
	fails [PR libc/2254].

2003-05-21  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/s390/system.c: New file.

2003-05-21  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (LOADARGS_0,
	LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
	LOADARGS_6): Don't error if syscall argument is a string literal.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h (LOADARGS_0,
	LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
	LOADARGS_6): Likewise.
This commit is contained in:
Ulrich Drepper 2003-05-21 19:31:11 +00:00
parent 398256ea61
commit 2e1198646d
3 changed files with 61 additions and 4 deletions

View File

@ -1,3 +1,21 @@
2003-05-21 Petter Reinholdtsen <pere@hungry.com>
* locale/programs/locale.c (main): Report an error if setlocale()
fails [PR libc/2254].
2003-05-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/s390/system.c: New file.
2003-05-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (LOADARGS_0,
LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
LOADARGS_6): Don't error if syscall argument is a string literal.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h (LOADARGS_0,
LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
LOADARGS_6): Likewise.
2003-05-21 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/sysdep.h (cfi_offset, cfi_startproc,

View File

@ -191,8 +191,10 @@ main (int argc, char *argv[])
/* Set locale. Do not set LC_ALL because the other categories must
not be affected (according to POSIX.2). */
setlocale (LC_CTYPE, "");
setlocale (LC_MESSAGES, "");
if (setlocale (LC_CTYPE, "") == NULL)
error (0, errno, gettext ("Cannot set LC_CTYPE to default locale"));
if (setlocale (LC_MESSAGES, "") == NULL)
error (0, errno, gettext ("Cannot set LC_MESSAGES to default locale"));
/* Initialize the message catalog. */
textdomain (PACKAGE);
@ -203,7 +205,9 @@ main (int argc, char *argv[])
/* `-a' requests the names of all available locales. */
if (do_all != 0)
{
setlocale (LC_COLLATE, "");
if (setlocale (LC_COLLATE, "") == NULL)
error (0, errno,
gettext ("Cannot set LC_COLLATE to default locale"));
write_locales ();
exit (EXIT_SUCCESS);
}
@ -218,7 +222,8 @@ main (int argc, char *argv[])
/* Specific information about the current locale are requested.
Change to this locale now. */
setlocale (LC_ALL, "");
if (setlocale (LC_ALL, "") = NULL)
error (0, errno, gettext ("Cannot set LC_ALL to default locale"));
/* If no real argument is given we have to print the contents of the
current locale definition variables. These are LANG and the LC_*. */

View File

@ -0,0 +1,34 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <kernel-features.h>
/* We have to and actually can handle cancelable system(). The big
problem: we have to kill the child process if necessary. To do
this a cleanup handler has to be registered and is has to be able
to find the PID of the child. The main problem is to reliable have
the PID when needed. It is not necessary for the parent thread to
return. It might still be in the kernel when the cancellation
request comes. Therefore we have to use the clone() calls ability
to have the kernel write the PID into the user-level variable. */
#ifdef __ASSUME_CLONE_THREAD_FLAGS
# define FORK() \
INLINE_SYSCALL (clone, 3, 0, CLONE_PARENT_SETTID | SIGCHLD, &pid)
#endif
#include "../system.c"