diff options
66 files changed, 2250 insertions, 890 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog index 100de9067..99ad03961 100644 --- a/libc/ChangeLog +++ b/libc/ChangeLog @@ -1,3 +1,131 @@ +2009-02-11 Ulrich Drepper <drepper@redhat.com> + + * po/lt.po: Update from translation team. + +2009-02-10 Ulrich Drepper <drepper@redhat.com> + + * elf/dl-load.c (open_verify): In case VALID_ELF_HEADER is + defined, allow additional data to be added using the optional + MORE_ELF_HEADER_DATA macro. + * sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_HEADER, + VALID_ELF_OSABI, VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA): Define. + +2009-02-08 Ulrich Drepper <drepper@redhat.com> + + * include/atomic.h: Define catomic_and if not already defined. + * sysdeps/x86_64/bits/atomic.h: Define catomic_and. + * sysdeps/i386/i486/bits/atomic.h: Likewise. + +2009-02-07 Ulrich Drepper <drepper@redhat.com> + + * malloc/malloc.c (_int_free): Second argument is now mchunkptr. + Change all callers. + (_int_realloc): Likewise. Third argument is now padded size + All _int_* functions are now static. + + * malloc/hooks.c: Change all callers to _int_free and _int_realloc. + * malloc/arena.c: Likewise. + * include/malloc.h: Remove now unnecessary declarations of the _int_* + functions. + + * sunrpc/rpc_common.c: We cannot move _null_auth into .rodata that + easily. + + * malloc/malloc.c: Add branch prediction for use of the hooks. + + * grp/compat-initgroups.c [NOT_IN_libc] (__libc_use_alloca): Define. + +2009-02-06 Ulrich Drepper <drepper@redhat.com> + + [BZ #7095] + * bits/confname.h: Add SUSv7 macros for getconf environments. + * bits/environments.h: Likewise. + * sysdeps/unix/sysv/linux/i386/bits/environments.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/environments.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/environments.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/environments.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/environments.h: Likewise. + * posix/confstr.c: Handle SUSv5 and SUSv7 environments. + * posix/getconf.c: Likewise. + * posix/sysconf.c: Likewise. + * sysdeps/posix/sysconf.c: Likewise. + * posix/Makefile (getconf.speclist): Also collect SUSv5 and SUSv7 + environments. + +2009-01-16 Petr Baudis <pasky@suse.cz> + + [BZ #9753] + * resolv/res_libc.c (__res_maybe_init): Call __res_vinit() + even if we currently have zero nscount. + +2009-02-06 Ulrich Drepper <drepper@redhat.com> + + [BZ #9781] + * grp/compat-initgroups.c (compat_call): Switch to use malloc when + the input line is too long. + + * po/Makefile (libc.pot): Add f_print as function taking c-format + parameter. + + * debug/xtrace.sh: Unify translatable messages. + * elf/ldd.bash.in: Likewise. + * elf/sprof.c: Likewise. + * locale/programs/locale.c: Likewise. + * malloc/memusage.sh: Likewise. + * nss/getent.c: Likewise. + +2009-02-06 Joseph Myers <joseph@codesourcery.com> + + * debug/pcprofiledump.c (print_version, + argp_program_version_hook): New function. + * elf/ldconfig.c (more_help): New function. + (argp): Use it. + * elf/sln.c (usage): New function. + (main): Support --help and --version. + * malloc/memusagestat.c (print_version): New function. + (argp_program_version_hook): New variable. + * nscd/nscd.c (more_help): New function. + (argp): Use it. + * posix/getconf.c (main): Send --version output to stdout. + Support --help. + * sunrpc/rpc_main.c (usage, options_usage): Take STREAM and STATUS + arguments. All callers changed. + (print_version): New function. + (parseargs): Support --help and --version. + * sunrpc/rpcinfo.c (usage): Take STREAM argument. All callers + changed. + (print_version): New function. + (main): Use getopt_long. Support --help and --version. + * sysdeps/unix/sysv/linux/lddlibc4.c (main): Support --help and + --version. + +2009-02-06 Ulrich Drepper <drepper@redhat.com> + + * malloc/memusage.c (DEFAULT_BUFFER_SIZE): Change to 32768. + (update_data): Fix handling of wrapping back + to the beginning of the buffer. + + [BZ #9823] + * stdio-common/psignal.c (psignal): Fix test for empty string. + +2009-02-05 Ulrich Drepper <drepper@redhat.com> + + * include/rpc/auth.h: Use libc_hidden_proto for _null_auth. + * sunrpc/rpc_common.c: Add libc_hidden_def for _null_auth. Also + move _null_auth to .rodata. + + * time/tzset.c (__tzset_parse_tz): DST offset must also allow hour + value of 24. + + * intl/dcigettext.c (DCIGETTEXT): Avoid some code duplication. + + * sysdeps/unix/opendir.c (__alloc_dir): We have a lot more memory + today than when the original code was written. Use larger + buffers. This also makes it unnecessary to have stat information, + if this causes extra efforts. + (__opendir): In case O_DIRECTORY works, don't call fstat just for + __alloc_dir. + 2009-02-03 Andrew Stubbs <ams@codesourcery.com> * sysdeps/sh/sh4/dl-trampoline.S: Only set HAVE_FPU if __SH_FPU_ANY__ diff --git a/libc/bits/confname.h b/libc/bits/confname.h index 80b51ac0b..f6fea1fc2 100644 --- a/libc/bits/confname.h +++ b/libc/bits/confname.h @@ -1,5 +1,5 @@ /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. - Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007 + Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -498,8 +498,17 @@ enum _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, #define _SC_IPV6 _SC_IPV6 - _SC_RAW_SOCKETS + _SC_RAW_SOCKETS, #define _SC_RAW_SOCKETS _SC_RAW_SOCKETS + + _SC_V7_ILP32_OFF32, +#define _SC_V7_ILP32_OFF32 _SC_V7_ILP32_OFF32 + _SC_V7_ILP32_OFFBIG, +#define _SC_V7_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG + _SC_V7_LP64_OFF64, +#define _SC_V7_LP64_OFF64 _SC_V7_LP64_OFF64 + _SC_V7_LPBIG_OFFBIG, +#define _SC_V7_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG }; /* Values for the NAME argument to `confstr'. */ @@ -517,6 +526,14 @@ enum _CS_GNU_LIBPTHREAD_VERSION, #define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION + _CS_V5_WIDTH_RESTRICTED_ENVS, +#define _CS_V5_WIDTH_RESTRICTED_ENVS _CS_V5_WIDTH_RESTRICTED_ENVS +#define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS _CS_V5_WIDTH_RESTRICTED_ENVS + + _CS_V7_WIDTH_RESTRICTED_ENVS, +#define _CS_V7_WIDTH_RESTRICTED_ENVS _CS_V7_WIDTH_RESTRICTED_ENVS +#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS _CS_V7_WIDTH_RESTRICTED_ENVS + _CS_LFS_CFLAGS = 1000, #define _CS_LFS_CFLAGS _CS_LFS_CFLAGS _CS_LFS_LDFLAGS, @@ -597,6 +614,39 @@ enum #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS - _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS + _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS + + _CS_POSIX_V7_ILP32_OFF32_CFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS + _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS + _CS_POSIX_V7_ILP32_OFF32_LIBS, +#define _CS_POSIX_V7_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS + _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS + _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS + _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS + _CS_POSIX_V7_ILP32_OFFBIG_LIBS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS + _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS + _CS_POSIX_V7_LP64_OFF64_CFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS + _CS_POSIX_V7_LP64_OFF64_LDFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS + _CS_POSIX_V7_LP64_OFF64_LIBS, +#define _CS_POSIX_V7_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS + _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS _CS_POSIX_V7_LP64_OFF64_LINTFLAGS + _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS + _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS + _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS + _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +#define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS }; diff --git a/libc/bits/environments.h b/libc/bits/environments.h index 4617dc45f..548ea7f84 100644 --- a/libc/bits/environments.h +++ b/libc/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,30 +27,36 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ #if __WORDSIZE == 64 /* We can never provide environments with 32-bit wide pointers. */ +# define _POSIX_V7_ILP32_OFF32 -1 +# define _POSIX_V7_ILP32_OFFBIG -1 # define _POSIX_V6_ILP32_OFF32 -1 # define _POSIX_V6_ILP32_OFFBIG -1 # define _XBS5_ILP32_OFF32 -1 # define _XBS5_ILP32_OFFBIG -1 /* We also have no use (for now) for an environment with bigger pointers and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 @@ -58,15 +64,19 @@ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFF32 1 # define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* We can never provide environments with 64-bit wide pointers. */ +# define _POSIX_V7_LP64_OFF64 -1 +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LP64_OFF64 -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LP64_OFF64 -1 diff --git a/libc/debug/pcprofiledump.c b/libc/debug/pcprofiledump.c index 73c0c3ebf..9c6186d6f 100644 --- a/libc/debug/pcprofiledump.c +++ b/libc/debug/pcprofiledump.c @@ -1,5 +1,5 @@ /* Dump information generated by PC profiling. - Copyright (C) 1999, 2002, 2007 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. @@ -226,6 +226,6 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2008"); +"), "2009"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/libc/debug/xtrace.sh b/libc/debug/xtrace.sh index 0be565eb5..91959e4da 100755 --- a/libc/debug/xtrace.sh +++ b/libc/debug/xtrace.sh @@ -54,8 +54,10 @@ do_help() { Mandatory arguments to long options are also mandatory for any corresponding short options. -For bug reporting instructions, please see: -%s.\n" "@REPORT_BUGS_TO@" +" + printf $"For bug reporting instructions, please see: +%s. +" "@REPORT_BUGS_TO@" exit 0 } diff --git a/libc/elf/dl-load.c b/libc/elf/dl-load.c index 8a8936f7b..c77c25915 100644 --- a/libc/elf/dl-load.c +++ b/libc/elf/dl-load.c @@ -1,5 +1,5 @@ /* Map in a shared object's segments from the file. - Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-2005, 2006, 2007, 2009 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 @@ -1574,6 +1574,8 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader, # define VALID_ELF_HEADER(hdr,exp,size) (memcmp (hdr, exp, size) == 0) # define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV) # define VALID_ELF_ABIVERSION(ver) (ver == 0) +#elif defined MORE_ELF_HEADER_DATA + MORE_ELF_HEADER_DATA; #endif static const unsigned char expected[EI_PAD] = { diff --git a/libc/elf/ldconfig.c b/libc/elf/ldconfig.c index d3ffb3144..93a8d7aa7 100644 --- a/libc/elf/ldconfig.c +++ b/libc/elf/ldconfig.c @@ -132,6 +132,9 @@ static void print_version (FILE *stream, struct argp_state *state); void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = { @@ -153,9 +156,7 @@ static const struct argp_option options[] = #include <dl-procinfo.c> /* Short description of program. */ -static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings.\v\ -For bug reporting instructions, please see:\n\ -"REPORT_BUGS_TO".\n"); +static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings."); /* Prototype for option handler. */ static error_t parse_opt (int key, char *arg, struct argp_state *state); @@ -163,7 +164,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state); /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, NULL, doc, NULL, NULL, NULL + options, parse_opt, NULL, doc, NULL, more_help, NULL }; /* Check if string corresponds to an important hardware capability or @@ -290,6 +291,26 @@ parse_opt (int key, char *arg, struct argp_state *state) return 0; } +/* Print bug-reporting information in the help message. */ +static char * +more_help (int key, const char *text, void *input) +{ + char *tp = NULL; + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; + default: + break; + } + return (char *) text; +} + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) diff --git a/libc/elf/ldd.bash.in b/libc/elf/ldd.bash.in index 90ad0da89..98e589064 100644 --- a/libc/elf/ldd.bash.in +++ b/libc/elf/ldd.bash.in @@ -52,7 +52,8 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -r, --function-relocs process data and function relocations -u, --unused print unused direct dependencies -v, --verbose print all information -For bug reporting instructions, please see: +" + printf $"For bug reporting instructions, please see: %s. " "@REPORT_BUGS_TO@" exit 0 diff --git a/libc/elf/sln.c b/libc/elf/sln.c index 141dffcf4..3d9d6b8d0 100644 --- a/libc/elf/sln.c +++ b/libc/elf/sln.c @@ -1,5 +1,5 @@ /* `sln' program to create symbolic links between files. - Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2009 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 @@ -16,9 +16,15 @@ 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. */ - + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include <error.h> #include <errno.h> +#include <libintl.h> +#include <locale.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> @@ -30,6 +36,8 @@ #include "../version.h" +#define PACKAGE _libc_intl_domainname + #if !defined S_ISDIR && defined S_IFDIR #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif @@ -41,13 +49,19 @@ static void usage (void); int main (int argc, char **argv) { + /* Set locale via LC_ALL. */ + setlocale (LC_ALL, ""); + + /* Set the text message domain. */ + textdomain (PACKAGE); + switch (argc) { case 2: - if (!strcmp (argv[1], "--version")) { + if (strcmp (argv[1], "--version") == 0) { printf ("sln %s%s\n", PKGVERSION, VERSION); return 0; - } else if (!strcmp (argv[1], "--help")) { + } else if (strcmp (argv[1], "--help") == 0) { usage (); return 0; } @@ -68,10 +82,9 @@ main (int argc, char **argv) static void usage (void) { - printf ("Usage: sln src dest|file\n\ -\n\ -For bug reporting instructions, please see:\n\ -%s.\n", REPORT_BUGS_TO); + printf (_("Usage: sln src dest|file\n\n")); + printf (_("For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO); } static int @@ -94,7 +107,7 @@ makesymlinks (file) fp = fopen (file, "r"); if (fp == NULL) { - fprintf (stderr, "%s: file open error: %m\n", file); + fprintf (stderr, _("%s: file open error: %m\n"), file); return 1; } } @@ -131,7 +144,7 @@ makesymlinks (file) ++cp; if (*cp == '\0') { - fprintf (stderr, "No target in line %d\n", lineno); + fprintf (stderr, _("No target in line %d\n"), lineno); ret = 1; continue; } @@ -163,13 +176,13 @@ makesymlink (src, dest) { if (S_ISDIR (stats.st_mode)) { - fprintf (stderr, "%s: destination must not be a directory\n", + fprintf (stderr, _("%s: destination must not be a directory\n"), dest); return 1; } else if (unlink (dest) && errno != ENOENT) { - fprintf (stderr, "%s: failed to remove the old destination\n", + fprintf (stderr, _("%s: failed to remove the old destination\n"), dest); return 1; } @@ -177,7 +190,7 @@ makesymlink (src, dest) else if (errno != ENOENT) { error = strerror (errno); - fprintf (stderr, "%s: invalid destination: %s\n", dest, error); + fprintf (stderr, _("%s: invalid destination: %s\n"), dest, error); return -1; } @@ -192,7 +205,7 @@ makesymlink (src, dest) { error = strerror (errno); unlink (dest); - fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n", + fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"), src, dest, error); return 1; } @@ -201,7 +214,7 @@ makesymlink (src, dest) else { error = strerror (errno); - fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n", + fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"), src, dest, error); return 1; } diff --git a/libc/elf/sprof.c b/libc/elf/sprof.c index d2f0c1931..aaf335add 100644 --- a/libc/elf/sprof.c +++ b/libc/elf/sprof.c @@ -86,9 +86,9 @@ static const struct argp_option options[] = }; /* Short description of program. */ -static const char doc[] = N_("Read and display shared object profiling data.\v\ -For bug reporting instructions, please see:\n\ -"REPORT_BUGS_TO".\n"); +static const char doc[] = N_("Read and display shared object profiling data."); +//For bug reporting instructions, please see:\n \ +//<http://www.gnu.org/software/libc/bugs.html>.\n"); /* Strings for arguments in help texts. */ static const char args_doc[] = N_("SHOBJ [PROFDATA]"); @@ -96,10 +96,13 @@ static const char args_doc[] = N_("SHOBJ [PROFDATA]"); /* Prototype for option handler. */ static error_t parse_opt (int key, char *arg, struct argp_state *state); +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, args_doc, doc + options, parse_opt, args_doc, doc, NULL, more_help }; @@ -347,6 +350,26 @@ parse_opt (int key, char *arg, struct argp_state *state) } +static char * +more_help (int key, const char *text, void *input) +{ + char *tp = NULL; + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; + default: + break; + } + return (char *) text; +} + + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) diff --git a/libc/grp/compat-initgroups.c b/libc/grp/compat-initgroups.c index efd875a68..7bcc203fe 100644 --- a/libc/grp/compat-initgroups.c +++ b/libc/grp/compat-initgroups.c @@ -8,13 +8,19 @@ typedef enum nss_status (*end_function) (void); typedef enum nss_status (*get_function) (struct group *, char *, size_t, int *); +/* This file is also used in nscd where __libc_alloca_cutoff is not + available. */ +#ifdef NOT_IN_libc +# define __libc_use_alloca(size) ((size) < __MAX_ALLOCA_CUTOFF * 4) +#endif + + static enum nss_status compat_call (service_user *nip, const char *user, gid_t group, long int *start, long int *size, gid_t **groupsp, long int limit, int *errnop) { struct group grpbuf; size_t buflen = __sysconf (_SC_GETGR_R_SIZE_MAX); - char *tmpbuf; enum nss_status status; set_function setgrent_fct; get_function getgrent_fct; @@ -35,7 +41,9 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start, endgrent_fct = __nss_lookup_function (nip, "endgrent"); - tmpbuf = __alloca (buflen); + char *tmpbuf = __alloca (buflen); + bool use_malloc = false; + enum nss_status result = NSS_STATUS_SUCCESS; do { @@ -44,8 +52,20 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start, status == NSS_STATUS_TRYAGAIN) && *errnop == ERANGE) { - buflen *= 2; - tmpbuf = __alloca (buflen); + if (__libc_use_alloca (buflen * 2)) + tmpbuf = extend_alloca (tmpbuf, buflen, buflen * 2); + else + { + buflen *= 2; + char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen); + if (newbuf == NULL) + { + result = NSS_STATUS_TRYAGAIN; + goto done; + } + use_malloc = true; + tmpbuf = newbuf; + } } if (status != NSS_STATUS_SUCCESS) @@ -102,8 +122,11 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start, while (status == NSS_STATUS_SUCCESS); done: + if (use_malloc) + free (tmpbuf); + if (endgrent_fct) DL_CALL_FCT (endgrent_fct, ()); - return NSS_STATUS_SUCCESS; + return result; } diff --git a/libc/include/atomic.h b/libc/include/atomic.h index 2ad8b5fcb..7c0548b00 100644 --- a/libc/include/atomic.h +++ b/libc/include/atomic.h @@ -1,5 +1,5 @@ /* Internal macros for atomic operations for GNU C Library. - Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -415,6 +415,22 @@ } while (0) #endif +#ifndef catomic_and +# define catomic_and(mem, mask) \ + do { \ + __typeof (*(mem)) __atg20_old; \ + __typeof (mem) __atg20_memp = (mem); \ + __typeof (*(mem)) __atg20_mask = (mask); \ + \ + do \ + __atg20_old = (*__atg20_memp); \ + while (__builtin_expect \ + (catomic_compare_and_exchange_bool_acq (__atg20_memp, \ + __atg20_old & __atg20_mask,\ + __atg20_old), 0)); \ + } while (0) +#endif + /* Atomically *mem &= mask and return the old value of *mem. */ #ifndef atomic_and_val # define atomic_and_val(mem, mask) \ diff --git a/libc/include/malloc.h b/libc/include/malloc.h index 1a2024855..42fc8ed69 100644 --- a/libc/include/malloc.h +++ b/libc/include/malloc.h @@ -8,20 +8,7 @@ /* Nonzero if the malloc is already initialized. */ extern int __malloc_initialized attribute_hidden; -/* Internal routines, operating on "arenas". */ struct malloc_state; typedef struct malloc_state *mstate; -extern __malloc_ptr_t _int_malloc (mstate __m, size_t __size) attribute_hidden; -extern void _int_free (mstate __m, __malloc_ptr_t __ptr) - attribute_hidden; -extern __malloc_ptr_t _int_realloc (mstate __m, - __malloc_ptr_t __ptr, - size_t __size) attribute_hidden; -extern __malloc_ptr_t _int_memalign (mstate __m, size_t __alignment, - size_t __size) - attribute_hidden; -extern __malloc_ptr_t _int_valloc (mstate __m, size_t __size) - attribute_hidden; - #endif diff --git a/libc/include/rpc/auth.h b/libc/include/rpc/auth.h index bc433b593..a03188ed4 100644 --- a/libc/include/rpc/auth.h +++ b/libc/include/rpc/auth.h @@ -39,4 +39,6 @@ extern AUTH *authdes_pk_create_internal (const char *, netobj *, u_int, libc_hidden_proto (key_encryptsession_pk) libc_hidden_proto (key_decryptsession_pk) +libc_hidden_proto (_null_auth) + #endif diff --git a/libc/intl/dcigettext.c b/libc/intl/dcigettext.c index e5b72e533..c2860f81f 100644 --- a/libc/intl/dcigettext.c +++ b/libc/intl/dcigettext.c @@ -1,5 +1,5 @@ /* Implementation of the internal dcigettext function. - Copyright (C) 1995-2005, 2006, 2007, 2008 + Copyright (C) 1995-2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -565,20 +565,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) } if (ret == NULL) - { - /* We cannot get the current working directory. Don't signal an - error but simply return the default string. */ - FREE_BLOCKS (block_list); -#if __OPTION_EGLIBC_LOCALE_CODE - __libc_rwlock_unlock (__libc_setlocale_lock); -#endif - __libc_rwlock_unlock (_nl_state_lock); - __set_errno (saved_errno); - return (plural == 0 - ? (char *) msgid1 - /* Use the Germanic plural rule. */ - : n == 1 ? (char *) msgid1 : (char *) msgid2); - } + goto no_translation; stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); } diff --git a/libc/locale/programs/locale.c b/libc/locale/programs/locale.c index 5b9fbb3f5..74924e5ec 100644 --- a/libc/locale/programs/locale.c +++ b/libc/locale/programs/locale.c @@ -84,9 +84,7 @@ static const struct argp_option options[] = }; /* Short description of program. */ -static const char doc[] = N_("Get locale-specific information.\v\ -For bug reporting instructions, please see:\n\ -"REPORT_BUGS_TO".\n"); +static const char doc[] = N_("Get locale-specific information."); /* Strings for arguments in help texts. */ static const char args_doc[] = N_("NAME\n[-a|-m]"); @@ -94,10 +92,13 @@ static const char args_doc[] = N_("NAME\n[-a|-m]"); /* Prototype for option handler. */ static error_t parse_opt (int key, char *arg, struct argp_state *state); +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, args_doc, doc + options, parse_opt, args_doc, doc, NULL, more_help }; @@ -267,6 +268,26 @@ parse_opt (int key, char *arg, struct argp_state *state) } +static char * +more_help (int key, const char *text, void *input) +{ + char *tp = NULL; + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; + default: + break; + } + return (char *) text; +} + + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog index 594a71c98..801a2a5da 100644 --- a/libc/localedata/ChangeLog +++ b/libc/localedata/ChangeLog @@ -1,5 +1,26 @@ +2009-02-11 Ulrich Drepper <drepper@redhat.com> + + * locales/iso14651_t1_common: Add rules for sorting Malayalam. + Patch by Santhosh Thottingal <santhosh.thottingal@gmail.com>. + +2009-02-06 Ulrich Drepper <drepper@redhat.com> + + [BZ #7098] + * Makefile ($(inst_i18ndir)/charmaps/%.gz): No need to save + timestamp in compressed charmaps. + Patch by Gilles Espinasse <g.esp@free.fr>. + + [BZ #9730] + * locales/sv_FI: Fix time formats. + + [BZ #9736] + * locales/el_CY: Fix frac_digits and int_frac_digits. + * locales/el_GR: Likewise. + Patch by Clint Adams <schizo@debian.org>. + 2009-01-28 Ulrich Drepper <drepper@redhat.com> + [BZ #9791] * locales/as_IN: Break circular include loops introduced in last patch. * locales/bn_BD: Likewise. * locales/bn_IN: Likewise. diff --git a/libc/localedata/Makefile b/libc/localedata/Makefile index 6c10a0c7b..256ecea12 100644 --- a/libc/localedata/Makefile +++ b/libc/localedata/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996-2003, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 1996-2003,2005,2007,2008,2009 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 @@ -129,7 +129,7 @@ $(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force) $(make-target-directory) rm -f $(@:.gz=) $@ $(INSTALL_DATA) $< $(@:.gz=) - gzip -9 $(@:.gz=) + gzip -9n $(@:.gz=) # Install the locale source files in the appropriate directory. $(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install) diff --git a/libc/localedata/locales/el_CY b/libc/localedata/locales/el_CY index 721392423..31175777e 100644 --- a/libc/localedata/locales/el_CY +++ b/libc/localedata/locales/el_CY @@ -51,8 +51,8 @@ mon_thousands_sep "<U002E>" mon_grouping 3 positive_sign "" negative_sign "<U002D>" -int_frac_digits 4 -frac_digits 4 +int_frac_digits 2 +frac_digits 2 p_cs_precedes 0 p_sep_by_space 0 n_cs_precedes 1 diff --git a/libc/localedata/locales/el_GR b/libc/localedata/locales/el_GR index ce608a801..bb1db143f 100644 --- a/libc/localedata/locales/el_GR +++ b/libc/localedata/locales/el_GR @@ -70,8 +70,8 @@ mon_thousands_sep "<U002E>" mon_grouping 3 positive_sign "" negative_sign "<U002D>" -int_frac_digits 4 -frac_digits 4 +int_frac_digits 2 +frac_digits 2 p_cs_precedes 0 p_sep_by_space 0 n_cs_precedes 1 diff --git a/libc/localedata/locales/iso14651_t1_common b/libc/localedata/locales/iso14651_t1_common index bb0b4ab29..1c9963aaf 100644 --- a/libc/localedata/locales/iso14651_t1_common +++ b/libc/localedata/locales/iso14651_t1_common @@ -66,6 +66,7 @@ script <TELUGU> script <GURUMUKHI> script <KANNADA> script <SINHALA> +script <MALAYALAM> # Déclaration des symboles internes / Declaration of internal symbols # @@ -910,6 +911,129 @@ collating-symbol <kvd-visarg> collating-symbol <k-halant> collating-symbol <k-lenght_mark> collating-symbol <k-ai_lenght_mark> +# +# <MALAYALAM> +# mlvs- denotes Malayalam vowel sign +# mlvw- denotes Malayalam vowel +# ml-visarga - dentos Malayalam Visarga +# consonant + virama is considered half of consonant or consonant without vowel part +# so it consonant + virama should be considered as cluster and should be +# sorted before the consonant. All consonants are considered to have an implicit a vowel +# part associated with it. +collating-element <ml-chillu-n> from "<U0D28><U0D4D>" +collating-element <ml-chillu-nn> from "<U0D23><U0D4D>" +collating-element <ml-chillu-r> from "<U0D30><U0D4D>" +collating-element <ml-chillu-l> from "<U0D32><U0D4D>" +collating-element <ml-chillu-ll> from "<U0D33><U0D4D>" +collating-element <ml-chillu-k> from "<U0D15><U0D4D>" +collating-element <ml-kh> from "<U0D16><U0D4D>" +collating-element <ml-g> from "<U0D17><U0D4D>" +collating-element <ml-gh> from "<U0D18><U0D4D>" +collating-element <ml-ng> from "<U0D19><U0D4D>" +collating-element <ml-ch> from "<U0D1A><U0D4D>" +collating-element <ml-chh> from "<U0D1B><U0D4D>" +collating-element <ml-j> from "<U0D1C><U0D4D>" +collating-element <ml-jh> from "<U0D1D><U0D4D>" +collating-element <ml-ny> from "<U0D1E><U0D4D>" +collating-element <ml-t> from "<U0D1F><U0D4D>" +collating-element <ml-tt> from "<U0D20><U0D4D>" +collating-element <ml-d> from "<U0D21><U0D4D>" +collating-element <ml-dh> from "<U0D22><U0D4D>" +collating-element <ml-th> from "<U0D24><U0D4D>" +collating-element <ml-thh> from "<U0D25><U0D4D>" +collating-element <ml-dd> from "<U0D26><U0D4D>" +collating-element <ml-ddh> from "<U0D27><U0D4D>" +collating-element <ml-p> from "<U0D2A><U0D4D>" +collating-element <ml-ph> from "<U0D2B><U0D4D>" +collating-element <ml-b> from "<U0D2C><U0D4D>" +collating-element <ml-bh> from "<U0D2D><U0D4D>" +collating-element <ml-m> from "<U0D2E><U0D4D>" +collating-element <ml-y> from "<U0D2F><U0D4D>" +collating-element <ml-v> from "<U0D35><U0D4D>" +collating-element <ml-s> from "<U0D38><U0D4D>" +collating-element <ml-ss> from "<U0D36><U0D4D>" +collating-element <ml-sh> from "<U0D37><U0D4D>" +collating-element <ml-h> from "<U0D39><U0D4D>" +collating-element <ml-zh> from "<U0D34><U0D4D>" +collating-element <ml-rr> from "<U0D31><U0D4D>" +collating-element <ml-samvruthokaram> from "<U0D41><U0D4D>" +collating-element <ml-split-o> from "<U0D46><U0D3E>" # U+0D4A MALAYALAM VOWEL SIGN O = U+0D46 MALAYALAM VOWEL SIGN E + U+0D3E MALAYALAM VOWEL SIGN AA +collating-element <ml-split-oo> from "<U0D47><U0D3E>" # U+0D4B MALAYALAM VOWEL SIGN OO = U+0D47 MALAYALAM VOWEL SIGN EE + U+0D3E MALAYALAM VOWEL SIGN AA +collating-element <ml-split-au> from "<U0D46><U0D57>" # U+0D4C MALAYALAM VOWEL SIGN AU = U+0D46 MALAYALAM VOWEL SIGN E + U+0D57 MALAYALAM AU LENGTH MARK +# defning symbols +collating-symbol <mlvw-shorta> +collating-symbol <mlvw-aa> +collating-symbol <mlvw-i> +collating-symbol <mlvw-ii> +collating-symbol <mlvw-u> +collating-symbol <mlvw-uu> +collating-symbol <mlvw-vocalicr> +collating-symbol <mlvw-vocalicrr> +collating-symbol <mlvw-vocalicl> +collating-symbol <mlvw-vocalicll> +collating-symbol <mlvw-shorte> +collating-symbol <mlvw-e> +collating-symbol <mlvw-ai> +collating-symbol <mlvw-shorto> +collating-symbol <mlvw-o> +collating-symbol <mlvw-au> +collating-symbol <ml-ka> +collating-symbol <ml-kha> +collating-symbol <ml-ga> +collating-symbol <ml-gga> +collating-symbol <ml-gha> +collating-symbol <ml-nga> +collating-symbol <ml-cha> +collating-symbol <ml-chha> +collating-symbol <ml-ja> +collating-symbol <ml-jja> +collating-symbol <ml-jha> +collating-symbol <ml-nya> +collating-symbol <ml-ta> +collating-symbol <ml-tta> +collating-symbol <ml-da> +collating-symbol <ml-dha> +collating-symbol <ml-nna> +collating-symbol <ml-tha> +collating-symbol <ml-thha> +collating-symbol <ml-dda> +collating-symbol <ml-ddha> +collating-symbol <ml-na> +collating-symbol <ml-pa> +collating-symbol <ml-pha> +collating-symbol <ml-ba> +collating-symbol <ml-bba> +collating-symbol <ml-bha> +collating-symbol <ml-ma> +collating-symbol <ml-ya> +collating-symbol <ml-ra> +collating-symbol <ml-rra> +collating-symbol <ml-la> +collating-symbol <ml-lla> +collating-symbol <ml-va> +collating-symbol <ml-sha> +collating-symbol <ml-ssa> +collating-symbol <ml-sa> +collating-symbol <ml-ha> +collating-symbol <ml-avagrah> +collating-symbol <ml-zha> +collating-symbol <mlvs-aa> +collating-symbol <mlvs-i> +collating-symbol <mlvs-ii> +collating-symbol <mlvs-u> +collating-symbol <mlvs-uu> +collating-symbol <mlvs-vocalicr> +collating-symbol <mlvs-vocalicrr> +collating-symbol <mlvs-vocalicl> +collating-symbol <mlvs-vocalicll> +collating-symbol <mlvs-shorte> +collating-symbol <mlvs-e> +collating-symbol <mlvs-ai> +collating-symbol <mlvs-shorto> +collating-symbol <mlvs-o> +collating-symbol <mlvs-au> +collating-symbol <ml-visarga> +collating-symbol <ml-virama> # Ordre des symboles internes / Order of internal symbols # @@ -1733,6 +1857,83 @@ collating-symbol <k-ai_lenght_mark> <k-halant> <k-lenght_mark> <k-ai_lenght_mark> +# +# <MALAYALAM> +# +# collation weights in order +<mlvw-shorta> +<mlvw-aa> +<mlvw-i> +<mlvw-ii> +<mlvw-u> +<mlvw-uu> +<mlvw-vocalicr> +<mlvw-vocalicrr> +<mlvw-vocalicl> +<mlvw-vocalicll> +<mlvw-shorte> +<mlvw-e> +<mlvw-ai> +<mlvw-shorto> +<mlvw-o> +<mlvw-au> +<ml-ka> +<ml-kha> +<ml-ga> +<ml-gga> +<ml-gha> +<ml-nga> +<ml-cha> +<ml-chha> +<ml-ja> +<ml-jja> +<ml-jha> +<ml-nya> +<ml-ta> +<ml-tta> +<ml-da> +<ml-dha> +<ml-nna> +<ml-tha> +<ml-thha> +<ml-dda> +<ml-ddha> +<ml-na> +<ml-pa> +<ml-pha> +<ml-ba> +<ml-bba> +<ml-bha> +<ml-ma> +<ml-ya> +<ml-ra> +<ml-la> +<ml-va> +<ml-ssa> +<ml-sha> +<ml-sa> +<ml-ha> +<ml-lla> +<ml-zha> +<ml-rra> +<ml-avagrah> +<ml-virama> +<mlvs-aa> +<mlvs-i> +<mlvs-ii> +<mlvs-u> +<mlvs-uu> +<mlvs-vocalicr> +<mlvs-vocalicrr> +<mlvs-vocalicl> +<mlvs-vocalicll> +<mlvs-shorte> +<mlvs-e> +<mlvs-ai> +<mlvs-shorto> +<mlvs-o> +<mlvs-au> +<ml-visarga> order_start <SPECIAL>;forward;backward;forward;forward,position # @@ -4052,6 +4253,130 @@ order_start <SINHALA>;forward;forward;forward;forward,position <U0DDE> <U0DDE>;<BAS>;<MIN>;IGNORE <U0DCA> <U0DCA>;<BAS>;<MIN>;IGNORE +order_start <MALAYALAM>;forward;forward;forward;forward,position +<U0D66> <0>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D67> <1>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D68> <2>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D69> <3>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6A> <4>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6B> <5>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6C> <6>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6D> <7>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6E> <8>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D6F> <9>;"<BAS><NUM>";"<MIN><MIN>";IGNORE +<U0D05> <mlvw-shorta> ;<BAS>;<MIN>;IGNORE +<U0D06> <mlvw-aa> ;<BAS>;<MIN>;IGNORE +<U0D07> <mlvw-i> ;<BAS>;<MIN>;IGNORE +<U0D08> <mlvw-ii> ;<BAS>;<MIN>;IGNORE +<U0D09> <mlvw-u> ;<BAS>;<MIN>;IGNORE +<U0D0A> <mlvw-uu>;<BAS>;<MIN>;IGNORE +<U0D0B> <mlvw-vocalicr>;<BAS>;<MIN>;IGNORE +<U0D60> <mlvw-vocalicrr>;<BAS>;<MIN>;IGNORE +<U0D0C> <mlvw-vocalicl>;<BAS>;<MIN>;IGNORE +<U0D61> <mlvw-vocalicll>;<BAS>;<MIN>;IGNORE +<U0D0E> <mlvw-shorte>;<BAS>;<MIN>;IGNORE +<U0D0F> <mlvw-e>;<BAS>;<MIN>;IGNORE +<U0D10> <mlvw-ai>;<BAS>;<MIN>;IGNORE +<U0D12> <mlvw-shorto>;<BAS>;<MIN>;IGNORE +<U0D13> <mlvw-o>;<BAS>;<MIN>;IGNORE +<U0D14> <mlvw-au>;<BAS>;<MIN>;IGNORE +<ml-chillu-k> "<ml-ka><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D15> "<ml-ka><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-kh> "<ml-kha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D16> "<ml-kha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-g> "<ml-ga><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D17> "<ml-ga><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-gh> "<ml-gha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D18> "<ml-gha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ng> "<ml-nga><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D19> "<ml-nga><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ch> "<ml-cha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1A> "<ml-cha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-chh> "<ml-chha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1B> "<ml-chha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-j> "<ml-ja><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1C> "<ml-ja><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-jh> "<ml-jha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1D> "<ml-jha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ny> "<ml-nya><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1E> "<ml-nya><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-t> "<ml-ta><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D1F> "<ml-ta><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-tt> "<ml-tta><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D20> "<ml-tta><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-d> "<ml-da><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D21> "<ml-da><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-dh> "<ml-dha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D22> "<ml-dha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-chillu-nn> "<ml-nna><ml-virama>";<BAS>;<MIN>;IGNORE # ണ് = ണ + ് + zwj +<U0D23> "<ml-nna><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ണ = ണ + ് + അ +<ml-th> "<ml-tha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D24> "<ml-tha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-thh> "<ml-thha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D25> "<ml-thha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-dd> "<ml-dda><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D26> "<ml-dda><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ddh> "<ml-ddha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D27> "<ml-ddha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-chillu-n> "<ml-chillu-n>";<BAS>;<MIN>;IGNORE # ന്= ന + ് + zwj +<U0D28> "<ml-chillu-n><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE #ന = ന + ് + അ +<ml-p> "<ml-pa><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D2A> "<ml-pa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ph> "<ml-pha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D2B> "<ml-pha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-b> "<ml-ba><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D2C> "<ml-ba><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-bh> "<ml-bha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D2D> "<ml-bha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<U0D02> "<ml-ma><ml-virama>";<BAS>;<MIN>;IGNORE # ം = മ + ് +<ml-m> "<ml-ma><ml-virama>";"<BAS><ml-virama>";<MIN>;IGNORE # ം = മ + ് +<U0D2E> "<ml-ma><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # മ = മ + ് + അ +<ml-y> "<ml-ya><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D2F> "<ml-ya><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-chillu-r> "<ml-ra><ml-virama>";<BAS>;<MIN>;IGNORE # ര = ര + ് + zwj +<U0D30> "<ml-ra><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ര = ര + ് + അ +<ml-chillu-l> <ml-la>;<BAS>;<MIN>;IGNORE # ല് = ല + ് + zwj +<U0D32> "<ml-la><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ല = ല + ് + അ +<ml-v> "<ml-va><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D35> "<ml-va><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-ss> "<ml-ssa><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D37> "<ml-ssa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-sh> "<ml-sha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D36> "<ml-sha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-s> "<ml-sa><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D38> "<ml-sa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-h> "<ml-ha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D39> "<ml-ha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-chillu-ll> "<ml-lla><ml-virama>";<BAS>;<MIN>;IGNORE # ള് = ള + ് + zwj +<U0D33> "<ml-lla><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ള = ള + ് + അ +<ml-zh> "<ml-zha><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D34> "<ml-zha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<ml-rr> "<ml-rra><ml-virama>";<BAS>;<MIN>;IGNORE +<U0D31> "<ml-rra><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE +<U0D3D> <ml-avagrah>;<BAS>;<MIN>;IGNORE +<U0D3E> <mlvs-aa>;<BAS>;<MIN>;IGNORE +<U0D3F> <mlvs-i>;<BAS>;<MIN>;IGNORE +<U0D40> <mlvs-ii>;<BAS>;<MIN>;IGNORE +<ml-samvruthokaram> <mlvs-u>;<BAS>;<MIN>;IGNORE +<U0D41> <mlvs-u>;"<BAS><ml-samvruthokaram>";<MIN>;IGNORE # sort it after samvruthokaram +<U0D42> <mlvs-uu>;<BAS>;<MIN>;IGNORE +<U0D43> <mlvs-vocalicr>;<BAS>;<MIN>;IGNORE +<U0D44> <mlvs-vocalicrr>;<BAS>;<MIN>;IGNORE +<U0D62> <mlvs-vocalicl>;<BAS>;<MIN>;IGNORE +<U0D63> <mlvs-vocalicll>;<BAS>;<MIN>;IGNORE +<U0D46> <mlvs-shorte>;<BAS>;<MIN>;IGNORE +<U0D47> <mlvs-e>;<BAS>;<MIN>;IGNORE +<U0D48> <mlvs-ai>;<BAS>;<MIN>;IGNORE +<U0D4A> <mlvs-shorto>;<BAS>;<MIN>;IGNORE +<U0D4B> <mlvs-o>;<BAS>;<MIN>;IGNORE +<U0D4C> <mlvs-au>;<BAS>;<MIN>;IGNORE +<U0D57> <mlvs-au>;<BAS>;<MIN>;IGNORE +<U0D4D> <ml-virama>;<BAS>;<MIN>;IGNORE +<U0D03> <ml-visarga>;<BAS>;<MIN>;IGNORE +<ml-split-o> <mlvs-shorto>;<BAS>;<MIN>;IGNORE +<ml-split-oo> <mlvs-o>;<BAS>;<MIN>;IGNORE +<ml-split-au> <mlvs-au>;<BAS>;<MIN>;IGNORE + order_end END LC_COLLATE diff --git a/libc/localedata/locales/sv_FI b/libc/localedata/locales/sv_FI index bdda16d44..af9ec123e 100644 --- a/libc/localedata/locales/sv_FI +++ b/libc/localedata/locales/sv_FI @@ -97,14 +97,16 @@ mon "<U006A><U0061><U006E><U0075><U0061><U0072><U0069>";/ "<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/ "<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/ "<U0064><U0065><U0063><U0065><U006D><U0062><U0065><U0072>" -d_t_fmt "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>" -d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>" +d_t_fmt "<U0025><U0061><U0020><U0025><U0065><U002E><U0020><U0025><U0042>/ +<U0074><U0061><U0020><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/ +<U004D><U002E><U0025><U0053>" +d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>" t_fmt "<U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>" am_pm "";"" t_fmt_ampm "" -date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ -<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ -<U0025><U005A><U0020><U0025><U0059>" +date_fmt "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0025>/ +<U002D><U006D><U002E><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/ +<U004D><U002E><U0025><U0053><U0020><U0025><U007A>" END LC_TIME LC_PAPER diff --git a/libc/malloc/arena.c b/libc/malloc/arena.c index 9932ee049..cc03dc4a5 100644 --- a/libc/malloc/arena.c +++ b/libc/malloc/arena.c @@ -223,7 +223,7 @@ free_atfork(Void_t* mem, const Void_t *caller) tsd_getspecific(arena_key, vptr); if(vptr != ATFORK_ARENA_PTR) (void)mutex_lock(&ar_ptr->mutex); - _int_free(ar_ptr, mem); + _int_free(ar_ptr, p); if(vptr != ATFORK_ARENA_PTR) (void)mutex_unlock(&ar_ptr->mutex); } diff --git a/libc/malloc/hooks.c b/libc/malloc/hooks.c index c88937665..9659ec5fb 100644 --- a/libc/malloc/hooks.c +++ b/libc/malloc/hooks.c @@ -1,5 +1,5 @@ /* Malloc implementation for multiple threads without lock contention. - Copyright (C) 2001-2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2001-2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Wolfram Gloger <wg@malloc.de>, 2001. @@ -293,7 +293,7 @@ free_check(mem, caller) Void_t* mem; const Void_t *caller; #if 0 /* Erase freed memory. */ memset(mem, 0, chunksize(p) - (SIZE_SZ+1)); #endif - _int_free(&main_arena, mem); + _int_free(&main_arena, p); (void)mutex_unlock(&main_arena.mutex); } @@ -305,8 +305,7 @@ realloc_check(oldmem, bytes, caller) Void_t* oldmem; size_t bytes; const Void_t *caller; #endif { - mchunkptr oldp; - INTERNAL_SIZE_T nb, oldsize; + INTERNAL_SIZE_T nb; Void_t* newmem = 0; unsigned char *magic_p; @@ -320,13 +319,13 @@ realloc_check(oldmem, bytes, caller) return NULL; } (void)mutex_lock(&main_arena.mutex); - oldp = mem2chunk_check(oldmem, &magic_p); + const mchunkptr oldp = mem2chunk_check(oldmem, &magic_p); (void)mutex_unlock(&main_arena.mutex); if(!oldp) { malloc_printerr(check_action, "realloc(): invalid pointer", oldmem); return malloc_check(bytes, NULL); } - oldsize = chunksize(oldp); + const INTERNAL_SIZE_T oldsize = chunksize(oldp); checked_request2size(bytes+1, nb); (void)mutex_lock(&main_arena.mutex); @@ -355,8 +354,11 @@ realloc_check(oldmem, bytes, caller) } } else { #endif /* HAVE_MMAP */ - if (top_check() >= 0) - newmem = _int_realloc(&main_arena, oldmem, bytes+1); + if (top_check() >= 0) { + INTERNAL_SIZE_T nb; + checked_request2size(bytes + 1, nb); + newmem = _int_realloc(&main_arena, oldp, nb); + } #if 0 /* Erase freed memory. */ if(newmem) newp = mem2chunk(newmem); @@ -470,7 +472,7 @@ free_starter(mem, caller) Void_t* mem; const Void_t *caller; return; } #endif - _int_free(&main_arena, mem); + _int_free(&main_arena, p); } # endif /* !defiend NO_STARTER */ diff --git a/libc/malloc/malloc.c b/libc/malloc/malloc.c index a91893474..12e23b0f9 100644 --- a/libc/malloc/malloc.c +++ b/libc/malloc/malloc.c @@ -1581,11 +1581,11 @@ typedef struct malloc_chunk* mchunkptr; #if __STD_C -Void_t* _int_malloc(mstate, size_t); -void _int_free(mstate, Void_t*); -Void_t* _int_realloc(mstate, Void_t*, size_t); -Void_t* _int_memalign(mstate, size_t, size_t); -Void_t* _int_valloc(mstate, size_t); +static Void_t* _int_malloc(mstate, size_t); +static void _int_free(mstate, mchunkptr); +static Void_t* _int_realloc(mstate, mchunkptr, INTERNAL_SIZE_T); +static Void_t* _int_memalign(mstate, size_t, size_t); +static Void_t* _int_valloc(mstate, size_t); static Void_t* _int_pvalloc(mstate, size_t); /*static Void_t* cALLOc(size_t, size_t);*/ #ifndef _LIBC @@ -1632,12 +1632,12 @@ static void free_atfork(Void_t* mem, const Void_t *caller); #else -Void_t* _int_malloc(); -void _int_free(); -Void_t* _int_realloc(); -Void_t* _int_memalign(); -Void_t* _int_valloc(); -Void_t* _int_pvalloc(); +static Void_t* _int_malloc(); +static void _int_free(); +static Void_t* _int_realloc(); +static Void_t* _int_memalign(); +static Void_t* _int_valloc(); +static Void_t* _int_pvalloc(); /*static Void_t* cALLOc();*/ static Void_t** _int_icalloc(); static Void_t** _int_icomalloc(); @@ -3084,7 +3084,7 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av; set_head(chunk_at_offset(old_top, old_size), (2*SIZE_SZ)|PREV_INUSE); set_foot(chunk_at_offset(old_top, old_size), (2*SIZE_SZ)); set_head(old_top, old_size|PREV_INUSE|NON_MAIN_ARENA); - _int_free(av, chunk2mem(old_top)); + _int_free(av, old_top); } else { set_head(old_top, (old_size + 2*SIZE_SZ)|PREV_INUSE); set_foot(old_top, (old_size + 2*SIZE_SZ)); @@ -3131,7 +3131,7 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av; if (brk != (char*)(MORECORE_FAILURE)) { /* Call the `morecore' hook if necessary. */ - if (__after_morecore_hook) + if (__builtin_expect (__after_morecore_hook != NULL, 0)) (*__after_morecore_hook) (); } else { /* @@ -3270,7 +3270,7 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av; snd_brk = (char*)(MORECORE(0)); } else /* Call the `morecore' hook if necessary. */ - if (__after_morecore_hook) + if (__builtin_expect (__after_morecore_hook != NULL, 0)) (*__after_morecore_hook) (); } @@ -3323,7 +3323,7 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av; /* If possible, release the rest. */ if (old_size >= MINSIZE) { - _int_free(av, chunk2mem(old_top)); + _int_free(av, old_top); } } @@ -3415,7 +3415,7 @@ static int sYSTRIm(pad, av) size_t pad; mstate av; MORECORE(-extra); /* Call the `morecore' hook if necessary. */ - if (__after_morecore_hook) + if (__builtin_expect (__after_morecore_hook != NULL, 0)) (*__after_morecore_hook) (); new_brk = (char*)(MORECORE(0)); @@ -3542,7 +3542,7 @@ public_mALLOc(size_t bytes) Void_t *victim; __malloc_ptr_t (*hook) (size_t, __const __malloc_ptr_t) = __malloc_hook; - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) return (*hook)(bytes, RETURN_ADDRESS (0)); arena_get(ar_ptr, bytes); @@ -3585,7 +3585,7 @@ public_fREe(Void_t* mem) mchunkptr p; /* chunk corresponding to mem */ void (*hook) (__malloc_ptr_t, __const __malloc_ptr_t) = __free_hook; - if (hook != NULL) { + if (__builtin_expect (hook != NULL, 0)) { (*hook)(mem, RETURN_ADDRESS (0)); return; } @@ -3622,7 +3622,7 @@ public_fREe(Void_t* mem) #else (void)mutex_lock(&ar_ptr->mutex); #endif - _int_free(ar_ptr, mem); + _int_free(ar_ptr, p); (void)mutex_unlock(&ar_ptr->mutex); } #ifdef libc_hidden_def @@ -3635,14 +3635,11 @@ public_rEALLOc(Void_t* oldmem, size_t bytes) mstate ar_ptr; INTERNAL_SIZE_T nb; /* padded request size */ - mchunkptr oldp; /* chunk corresponding to oldmem */ - INTERNAL_SIZE_T oldsize; /* its size */ - Void_t* newp; /* chunk to return */ __malloc_ptr_t (*hook) (__malloc_ptr_t, size_t, __const __malloc_ptr_t) = __realloc_hook; - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) return (*hook)(oldmem, bytes, RETURN_ADDRESS (0)); #if REALLOC_ZERO_BYTES_FREES @@ -3652,8 +3649,10 @@ public_rEALLOc(Void_t* oldmem, size_t bytes) /* realloc of null is supposed to be same as malloc */ if (oldmem == 0) return public_mALLOc(bytes); - oldp = mem2chunk(oldmem); - oldsize = chunksize(oldp); + /* chunk corresponding to oldmem */ + const mchunkptr oldp = mem2chunk(oldmem); + /* its size */ + const INTERNAL_SIZE_T oldsize = chunksize(oldp); /* Little security check which won't hurt performance: the allocator never wrapps around at the end of the address space. @@ -3705,7 +3704,7 @@ public_rEALLOc(Void_t* oldmem, size_t bytes) tsd_setspecific(arena_key, (Void_t *)ar_ptr); #endif - newp = _int_realloc(ar_ptr, oldmem, bytes); + newp = _int_realloc(ar_ptr, oldp, nb); (void)mutex_unlock(&ar_ptr->mutex); assert(!newp || chunk_is_mmapped(mem2chunk(newp)) || @@ -3728,7 +3727,7 @@ public_rEALLOc(Void_t* oldmem, size_t bytes) #else (void)mutex_lock(&ar_ptr->mutex); #endif - _int_free(ar_ptr, oldmem); + _int_free(ar_ptr, oldp); (void)mutex_unlock(&ar_ptr->mutex); } } @@ -3748,7 +3747,7 @@ public_mEMALIGn(size_t alignment, size_t bytes) __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t, __const __malloc_ptr_t)) = __memalign_hook; - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) return (*hook)(alignment, bytes, RETURN_ADDRESS (0)); /* If need less alignment than we give anyway, just relay to malloc */ @@ -3805,7 +3804,7 @@ public_vALLOc(size_t bytes) __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t, __const __malloc_ptr_t)) = __memalign_hook; - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) return (*hook)(pagesz, bytes, RETURN_ADDRESS (0)); arena_get(ar_ptr, bytes + pagesz + MINSIZE); @@ -3852,7 +3851,7 @@ public_pVALLOc(size_t bytes) __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t, __const __malloc_ptr_t)) = __memalign_hook; - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) return (*hook)(pagesz, rounded_bytes, RETURN_ADDRESS (0)); arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE); @@ -3906,7 +3905,7 @@ public_cALLOc(size_t n, size_t elem_size) } } - if (hook != NULL) { + if (__builtin_expect (hook != NULL, 0)) { sz = bytes; mem = (*hook)(sz, RETURN_ADDRESS (0)); if(mem == 0) @@ -4125,7 +4124,7 @@ public_mALLOPt(int p, int v) ------------------------------ malloc ------------------------------ */ -Void_t* +static Void_t* _int_malloc(mstate av, size_t bytes) { INTERNAL_SIZE_T nb; /* normalized request size */ @@ -4589,10 +4588,9 @@ _int_malloc(mstate av, size_t bytes) ------------------------------ free ------------------------------ */ -void -_int_free(mstate av, Void_t* mem) +static void +_int_free(mstate av, mchunkptr p) { - mchunkptr p; /* chunk corresponding to mem */ INTERNAL_SIZE_T size; /* its size */ mfastbinptr* fb; /* associated fastbin */ mchunkptr nextchunk; /* next contiguous chunk */ @@ -4604,7 +4602,6 @@ _int_free(mstate av, Void_t* mem) const char *errstr = NULL; - p = mem2chunk(mem); size = chunksize(p); /* Little security check which won't hurt performance: the @@ -4616,7 +4613,7 @@ _int_free(mstate av, Void_t* mem) { errstr = "free(): invalid pointer"; errout: - malloc_printerr (check_action, errstr, mem); + malloc_printerr (check_action, errstr, chunk2mem(p)); return; } /* We know that each chunk is at least MINSIZE bytes in size. */ @@ -4663,7 +4660,7 @@ _int_free(mstate av, Void_t* mem) } if (__builtin_expect (perturb_byte, 0)) - free_perturb (mem, size - SIZE_SZ); + free_perturb (chunk2mem(p), size - SIZE_SZ); p->fd = *fb; *fb = p; @@ -4707,7 +4704,7 @@ _int_free(mstate av, Void_t* mem) } if (__builtin_expect (perturb_byte, 0)) - free_perturb (mem, size - SIZE_SZ); + free_perturb (chunk2mem(p), size - SIZE_SZ); /* consolidate backward */ if (!prev_inuse(p)) { @@ -4943,13 +4940,8 @@ static void malloc_consolidate(av) mstate av; */ Void_t* -_int_realloc(mstate av, Void_t* oldmem, size_t bytes) +_int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T nb) { - INTERNAL_SIZE_T nb; /* padded request size */ - - mchunkptr oldp; /* chunk corresponding to oldmem */ - INTERNAL_SIZE_T oldsize; /* its size */ - mchunkptr newp; /* chunk to return */ INTERNAL_SIZE_T newsize; /* its size */ Void_t* newmem; /* corresponding user mem */ @@ -4969,20 +4961,18 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) const char *errstr = NULL; - - checked_request2size(bytes, nb); - - oldp = mem2chunk(oldmem); - oldsize = chunksize(oldp); - /* Simple tests for old block integrity. */ if (__builtin_expect (misaligned_chunk (oldp), 0)) { errstr = "realloc(): invalid pointer"; errout: - malloc_printerr (check_action, errstr, oldmem); + malloc_printerr (check_action, errstr, chunk2mem(oldp)); return NULL; } + + /* oldmem size */ + const INTERNAL_SIZE_T oldsize = chunksize(oldp); + if (__builtin_expect (oldp->size <= 2 * SIZE_SZ, 0) || __builtin_expect (oldsize >= av->system_mem, 0)) { @@ -5054,7 +5044,7 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) */ copysize = oldsize - SIZE_SZ; - s = (INTERNAL_SIZE_T*)(oldmem); + s = (INTERNAL_SIZE_T*)(chunk2mem(oldp)); d = (INTERNAL_SIZE_T*)(newmem); ncopies = copysize / sizeof(INTERNAL_SIZE_T); assert(ncopies >= 3); @@ -5080,7 +5070,7 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) } } - _int_free(av, oldmem); + _int_free(av, oldp); check_inuse_chunk(av, newp); return chunk2mem(newp); } @@ -5104,7 +5094,7 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) (av != &main_arena ? NON_MAIN_ARENA : 0)); /* Mark remainder as inuse so free() won't complain */ set_inuse_bit_at_offset(remainder, remainder_size); - _int_free(av, chunk2mem(remainder)); + _int_free(av, remainder); } check_inuse_chunk(av, newp); @@ -5129,7 +5119,7 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) /* don't need to remap if still within same page */ if (oldsize == newsize - offset) - return oldmem; + return chunk2mem(oldp); cp = (char*)mremap((char*)oldp - offset, oldsize + offset, newsize, 1); @@ -5157,13 +5147,13 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) /* Note the extra SIZE_SZ overhead. */ if ((unsigned long)(oldsize) >= (unsigned long)(nb + SIZE_SZ)) - newmem = oldmem; /* do nothing */ + newmem = chunk2mem(oldp); /* do nothing */ else { /* Must alloc, copy, free. */ newmem = _int_malloc(av, nb - MALLOC_ALIGN_MASK); if (newmem != 0) { - MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ); - _int_free(av, oldmem); + MALLOC_COPY(newmem, chunk2mem(oldp), oldsize - 2*SIZE_SZ); + _int_free(av, oldp); } } return newmem; @@ -5181,7 +5171,7 @@ _int_realloc(mstate av, Void_t* oldmem, size_t bytes) ------------------------------ memalign ------------------------------ */ -Void_t* +static Void_t* _int_memalign(mstate av, size_t alignment, size_t bytes) { INTERNAL_SIZE_T nb; /* padded request size */ @@ -5257,7 +5247,7 @@ _int_memalign(mstate av, size_t alignment, size_t bytes) (av != &main_arena ? NON_MAIN_ARENA : 0)); set_inuse_bit_at_offset(newp, newsize); set_head_size(p, leadsize | (av != &main_arena ? NON_MAIN_ARENA : 0)); - _int_free(av, chunk2mem(p)); + _int_free(av, p); p = newp; assert (newsize >= nb && @@ -5273,7 +5263,7 @@ _int_memalign(mstate av, size_t alignment, size_t bytes) set_head(remainder, remainder_size | PREV_INUSE | (av != &main_arena ? NON_MAIN_ARENA : 0)); set_head_size(p, nb); - _int_free(av, chunk2mem(remainder)); + _int_free(av, remainder); } } @@ -5514,7 +5504,7 @@ mstate av; size_t n_elements; size_t* sizes; int opts; Void_t* chunks[]; ------------------------------ valloc ------------------------------ */ -Void_t* +static Void_t* #if __STD_C _int_valloc(mstate av, size_t bytes) #else @@ -5531,7 +5521,7 @@ _int_valloc(av, bytes) mstate av; size_t bytes; */ -Void_t* +static Void_t* #if __STD_C _int_pvalloc(mstate av, size_t bytes) #else @@ -6020,7 +6010,7 @@ __posix_memalign (void **memptr, size_t alignment, size_t size) /* Call the hook here, so that caller is posix_memalign's caller and not posix_memalign itself. */ - if (hook != NULL) + if (__builtin_expect (hook != NULL, 0)) mem = (*hook)(alignment, size, RETURN_ADDRESS (0)); else mem = public_mEMALIGn (alignment, size); diff --git a/libc/malloc/memusage.c b/libc/malloc/memusage.c index d11e9e6ed..fcd58dc68 100644 --- a/libc/malloc/memusage.c +++ b/libc/malloc/memusage.c @@ -1,5 +1,5 @@ /* Profile heap and stack memory usage of running program. - Copyright (C) 1998-2002, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1998-2002, 2004-2006, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -18,6 +18,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <assert.h> #include <atomic.h> #include <dlfcn.h> #include <errno.h> @@ -92,7 +93,7 @@ static __thread uintptr_t start_sp; #define peak_stack peak_use[1] #define peak_total peak_use[2] -#define DEFAULT_BUFFER_SIZE 1024 +#define DEFAULT_BUFFER_SIZE 32768 static size_t buffer_size; static int fd = -1; @@ -168,10 +169,11 @@ update_data (struct header *result, size_t len, size_t old_len) this fails because of another thread increasing the counter it does not matter since that thread will take care of the correction. */ - unsigned int reset = idx - 2 * buffer_size; - catomic_compare_and_exchange_val_acq (&buffer_size, reset, idx); + uatomic32_t reset = idx % (2 * buffer_size); + catomic_compare_and_exchange_val_acq (&buffer_cnt, reset, idx); idx = reset; } + assert (idx < 2 * DEFAULT_BUFFER_SIZE); buffer[idx].heap = current_heap; buffer[idx].stack = current_stack; diff --git a/libc/malloc/memusage.sh b/libc/malloc/memusage.sh index 7f1ac186e..d99676611 100755 --- a/libc/malloc/memusage.sh +++ b/libc/malloc/memusage.sh @@ -61,7 +61,8 @@ Profile memory usage of PROGRAM. Mandatory arguments to long options are also mandatory for any corresponding short options. -For bug reporting instructions, please see: +" + printf $"For bug reporting instructions, please see: %s. " "@REPORT_BUGS_TO@" exit 0 diff --git a/libc/malloc/memusagestat.c b/libc/malloc/memusagestat.c index 63961d9fa..a7b27df77 100644 --- a/libc/malloc/memusagestat.c +++ b/libc/malloc/memusagestat.c @@ -1,5 +1,6 @@ /* Generate graphic from memory profiling data. - Copyright (C) 1998, 1999, 2000, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2005, 2006, + 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -39,6 +40,7 @@ #include <gdfonts.h> #include "../version.h" +#define PACKAGE _libc_intl_domainname /* Default size of the generated image. */ #define XSIZE 800 @@ -547,6 +549,6 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2008"); +"), "2009"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/libc/nptl_db/ChangeLog b/libc/nptl_db/ChangeLog index af819c301..5166d3df6 100644 --- a/libc/nptl_db/ChangeLog +++ b/libc/nptl_db/ChangeLog @@ -1,3 +1,8 @@ +2009-02-06 Ulrich Drepper <drepper@redhat.com> + + * td_thr_get_info.c (td_thr_get_info): Initialize schedpolicy in + the special case [Coverity CID 251]. + 2008-03-25 Roland McGrath <roland@redhat.com> [BZ #5983] diff --git a/libc/nptl_db/td_thr_get_info.c b/libc/nptl_db/td_thr_get_info.c index 99e5e19bf..52985603b 100644 --- a/libc/nptl_db/td_thr_get_info.c +++ b/libc/nptl_db/td_thr_get_info.c @@ -1,5 +1,5 @@ /* Get thread information. - Copyright (C) 1999,2000,2001,2002,2003,2007 Free Software Foundation, Inc. + Copyright (C) 1999-2003,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 1999. @@ -38,6 +38,7 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop) copy = NULL; tls = 0; cancelhandling = 0; + schedpolicy = SCHED_OTHER; schedprio = 0; tid = 0; err = DB_GET_VALUE (report_events, th->th_ta_p, diff --git a/libc/nscd/nscd.c b/libc/nscd/nscd.c index db45e709c..31497e083 100644 --- a/libc/nscd/nscd.c +++ b/libc/nscd/nscd.c @@ -91,6 +91,9 @@ static int write_pid (const char *file); static void print_version (FILE *stream, struct argp_state *state); void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = { @@ -109,9 +112,7 @@ static const struct argp_option options[] = }; /* Short description of program. */ -static const char doc[] = N_("Name Service Cache Daemon.\v\ -For bug reporting instructions, please see:\n\ -"REPORT_BUGS_TO".\n"); +static const char doc[] = N_("Name Service Cache Daemon."); /* Prototype for option handler. */ static error_t parse_opt (int key, char *arg, struct argp_state *state); @@ -119,7 +120,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state); /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, NULL, doc, + options, parse_opt, NULL, doc, NULL, more_help }; /* True if only statistics are requested. */ @@ -403,6 +404,26 @@ parse_opt (int key, char *arg, struct argp_state *state) return 0; } +/* Print bug-reporting information in the help message. */ +static char * +more_help (int key, const char *text, void *input) +{ + char *tp = NULL; + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; + default: + break; + } + return (char *) text; +} + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) diff --git a/libc/nss/getent.c b/libc/nss/getent.c index af9be403a..ea6efbce2 100644 --- a/libc/nss/getent.c +++ b/libc/nss/getent.c @@ -60,9 +60,7 @@ static const struct argp_option args_options[] = }; /* Short description of program. */ -static const char doc[] = N_("Get entries from administrative database.\v\ -For bug reporting instructions, please see:\n\ -"REPORT_BUGS_TO".\n"); +static const char doc[] = N_("Get entries from administrative database."); /* Prototype for option handler. */ static error_t parse_option (int key, char *arg, struct argp_state *state); @@ -861,6 +859,12 @@ more_help (int key, const char *text, void *input) col += len + 1; } + fputs ("\n\n", fp); + + fprintf (fp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO); + if (fclose (fp) == 0) return doc; } diff --git a/libc/po/Makefile b/libc/po/Makefile index 11f92adee..4ac253e3d 100644 --- a/libc/po/Makefile +++ b/libc/po/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996,1997,1998,1999,2001,2002,2006,2007 +# Copyright (C) 1996-1999,2001,2002,2006,2007,2009 # Free Software Foundation, Inc. # This file is part of the GNU C Library. @@ -64,6 +64,7 @@ libc.pot: header.pot libc.pot.files $< > $@.new cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \ --add-comments=TRANS --flag=error:3:c-format \ + --flag=f_print:2:c-format \ --sort-by-file --omit-header -E -n -d - \ -f po/$(word 2,$^) >> po/$@.new mv -f $@.new $@ diff --git a/libc/po/libc.pot b/libc/po/libc.pot index a4ae24fd1..71d425fc5 100644 --- a/libc/po/libc.pot +++ b/libc/po/libc.pot @@ -5,8 +5,8 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: libc 2.7.90\n" -"POT-Creation-Date: 2008-04-09 08:07-0700\n" +"Project-Id-Version: libc 2.9.90\n" +"POT-Creation-Date: 2009-02-06 12:40-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -100,7 +100,7 @@ msgstr "" msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" msgstr "" -#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:97 nss/makedb.c:61 +#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:100 nss/makedb.c:61 msgid "NAME" msgstr "" @@ -129,20 +129,27 @@ msgid "" "[OUTPUT-FILE [INPUT-FILE]...]" msgstr "" -#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:408 -#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371 -#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231 +#: catgets/gencat.c:232 debug/pcprofiledump.c:208 debug/xtrace.sh:58 +#: elf/ldconfig.c:302 elf/ldd.bash.in:56 elf/sln.c:86 elf/sprof.c:360 +#: iconv/iconv_prog.c:408 iconv/iconvconfig.c:380 locale/programs/locale.c:278 +#: locale/programs/localedef.c:371 login/programs/pt_chown.c:88 +#: malloc/memusage.sh:65 malloc/memusagestat.c:533 nscd/nscd.c:415 +#: nss/getent.c:842 nss/makedb.c:231 posix/getconf.c:1030 +#: sunrpc/rpc_main.c:1494 sunrpc/rpcinfo.c:699 +#: sysdeps/unix/sysv/linux/lddlibc4.c:62 +#, c-format msgid "" "For bug reporting instructions, please see:\n" "<http://www.gnu.org/software/libc/bugs.html>.\n" msgstr "" -#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:296 -#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:423 -#: iconv/iconvconfig.c:395 locale/programs/locale.c:275 +#: catgets/gencat.c:246 debug/pcprofiledump.c:222 debug/xtrace.sh:66 +#: elf/ldconfig.c:316 elf/ldd.bash.in:39 elf/sprof.c:375 +#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:395 locale/programs/locale.c:293 #: locale/programs/localedef.c:387 login/programs/pt_chown.c:59 -#: malloc/memusage.sh:71 nscd/nscd.c:406 nss/getent.c:83 nss/makedb.c:245 -#: posix/getconf.c:1012 +#: malloc/memusage.sh:73 malloc/memusagestat.c:551 nscd/nscd.c:429 +#: nss/getent.c:81 nss/makedb.c:245 posix/getconf.c:1012 +#: sysdeps/unix/sysv/linux/lddlibc4.c:69 #, c-format msgid "" "Copyright (C) %s Free Software Foundation, Inc.\n" @@ -150,10 +157,12 @@ msgid "" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:301 elf/sprof.c:361 -#: iconv/iconv_prog.c:428 iconv/iconvconfig.c:400 locale/programs/locale.c:280 -#: locale/programs/localedef.c:392 malloc/memusage.sh:75 nscd/nscd.c:411 -#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1017 +#: catgets/gencat.c:251 debug/pcprofiledump.c:227 debug/xtrace.sh:70 +#: elf/ldconfig.c:321 elf/sprof.c:381 iconv/iconv_prog.c:428 +#: iconv/iconvconfig.c:400 locale/programs/locale.c:298 +#: locale/programs/localedef.c:392 malloc/memusage.sh:77 +#: malloc/memusagestat.c:556 nscd/nscd.c:434 nss/getent.c:86 nss/makedb.c:250 +#: posix/getconf.c:1017 #, c-format msgid "Written by %s.\n" msgstr "" @@ -254,17 +263,17 @@ msgstr "" msgid "[FILE]" msgstr "" -#: debug/pcprofiledump.c:104 +#: debug/pcprofiledump.c:108 #, c-format msgid "cannot open input file" msgstr "" -#: debug/pcprofiledump.c:111 +#: debug/pcprofiledump.c:115 #, c-format msgid "cannot read header" msgstr "" -#: debug/pcprofiledump.c:175 +#: debug/pcprofiledump.c:179 #, c-format msgid "invalid pointer size" msgstr "" @@ -296,24 +305,22 @@ msgid "" "corresponding\n" "short options.\n" "\n" -"For bug reporting instructions, please see:\n" -"<http://www.gnu.org/software/libc/bugs.html>.\\n" msgstr "" -#: debug/xtrace.sh:125 +#: debug/xtrace.sh:127 msgid "xtrace: unrecognized option \\`$1'\\n" msgstr "" -#: debug/xtrace.sh:138 +#: debug/xtrace.sh:140 msgid "No program name given\\n" msgstr "" -#: debug/xtrace.sh:146 +#: debug/xtrace.sh:148 #, sh-format msgid "executable \\`$program' not found\\n" msgstr "" -#: debug/xtrace.sh:150 +#: debug/xtrace.sh:152 #, sh-format msgid "\\`$program' is no executable\\n" msgstr "" @@ -334,7 +341,7 @@ msgstr "" msgid "invalid mode" msgstr "" -#: dlfcn/dlopen.c:64 +#: dlfcn/dlopen.c:65 msgid "invalid mode parameter" msgstr "" @@ -351,7 +358,7 @@ msgstr "" msgid ", OS ABI: %s %d.%d.%d" msgstr "" -#: elf/cache.c:134 elf/ldconfig.c:1269 +#: elf/cache.c:134 elf/ldconfig.c:1289 #, c-format msgid "Can't open cache file %s\n" msgstr "" @@ -470,11 +477,11 @@ msgstr "" msgid "cannot open zero fill device" msgstr "" -#: elf/dl-load.c:979 elf/dl-load.c:2224 +#: elf/dl-load.c:979 elf/dl-load.c:2215 msgid "cannot create shared object descriptor" msgstr "" -#: elf/dl-load.c:998 elf/dl-load.c:1656 elf/dl-load.c:1748 +#: elf/dl-load.c:998 elf/dl-load.c:1647 elf/dl-load.c:1739 msgid "cannot read file data" msgstr "" @@ -538,63 +545,59 @@ msgstr "" msgid "cannot close file descriptor" msgstr "" -#: elf/dl-load.c:1478 -msgid "cannot create searchlist" -msgstr "" - -#: elf/dl-load.c:1656 +#: elf/dl-load.c:1647 msgid "file too short" msgstr "" -#: elf/dl-load.c:1685 +#: elf/dl-load.c:1676 msgid "invalid ELF header" msgstr "" -#: elf/dl-load.c:1697 +#: elf/dl-load.c:1688 msgid "ELF file data encoding not big-endian" msgstr "" -#: elf/dl-load.c:1699 +#: elf/dl-load.c:1690 msgid "ELF file data encoding not little-endian" msgstr "" -#: elf/dl-load.c:1703 +#: elf/dl-load.c:1694 msgid "ELF file version ident does not match current one" msgstr "" -#: elf/dl-load.c:1707 +#: elf/dl-load.c:1698 msgid "ELF file OS ABI invalid" msgstr "" -#: elf/dl-load.c:1709 +#: elf/dl-load.c:1700 msgid "ELF file ABI version invalid" msgstr "" -#: elf/dl-load.c:1712 +#: elf/dl-load.c:1703 msgid "internal error" msgstr "" -#: elf/dl-load.c:1719 +#: elf/dl-load.c:1710 msgid "ELF file version does not match current one" msgstr "" -#: elf/dl-load.c:1727 +#: elf/dl-load.c:1718 msgid "only ET_DYN and ET_EXEC can be loaded" msgstr "" -#: elf/dl-load.c:1733 +#: elf/dl-load.c:1724 msgid "ELF file's phentsize not the expected size" msgstr "" -#: elf/dl-load.c:2240 +#: elf/dl-load.c:2231 msgid "wrong ELF class: ELFCLASS64" msgstr "" -#: elf/dl-load.c:2241 +#: elf/dl-load.c:2232 msgid "wrong ELF class: ELFCLASS32" msgstr "" -#: elf/dl-load.c:2244 +#: elf/dl-load.c:2235 msgid "cannot open shared object file" msgstr "" @@ -626,29 +629,29 @@ msgstr "" msgid "invalid target namespace in dlmopen()" msgstr "" -#: elf/dl-reloc.c:56 +#: elf/dl-reloc.c:121 msgid "cannot allocate memory in static TLS block" msgstr "" -#: elf/dl-reloc.c:198 +#: elf/dl-reloc.c:211 msgid "cannot make segment writable for relocation" msgstr "" -#: elf/dl-reloc.c:281 +#: elf/dl-reloc.c:277 #, c-format msgid "%s: no PLTREL found in object %s\n" msgstr "" -#: elf/dl-reloc.c:292 +#: elf/dl-reloc.c:288 #, c-format msgid "%s: out of memory to store relocation results for %s\n" msgstr "" -#: elf/dl-reloc.c:308 +#: elf/dl-reloc.c:304 msgid "cannot restore segment prot after reloc" msgstr "" -#: elf/dl-reloc.c:333 +#: elf/dl-reloc.c:329 msgid "cannot apply additional memory protection after relocation" msgstr "" @@ -656,11 +659,11 @@ msgstr "" msgid "RTLD_NEXT used in code not dynamically loaded" msgstr "" -#: elf/dl-sysdep.c:475 elf/dl-sysdep.c:487 +#: elf/dl-sysdep.c:481 elf/dl-sysdep.c:493 msgid "cannot create capability list" msgstr "" -#: elf/dl-tls.c:848 +#: elf/dl-tls.c:864 msgid "cannot create TLS data structures" msgstr "" @@ -668,222 +671,222 @@ msgstr "" msgid "cannot allocate version reference table" msgstr "" -#: elf/ldconfig.c:138 +#: elf/ldconfig.c:141 msgid "Print cache" msgstr "" -#: elf/ldconfig.c:139 +#: elf/ldconfig.c:142 msgid "Generate verbose messages" msgstr "" -#: elf/ldconfig.c:140 +#: elf/ldconfig.c:143 msgid "Don't build cache" msgstr "" -#: elf/ldconfig.c:141 +#: elf/ldconfig.c:144 msgid "Don't generate links" msgstr "" -#: elf/ldconfig.c:142 +#: elf/ldconfig.c:145 msgid "Change to and use ROOT as root directory" msgstr "" -#: elf/ldconfig.c:142 +#: elf/ldconfig.c:145 msgid "ROOT" msgstr "" -#: elf/ldconfig.c:143 +#: elf/ldconfig.c:146 msgid "CACHE" msgstr "" -#: elf/ldconfig.c:143 +#: elf/ldconfig.c:146 msgid "Use CACHE as cache file" msgstr "" -#: elf/ldconfig.c:144 +#: elf/ldconfig.c:147 msgid "CONF" msgstr "" -#: elf/ldconfig.c:144 +#: elf/ldconfig.c:147 msgid "Use CONF as configuration file" msgstr "" -#: elf/ldconfig.c:145 +#: elf/ldconfig.c:148 msgid "" "Only process directories specified on the command line. Don't build cache." msgstr "" -#: elf/ldconfig.c:146 +#: elf/ldconfig.c:149 msgid "Manually link individual libraries." msgstr "" -#: elf/ldconfig.c:147 +#: elf/ldconfig.c:150 msgid "FORMAT" msgstr "" -#: elf/ldconfig.c:147 +#: elf/ldconfig.c:150 msgid "Format to use: new, old or compat (default)" msgstr "" -#: elf/ldconfig.c:148 +#: elf/ldconfig.c:151 msgid "Ignore auxiliary cache file" msgstr "" -#: elf/ldconfig.c:156 +#: elf/ldconfig.c:159 msgid "Configure Dynamic Linker Run Time Bindings." msgstr "" -#: elf/ldconfig.c:319 +#: elf/ldconfig.c:339 #, c-format msgid "Path `%s' given more than once" msgstr "" -#: elf/ldconfig.c:359 +#: elf/ldconfig.c:379 #, c-format msgid "%s is not a known library type" msgstr "" -#: elf/ldconfig.c:384 +#: elf/ldconfig.c:404 #, c-format msgid "Can't stat %s" msgstr "" -#: elf/ldconfig.c:458 +#: elf/ldconfig.c:478 #, c-format msgid "Can't stat %s\n" msgstr "" -#: elf/ldconfig.c:468 +#: elf/ldconfig.c:488 #, c-format msgid "%s is not a symbolic link\n" msgstr "" -#: elf/ldconfig.c:487 +#: elf/ldconfig.c:507 #, c-format msgid "Can't unlink %s" msgstr "" -#: elf/ldconfig.c:493 +#: elf/ldconfig.c:513 #, c-format msgid "Can't link %s to %s" msgstr "" -#: elf/ldconfig.c:499 +#: elf/ldconfig.c:519 msgid " (changed)\n" msgstr "" -#: elf/ldconfig.c:501 +#: elf/ldconfig.c:521 msgid " (SKIPPED)\n" msgstr "" -#: elf/ldconfig.c:556 +#: elf/ldconfig.c:576 #, c-format msgid "Can't find %s" msgstr "" -#: elf/ldconfig.c:572 elf/ldconfig.c:745 elf/ldconfig.c:793 elf/ldconfig.c:827 +#: elf/ldconfig.c:592 elf/ldconfig.c:765 elf/ldconfig.c:813 elf/ldconfig.c:847 #, c-format msgid "Cannot lstat %s" msgstr "" -#: elf/ldconfig.c:579 +#: elf/ldconfig.c:599 #, c-format msgid "Ignored file %s since it is not a regular file." msgstr "" -#: elf/ldconfig.c:588 +#: elf/ldconfig.c:608 #, c-format msgid "No link created since soname could not be found for %s" msgstr "" -#: elf/ldconfig.c:671 +#: elf/ldconfig.c:691 #, c-format msgid "Can't open directory %s" msgstr "" -#: elf/ldconfig.c:759 +#: elf/ldconfig.c:779 #, c-format msgid "Cannot stat %s" msgstr "" -#: elf/ldconfig.c:814 elf/readlib.c:91 +#: elf/ldconfig.c:834 elf/readlib.c:91 #, c-format msgid "Input file %s not found.\n" msgstr "" -#: elf/ldconfig.c:888 +#: elf/ldconfig.c:908 #, c-format msgid "libc5 library %s in wrong directory" msgstr "" -#: elf/ldconfig.c:891 +#: elf/ldconfig.c:911 #, c-format msgid "libc6 library %s in wrong directory" msgstr "" -#: elf/ldconfig.c:894 +#: elf/ldconfig.c:914 #, c-format msgid "libc4 library %s in wrong directory" msgstr "" -#: elf/ldconfig.c:922 +#: elf/ldconfig.c:942 #, c-format msgid "" "libraries %s and %s in directory %s have same soname but different type." msgstr "" -#: elf/ldconfig.c:1031 +#: elf/ldconfig.c:1051 #, c-format msgid "Can't open configuration file %s" msgstr "" -#: elf/ldconfig.c:1095 +#: elf/ldconfig.c:1115 #, c-format msgid "%s:%u: bad syntax in hwcap line" msgstr "" -#: elf/ldconfig.c:1101 +#: elf/ldconfig.c:1121 #, c-format msgid "%s:%u: hwcap index %lu above maximum %u" msgstr "" -#: elf/ldconfig.c:1108 elf/ldconfig.c:1116 +#: elf/ldconfig.c:1128 elf/ldconfig.c:1136 #, c-format msgid "%s:%u: hwcap index %lu already defined as %s" msgstr "" -#: elf/ldconfig.c:1119 +#: elf/ldconfig.c:1139 #, c-format msgid "%s:%u: duplicate hwcap %lu %s" msgstr "" -#: elf/ldconfig.c:1141 +#: elf/ldconfig.c:1161 #, c-format msgid "need absolute file name for configuration file when using -r" msgstr "" -#: elf/ldconfig.c:1148 locale/programs/xmalloc.c:70 malloc/obstack.c:434 -#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1163 +#: elf/ldconfig.c:1168 locale/programs/xmalloc.c:70 malloc/obstack.c:434 +#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1177 #, c-format msgid "memory exhausted" msgstr "" -#: elf/ldconfig.c:1178 +#: elf/ldconfig.c:1198 #, c-format msgid "%s:%u: cannot read directory %s" msgstr "" -#: elf/ldconfig.c:1222 +#: elf/ldconfig.c:1242 #, c-format msgid "relative path `%s' used to build cache" msgstr "" -#: elf/ldconfig.c:1248 +#: elf/ldconfig.c:1268 #, c-format msgid "Can't chdir to /" msgstr "" -#: elf/ldconfig.c:1290 +#: elf/ldconfig.c:1310 #, c-format msgid "Can't open cache file directory %s\n" msgstr "" @@ -901,50 +904,48 @@ msgid "" " -r, --function-relocs process data and function relocations\n" " -u, --unused print unused direct dependencies\n" " -v, --verbose print all information\n" -"For bug reporting instructions, please see:\n" -"<http://www.gnu.org/software/libc/bugs.html>." msgstr "" -#: elf/ldd.bash.in:80 +#: elf/ldd.bash.in:82 msgid "ldd: option \\`$1' is ambiguous" msgstr "" -#: elf/ldd.bash.in:87 +#: elf/ldd.bash.in:89 msgid "unrecognized option" msgstr "" -#: elf/ldd.bash.in:88 elf/ldd.bash.in:126 +#: elf/ldd.bash.in:90 elf/ldd.bash.in:128 msgid "Try \\`ldd --help' for more information." msgstr "" -#: elf/ldd.bash.in:125 +#: elf/ldd.bash.in:127 msgid "missing file arguments" msgstr "" #. TRANS No such file or directory. This is a ``file doesn't exist'' error #. TRANS for ordinary files that are referenced in contexts where they are #. TRANS expected to already exist. -#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36 +#: elf/ldd.bash.in:150 sysdeps/gnu/errlist.c:36 msgid "No such file or directory" msgstr "" -#: elf/ldd.bash.in:151 inet/rcmd.c:483 +#: elf/ldd.bash.in:153 inet/rcmd.c:483 msgid "not regular file" msgstr "" -#: elf/ldd.bash.in:154 +#: elf/ldd.bash.in:156 msgid "warning: you do not have execution permission for" msgstr "" -#: elf/ldd.bash.in:183 +#: elf/ldd.bash.in:185 msgid "\tnot a dynamic executable" msgstr "" -#: elf/ldd.bash.in:191 +#: elf/ldd.bash.in:193 msgid "exited with unknown exit code" msgstr "" -#: elf/ldd.bash.in:196 +#: elf/ldd.bash.in:198 msgid "error: you do not have read permission for" msgstr "" @@ -1003,6 +1004,43 @@ msgstr "" msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" msgstr "" +#: elf/sln.c:85 +#, c-format +msgid "" +"Usage: sln src dest|file\n" +"\n" +msgstr "" + +#: elf/sln.c:110 +#, c-format +msgid "%s: file open error: %m\n" +msgstr "" + +#: elf/sln.c:147 +#, c-format +msgid "No target in line %d\n" +msgstr "" + +#: elf/sln.c:179 +#, c-format +msgid "%s: destination must not be a directory\n" +msgstr "" + +#: elf/sln.c:185 +#, c-format +msgid "%s: failed to remove the old destination\n" +msgstr "" + +#: elf/sln.c:193 +#, c-format +msgid "%s: invalid destination: %s\n" +msgstr "" + +#: elf/sln.c:208 elf/sln.c:217 +#, c-format +msgid "Invalid link from \"%s\" to \"%s\": %s\n" +msgstr "" + #: elf/sprof.c:77 msgid "Output selection:" msgstr "" @@ -1020,102 +1058,99 @@ msgid "generate call graph" msgstr "" #: elf/sprof.c:89 -msgid "" -"Read and display shared object profiling data.\vFor bug reporting " -"instructions, please see:\n" -"<http://www.gnu.org/software/libc/bugs.html>.\n" +msgid "Read and display shared object profiling data." msgstr "" #: elf/sprof.c:94 msgid "SHOBJ [PROFDATA]" msgstr "" -#: elf/sprof.c:400 +#: elf/sprof.c:420 #, c-format msgid "failed to load shared object `%s'" msgstr "" -#: elf/sprof.c:409 +#: elf/sprof.c:429 #, c-format msgid "cannot create internal descriptors" msgstr "" -#: elf/sprof.c:528 +#: elf/sprof.c:548 #, c-format msgid "Reopening shared object `%s' failed" msgstr "" -#: elf/sprof.c:535 elf/sprof.c:629 +#: elf/sprof.c:555 elf/sprof.c:649 #, c-format msgid "reading of section headers failed" msgstr "" -#: elf/sprof.c:543 elf/sprof.c:637 +#: elf/sprof.c:563 elf/sprof.c:657 #, c-format msgid "reading of section header string table failed" msgstr "" -#: elf/sprof.c:569 +#: elf/sprof.c:589 #, c-format msgid "*** Cannot read debuginfo file name: %m\n" msgstr "" -#: elf/sprof.c:589 +#: elf/sprof.c:609 #, c-format msgid "cannot determine file name" msgstr "" -#: elf/sprof.c:622 +#: elf/sprof.c:642 #, c-format msgid "reading of ELF header failed" msgstr "" -#: elf/sprof.c:658 +#: elf/sprof.c:678 #, c-format msgid "*** The file `%s' is stripped: no detailed analysis possible\n" msgstr "" -#: elf/sprof.c:688 +#: elf/sprof.c:708 #, c-format msgid "failed to load symbol data" msgstr "" -#: elf/sprof.c:755 +#: elf/sprof.c:775 #, c-format msgid "cannot load profiling data" msgstr "" -#: elf/sprof.c:764 +#: elf/sprof.c:784 #, c-format msgid "while stat'ing profiling data file" msgstr "" -#: elf/sprof.c:772 +#: elf/sprof.c:792 #, c-format msgid "profiling data file `%s' does not match shared object `%s'" msgstr "" -#: elf/sprof.c:783 +#: elf/sprof.c:803 #, c-format msgid "failed to mmap the profiling data file" msgstr "" -#: elf/sprof.c:791 +#: elf/sprof.c:811 #, c-format msgid "error while closing the profiling data file" msgstr "" -#: elf/sprof.c:800 elf/sprof.c:870 +#: elf/sprof.c:820 elf/sprof.c:890 #, c-format msgid "cannot create internal descriptor" msgstr "" -#: elf/sprof.c:846 +#: elf/sprof.c:866 #, c-format msgid "`%s' is no correct profile data file for `%s'" msgstr "" -#: elf/sprof.c:1027 elf/sprof.c:1085 +#: elf/sprof.c:1047 elf/sprof.c:1105 #, c-format msgid "cannot allocate symbol data" msgstr "" @@ -1482,8 +1517,8 @@ msgstr "" msgid "no symbolic name given for end of range" msgstr "" -#: locale/programs/charmap.c:610 locale/programs/ld-address.c:600 -#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3928 +#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602 +#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3924 #: locale/programs/ld-ctype.c:2232 locale/programs/ld-ctype.c:2984 #: locale/programs/ld-identification.c:452 #: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332 @@ -1509,8 +1544,8 @@ msgstr "" msgid "%s: error in state machine" msgstr "" -#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616 -#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4121 +#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618 +#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4117 #: locale/programs/ld-ctype.c:2229 locale/programs/ld-ctype.c:3001 #: locale/programs/ld-identification.c:468 #: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348 @@ -1534,7 +1569,7 @@ msgid "" "same: %d vs %d" msgstr "" -#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3045 +#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3044 #: locale/programs/repertoire.c:419 msgid "invalid names for character range" msgstr "" @@ -1556,7 +1591,7 @@ msgstr "" msgid "resulting bytes for range not representable." msgstr "" -#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1556 +#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1556 #: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:133 #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 #: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94 @@ -1566,10 +1601,10 @@ msgstr "" msgid "No definition for %s category found" msgstr "" -#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182 -#: locale/programs/ld-address.c:200 locale/programs/ld-address.c:229 -#: locale/programs/ld-address.c:301 locale/programs/ld-address.c:320 -#: locale/programs/ld-address.c:333 locale/programs/ld-identification.c:146 +#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 +#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 +#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322 +#: locale/programs/ld-address.c:335 locale/programs/ld-identification.c:146 #: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:206 #: locale/programs/ld-monetary.c:250 locale/programs/ld-monetary.c:266 #: locale/programs/ld-monetary.c:278 locale/programs/ld-name.c:105 @@ -1582,46 +1617,46 @@ msgstr "" msgid "%s: field `%s' not defined" msgstr "" -#: locale/programs/ld-address.c:156 locale/programs/ld-address.c:208 -#: locale/programs/ld-address.c:238 locale/programs/ld-address.c:276 +#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210 +#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278 #: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117 #, c-format msgid "%s: field `%s' must not be empty" msgstr "" -#: locale/programs/ld-address.c:168 +#: locale/programs/ld-address.c:170 #, c-format msgid "%s: invalid escape `%%%c' sequence in field `%s'" msgstr "" -#: locale/programs/ld-address.c:219 +#: locale/programs/ld-address.c:221 #, c-format msgid "%s: terminology language code `%s' not defined" msgstr "" -#: locale/programs/ld-address.c:244 +#: locale/programs/ld-address.c:246 #, c-format msgid "%s: field `%s' must not be defined" msgstr "" -#: locale/programs/ld-address.c:258 locale/programs/ld-address.c:287 +#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289 #, c-format msgid "%s: language abbreviation `%s' not defined" msgstr "" -#: locale/programs/ld-address.c:265 locale/programs/ld-address.c:293 -#: locale/programs/ld-address.c:327 locale/programs/ld-address.c:339 +#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295 +#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341 #, c-format msgid "%s: `%s' value does not match `%s' value" msgstr "" -#: locale/programs/ld-address.c:312 +#: locale/programs/ld-address.c:314 #, c-format msgid "%s: numeric country code `%d' not valid" msgstr "" -#: locale/programs/ld-address.c:508 locale/programs/ld-address.c:545 -#: locale/programs/ld-address.c:583 locale/programs/ld-ctype.c:2608 +#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547 +#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2608 #: locale/programs/ld-identification.c:364 #: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301 #: locale/programs/ld-monetary.c:701 locale/programs/ld-monetary.c:736 @@ -1633,7 +1668,7 @@ msgstr "" msgid "%s: field `%s' declared more than once" msgstr "" -#: locale/programs/ld-address.c:512 locale/programs/ld-address.c:550 +#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552 #: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311 #: locale/programs/ld-monetary.c:705 locale/programs/ld-monetary.c:740 #: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267 @@ -1643,7 +1678,7 @@ msgstr "" msgid "%s: unknown character in field `%s'" msgstr "" -#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3926 +#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3922 #: locale/programs/ld-ctype.c:2981 locale/programs/ld-identification.c:449 #: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330 #: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305 @@ -1653,10 +1688,10 @@ msgstr "" msgid "%s: incomplete `END' line" msgstr "" -#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:542 +#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:542 #: locale/programs/ld-collate.c:594 locale/programs/ld-collate.c:890 #: locale/programs/ld-collate.c:903 locale/programs/ld-collate.c:2733 -#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4111 +#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4107 #: locale/programs/ld-ctype.c:1960 locale/programs/ld-ctype.c:2219 #: locale/programs/ld-ctype.c:2806 locale/programs/ld-ctype.c:2992 #: locale/programs/ld-identification.c:459 @@ -1763,7 +1798,7 @@ msgstr "" msgid "`%s' and `%.*s' are not valid names for symbolic range" msgstr "" -#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3862 +#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3858 #, c-format msgid "%s: order for `%.*s' already defined at %s:%Zu" msgstr "" @@ -1804,7 +1839,7 @@ msgstr "" msgid "too many errors; giving up" msgstr "" -#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4050 +#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4046 #, c-format msgid "%s: nested conditionals not supported" msgstr "" @@ -1824,112 +1859,112 @@ msgstr "" msgid "%s: duplicate declaration of section `%s'" msgstr "" -#: locale/programs/ld-collate.c:3025 +#: locale/programs/ld-collate.c:3024 #, c-format msgid "%s: unknown character in collating symbol name" msgstr "" -#: locale/programs/ld-collate.c:3155 +#: locale/programs/ld-collate.c:3153 #, c-format msgid "%s: unknown character in equivalent definition name" msgstr "" -#: locale/programs/ld-collate.c:3168 +#: locale/programs/ld-collate.c:3164 #, c-format msgid "%s: unknown character in equivalent definition value" msgstr "" -#: locale/programs/ld-collate.c:3178 +#: locale/programs/ld-collate.c:3174 #, c-format msgid "%s: unknown symbol `%s' in equivalent definition" msgstr "" -#: locale/programs/ld-collate.c:3187 +#: locale/programs/ld-collate.c:3183 msgid "error while adding equivalent collating symbol" msgstr "" -#: locale/programs/ld-collate.c:3225 +#: locale/programs/ld-collate.c:3221 #, c-format msgid "duplicate definition of script `%s'" msgstr "" -#: locale/programs/ld-collate.c:3273 +#: locale/programs/ld-collate.c:3269 #, c-format msgid "%s: unknown section name `%.*s'" msgstr "" -#: locale/programs/ld-collate.c:3302 +#: locale/programs/ld-collate.c:3298 #, c-format msgid "%s: multiple order definitions for section `%s'" msgstr "" -#: locale/programs/ld-collate.c:3330 +#: locale/programs/ld-collate.c:3326 #, c-format msgid "%s: invalid number of sorting rules" msgstr "" -#: locale/programs/ld-collate.c:3357 +#: locale/programs/ld-collate.c:3353 #, c-format msgid "%s: multiple order definitions for unnamed section" msgstr "" -#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3541 -#: locale/programs/ld-collate.c:3904 +#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537 +#: locale/programs/ld-collate.c:3900 #, c-format msgid "%s: missing `order_end' keyword" msgstr "" -#: locale/programs/ld-collate.c:3474 +#: locale/programs/ld-collate.c:3470 #, c-format msgid "%s: order for collating symbol %.*s not yet defined" msgstr "" -#: locale/programs/ld-collate.c:3492 +#: locale/programs/ld-collate.c:3488 #, c-format msgid "%s: order for collating element %.*s not yet defined" msgstr "" -#: locale/programs/ld-collate.c:3503 +#: locale/programs/ld-collate.c:3499 #, c-format msgid "%s: cannot reorder after %.*s: symbol not known" msgstr "" -#: locale/programs/ld-collate.c:3555 locale/programs/ld-collate.c:3916 +#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912 #, c-format msgid "%s: missing `reorder-end' keyword" msgstr "" -#: locale/programs/ld-collate.c:3589 locale/programs/ld-collate.c:3787 +#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783 #, c-format msgid "%s: section `%.*s' not known" msgstr "" -#: locale/programs/ld-collate.c:3654 +#: locale/programs/ld-collate.c:3650 #, c-format msgid "%s: bad symbol <%.*s>" msgstr "" -#: locale/programs/ld-collate.c:3850 +#: locale/programs/ld-collate.c:3846 #, c-format msgid "%s: cannot have `%s' as end of ellipsis range" msgstr "" -#: locale/programs/ld-collate.c:3900 +#: locale/programs/ld-collate.c:3896 #, c-format msgid "%s: empty category description not allowed" msgstr "" -#: locale/programs/ld-collate.c:3919 +#: locale/programs/ld-collate.c:3915 #, c-format msgid "%s: missing `reorder-sections-end' keyword" msgstr "" -#: locale/programs/ld-collate.c:4083 +#: locale/programs/ld-collate.c:4079 #, c-format msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" msgstr "" -#: locale/programs/ld-collate.c:4101 +#: locale/programs/ld-collate.c:4097 #, c-format msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" msgstr "" @@ -2372,39 +2407,36 @@ msgid "Print more information" msgstr "" #: locale/programs/locale.c:87 -msgid "" -"Get locale-specific information.\vFor bug reporting instructions, please " -"see:\n" -"<http://www.gnu.org/software/libc/bugs.html>.\n" +msgid "Get locale-specific information." msgstr "" -#: locale/programs/locale.c:92 +#: locale/programs/locale.c:90 msgid "" "NAME\n" "[-a|-m]" msgstr "" -#: locale/programs/locale.c:193 +#: locale/programs/locale.c:194 #, c-format msgid "Cannot set LC_CTYPE to default locale" msgstr "" -#: locale/programs/locale.c:195 +#: locale/programs/locale.c:196 #, c-format msgid "Cannot set LC_MESSAGES to default locale" msgstr "" -#: locale/programs/locale.c:208 +#: locale/programs/locale.c:209 #, c-format msgid "Cannot set LC_COLLATE to default locale" msgstr "" -#: locale/programs/locale.c:224 +#: locale/programs/locale.c:225 #, c-format msgid "Cannot set LC_ALL to default locale" msgstr "" -#: locale/programs/locale.c:500 +#: locale/programs/locale.c:518 #, c-format msgid "while preparing output" msgstr "" @@ -2802,11 +2834,9 @@ msgid "" "corresponding\n" "short options.\n" "\n" -"For bug reporting instructions, please see:\n" -"<http://www.gnu.org/software/libc/bugs.html>." msgstr "" -#: malloc/memusage.sh:99 +#: malloc/memusage.sh:101 msgid "" "Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--" "unbuffered]\n" @@ -2815,53 +2845,53 @@ msgid "" " PROGRAM [PROGRAMOPTION]..." msgstr "" -#: malloc/memusage.sh:191 +#: malloc/memusage.sh:193 msgid "memusage: option \\`${1##*=}' is ambiguous" msgstr "" -#: malloc/memusage.sh:200 +#: malloc/memusage.sh:202 msgid "memusage: unrecognized option \\`$1'" msgstr "" -#: malloc/memusage.sh:213 +#: malloc/memusage.sh:215 msgid "No program name given" msgstr "" -#: malloc/memusagestat.c:54 +#: malloc/memusagestat.c:57 msgid "Name output file" msgstr "" -#: malloc/memusagestat.c:55 +#: malloc/memusagestat.c:58 msgid "Title string used in output graphic" msgstr "" -#: malloc/memusagestat.c:56 +#: malloc/memusagestat.c:59 msgid "" "Generate output linear to time (default is linear to number of function " "calls)" msgstr "" -#: malloc/memusagestat.c:58 +#: malloc/memusagestat.c:61 msgid "Also draw graph for total memory consumption" msgstr "" -#: malloc/memusagestat.c:59 +#: malloc/memusagestat.c:62 msgid "Make output graphic VALUE pixels wide" msgstr "" -#: malloc/memusagestat.c:60 +#: malloc/memusagestat.c:63 msgid "Make output graphic VALUE pixels high" msgstr "" -#: malloc/memusagestat.c:65 +#: malloc/memusagestat.c:68 msgid "Generate graphic from memory profiling data" msgstr "" -#: malloc/memusagestat.c:68 +#: malloc/memusagestat.c:71 msgid "DATAFILE [OUTFILE]" msgstr "" -#: misc/error.c:118 timezone/zic.c:417 +#: misc/error.c:118 msgid "Unknown system error" msgstr "" @@ -2869,7 +2899,7 @@ msgstr "" msgid "unable to free arguments" msgstr "" -#: nis/nis_error.h:1 nis/ypclnt.c:822 nis/ypclnt.c:910 posix/regcomp.c:132 +#: nis/nis_error.h:1 nis/ypclnt.c:833 nis/ypclnt.c:921 posix/regcomp.c:133 #: sysdeps/gnu/errlist.c:20 msgid "Success" msgstr "" @@ -2911,7 +2941,7 @@ msgid "First/next chain broken" msgstr "" #. TRANS Permission denied; the file permissions do not allow the attempted operation. -#: nis/nis_error.h:11 nis/ypclnt.c:867 sysdeps/gnu/errlist.c:157 +#: nis/nis_error.h:11 nis/ypclnt.c:878 sysdeps/gnu/errlist.c:157 msgid "Permission denied" msgstr "" @@ -3410,100 +3440,100 @@ msgstr "" msgid "netname2user: should not have uid 0" msgstr "" -#: nis/ypclnt.c:825 +#: nis/ypclnt.c:836 msgid "Request arguments bad" msgstr "" -#: nis/ypclnt.c:828 +#: nis/ypclnt.c:839 msgid "RPC failure on NIS operation" msgstr "" -#: nis/ypclnt.c:831 +#: nis/ypclnt.c:842 msgid "Can't bind to server which serves this domain" msgstr "" -#: nis/ypclnt.c:834 +#: nis/ypclnt.c:845 msgid "No such map in server's domain" msgstr "" -#: nis/ypclnt.c:837 +#: nis/ypclnt.c:848 msgid "No such key in map" msgstr "" -#: nis/ypclnt.c:840 +#: nis/ypclnt.c:851 msgid "Internal NIS error" msgstr "" -#: nis/ypclnt.c:843 +#: nis/ypclnt.c:854 msgid "Local resource allocation failure" msgstr "" -#: nis/ypclnt.c:846 +#: nis/ypclnt.c:857 msgid "No more records in map database" msgstr "" -#: nis/ypclnt.c:849 +#: nis/ypclnt.c:860 msgid "Can't communicate with portmapper" msgstr "" -#: nis/ypclnt.c:852 +#: nis/ypclnt.c:863 msgid "Can't communicate with ypbind" msgstr "" -#: nis/ypclnt.c:855 +#: nis/ypclnt.c:866 msgid "Can't communicate with ypserv" msgstr "" -#: nis/ypclnt.c:858 +#: nis/ypclnt.c:869 msgid "Local domain name not set" msgstr "" -#: nis/ypclnt.c:861 +#: nis/ypclnt.c:872 msgid "NIS map database is bad" msgstr "" -#: nis/ypclnt.c:864 +#: nis/ypclnt.c:875 msgid "NIS client/server version mismatch - can't supply service" msgstr "" -#: nis/ypclnt.c:870 +#: nis/ypclnt.c:881 msgid "Database is busy" msgstr "" -#: nis/ypclnt.c:873 +#: nis/ypclnt.c:884 msgid "Unknown NIS error code" msgstr "" -#: nis/ypclnt.c:913 +#: nis/ypclnt.c:924 msgid "Internal ypbind error" msgstr "" -#: nis/ypclnt.c:916 +#: nis/ypclnt.c:927 msgid "Domain not bound" msgstr "" -#: nis/ypclnt.c:919 +#: nis/ypclnt.c:930 msgid "System resource allocation failure" msgstr "" -#: nis/ypclnt.c:922 +#: nis/ypclnt.c:933 msgid "Unknown ypbind error" msgstr "" -#: nis/ypclnt.c:963 +#: nis/ypclnt.c:974 msgid "yp_update: cannot convert host to netname\n" msgstr "" -#: nis/ypclnt.c:981 +#: nis/ypclnt.c:992 msgid "yp_update: cannot get server address\n" msgstr "" -#: nscd/aicache.c:77 nscd/hstcache.c:473 +#: nscd/aicache.c:82 nscd/hstcache.c:481 #, c-format msgid "Haven't found \"%s\" in hosts cache!" msgstr "" -#: nscd/aicache.c:79 nscd/hstcache.c:475 +#: nscd/aicache.c:84 nscd/hstcache.c:483 #, c-format msgid "Reloading \"%s\" in hosts cache!" msgstr "" @@ -3517,344 +3547,369 @@ msgstr "" msgid " (first)" msgstr "" -#: nscd/cache.c:263 nscd/connections.c:811 +#: nscd/cache.c:286 nscd/connections.c:866 #, c-format msgid "cannot stat() file `%s': %s" msgstr "" -#: nscd/cache.c:305 +#: nscd/cache.c:328 #, c-format msgid "pruning %s cache; time %ld" msgstr "" -#: nscd/cache.c:334 +#: nscd/cache.c:357 #, c-format msgid "considering %s entry \"%s\", timeout %<PRIu64>" msgstr "" -#: nscd/connections.c:527 +#: nscd/connections.c:570 #, c-format msgid "invalid persistent database file \"%s\": %s" msgstr "" -#: nscd/connections.c:535 +#: nscd/connections.c:578 msgid "uninitialized header" msgstr "" -#: nscd/connections.c:540 +#: nscd/connections.c:583 msgid "header size does not match" msgstr "" -#: nscd/connections.c:550 +#: nscd/connections.c:593 msgid "file size does not match" msgstr "" -#: nscd/connections.c:567 +#: nscd/connections.c:610 msgid "verification failed" msgstr "" -#: nscd/connections.c:581 +#: nscd/connections.c:624 #, c-format msgid "" "suggested size of table for database %s larger than the persistent " "database's table" msgstr "" -#: nscd/connections.c:592 nscd/connections.c:674 +#: nscd/connections.c:635 nscd/connections.c:720 #, c-format msgid "cannot create read-only descriptor for \"%s\"; no mmap" msgstr "" -#: nscd/connections.c:653 +#: nscd/connections.c:651 +#, c-format +msgid "cannot access '%s'" +msgstr "" + +#: nscd/connections.c:699 #, c-format msgid "" "database for %s corrupted or simultaneously used; remove %s manually if " "necessary and restart" msgstr "" -#: nscd/connections.c:660 +#: nscd/connections.c:706 #, c-format msgid "cannot create %s; no persistent database used" msgstr "" -#: nscd/connections.c:663 +#: nscd/connections.c:709 #, c-format msgid "cannot create %s; no sharing possible" msgstr "" -#: nscd/connections.c:734 +#: nscd/connections.c:780 #, c-format msgid "cannot write to database file %s: %s" msgstr "" -#: nscd/connections.c:773 +#: nscd/connections.c:819 #, c-format msgid "cannot set socket to close on exec: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:824 +#: nscd/connections.c:902 #, c-format msgid "cannot open socket: %s" msgstr "" -#: nscd/connections.c:841 +#: nscd/connections.c:922 #, c-format msgid "cannot change socket to nonblocking mode: %s" msgstr "" -#: nscd/connections.c:849 +#: nscd/connections.c:930 #, c-format msgid "cannot set socket to close on exec: %s" msgstr "" -#: nscd/connections.c:860 +#: nscd/connections.c:943 #, c-format msgid "cannot enable socket to accept connections: %s" msgstr "" -#: nscd/connections.c:960 +#: nscd/connections.c:1043 #, c-format msgid "provide access to FD %d, for %s" msgstr "" -#: nscd/connections.c:972 +#: nscd/connections.c:1055 #, c-format msgid "cannot handle old request version %d; current version is %d" msgstr "" -#: nscd/connections.c:982 +#: nscd/connections.c:1077 +#, c-format +msgid "request from %ld not handled due to missing permission" +msgstr "" + +#: nscd/connections.c:1082 +#, c-format +msgid "request from '%s' [%ld] not handled due to missing permission" +msgstr "" + +#: nscd/connections.c:1087 msgid "request not handled due to missing permission" msgstr "" -#: nscd/connections.c:1018 nscd/connections.c:1071 +#: nscd/connections.c:1125 nscd/connections.c:1178 #, c-format msgid "cannot write result: %s" msgstr "" -#: nscd/connections.c:1154 +#: nscd/connections.c:1261 #, c-format msgid "error getting caller's id: %s" msgstr "" -#: nscd/connections.c:1213 +#: nscd/connections.c:1320 #, c-format msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1227 +#: nscd/connections.c:1334 #, c-format msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1267 +#: nscd/connections.c:1374 #, c-format msgid "cannot change to old UID: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1277 +#: nscd/connections.c:1384 #, c-format msgid "cannot change to old GID: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1290 +#: nscd/connections.c:1397 #, c-format msgid "cannot change to old working directory: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1319 +#: nscd/connections.c:1429 #, c-format msgid "re-exec failed: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:1328 +#: nscd/connections.c:1438 #, c-format msgid "cannot change current working directory to \"/\": %s" msgstr "" -#: nscd/connections.c:1471 +#: nscd/connections.c:1644 #, c-format msgid "short read while reading request: %s" msgstr "" -#: nscd/connections.c:1502 +#: nscd/connections.c:1677 #, c-format msgid "key length in request too long: %d" msgstr "" -#: nscd/connections.c:1515 +#: nscd/connections.c:1690 #, c-format msgid "short read while reading request key: %s" msgstr "" -#: nscd/connections.c:1524 +#: nscd/connections.c:1699 #, c-format msgid "handle_request: request received (Version = %d) from PID %ld" msgstr "" -#: nscd/connections.c:1529 +#: nscd/connections.c:1704 #, c-format msgid "handle_request: request received (Version = %d)" msgstr "" -#: nscd/connections.c:1866 +#: nscd/connections.c:1903 nscd/connections.c:2101 +#, c-format +msgid "disabled inotify after read error %d" +msgstr "" + +#: nscd/connections.c:2230 msgid "could not initialize conditional variable" msgstr "" -#: nscd/connections.c:1874 +#: nscd/connections.c:2238 msgid "could not start clean-up thread; terminating" msgstr "" -#: nscd/connections.c:1888 +#: nscd/connections.c:2252 msgid "could not start any worker thread; terminating" msgstr "" -#: nscd/connections.c:1939 nscd/connections.c:1940 nscd/connections.c:1957 -#: nscd/connections.c:1966 nscd/connections.c:1984 nscd/connections.c:1995 -#: nscd/connections.c:2006 +#: nscd/connections.c:2303 nscd/connections.c:2304 nscd/connections.c:2321 +#: nscd/connections.c:2330 nscd/connections.c:2348 nscd/connections.c:2359 +#: nscd/connections.c:2370 #, c-format msgid "Failed to run nscd as user '%s'" msgstr "" -#: nscd/connections.c:1958 +#: nscd/connections.c:2322 #, c-format msgid "initial getgrouplist failed" msgstr "" -#: nscd/connections.c:1967 +#: nscd/connections.c:2331 #, c-format msgid "getgrouplist failed" msgstr "" -#: nscd/connections.c:1985 +#: nscd/connections.c:2349 #, c-format msgid "setgroups failed" msgstr "" -#: nscd/grpcache.c:404 nscd/hstcache.c:422 nscd/initgrcache.c:414 -#: nscd/pwdcache.c:399 nscd/servicescache.c:345 +#: nscd/grpcache.c:395 nscd/hstcache.c:430 nscd/initgrcache.c:416 +#: nscd/pwdcache.c:400 nscd/servicescache.c:343 #, c-format msgid "short write in %s: %s" msgstr "" -#: nscd/grpcache.c:447 nscd/initgrcache.c:78 +#: nscd/grpcache.c:438 nscd/initgrcache.c:78 #, c-format msgid "Haven't found \"%s\" in group cache!" msgstr "" -#: nscd/grpcache.c:449 nscd/initgrcache.c:80 +#: nscd/grpcache.c:440 nscd/initgrcache.c:80 #, c-format msgid "Reloading \"%s\" in group cache!" msgstr "" -#: nscd/grpcache.c:526 +#: nscd/grpcache.c:517 #, c-format msgid "Invalid numeric gid \"%s\"!" msgstr "" -#: nscd/mem.c:422 +#: nscd/mem.c:457 #, c-format msgid "freed %zu bytes in %s cache" msgstr "" -#: nscd/mem.c:557 +#: nscd/mem.c:594 #, c-format msgid "no more memory for database '%s'" msgstr "" -#: nscd/nscd.c:98 +#: nscd/nscd.c:101 msgid "Read configuration data from NAME" msgstr "" -#: nscd/nscd.c:100 +#: nscd/nscd.c:103 msgid "Do not fork and display messages on the current tty" msgstr "" -#: nscd/nscd.c:101 +#: nscd/nscd.c:104 msgid "NUMBER" msgstr "" -#: nscd/nscd.c:101 +#: nscd/nscd.c:104 msgid "Start NUMBER threads" msgstr "" -#: nscd/nscd.c:102 +#: nscd/nscd.c:105 msgid "Shut the server down" msgstr "" -#: nscd/nscd.c:103 +#: nscd/nscd.c:106 msgid "Print current configuration statistics" msgstr "" -#: nscd/nscd.c:104 +#: nscd/nscd.c:107 msgid "TABLE" msgstr "" -#: nscd/nscd.c:105 +#: nscd/nscd.c:108 msgid "Invalidate the specified cache" msgstr "" -#: nscd/nscd.c:106 +#: nscd/nscd.c:109 msgid "TABLE,yes" msgstr "" -#: nscd/nscd.c:107 +#: nscd/nscd.c:110 msgid "Use separate cache for each user" msgstr "" -#: nscd/nscd.c:112 +#: nscd/nscd.c:115 msgid "Name Service Cache Daemon." msgstr "" -#: nscd/nscd.c:144 nss/getent.c:858 nss/makedb.c:123 +#: nscd/nscd.c:147 nss/getent.c:876 nss/makedb.c:123 #, c-format msgid "wrong number of arguments" msgstr "" -#: nscd/nscd.c:154 +#: nscd/nscd.c:157 #, c-format msgid "failure while reading configuration file; this is fatal" msgstr "" -#: nscd/nscd.c:163 +#: nscd/nscd.c:166 #, c-format msgid "already running" msgstr "" -#: nscd/nscd.c:178 nscd/nscd.c:233 +#: nscd/nscd.c:181 nscd/nscd.c:236 #, c-format msgid "cannot fork" msgstr "" -#: nscd/nscd.c:241 +#: nscd/nscd.c:244 #, c-format msgid "cannot change current working directory to \"/\"" msgstr "" -#: nscd/nscd.c:249 +#: nscd/nscd.c:252 msgid "Could not create log file" msgstr "" -#: nscd/nscd.c:302 nscd/nscd.c:327 nscd/nscd_stat.c:172 +#: nscd/nscd.c:305 nscd/nscd.c:330 nscd/nscd_stat.c:172 #, c-format msgid "Only root is allowed to use this option!" msgstr "" -#: nscd/nscd.c:364 nscd/nscd_stat.c:191 +#: nscd/nscd.c:345 +#, c-format +msgid "'%s' is not a known database" +msgstr "" + +#: nscd/nscd.c:370 nscd/nscd_stat.c:191 #, c-format msgid "write incomplete" msgstr "" -#: nscd/nscd.c:375 +#: nscd/nscd.c:381 #, c-format msgid "cannot read invalidate ACK" msgstr "" -#: nscd/nscd.c:381 +#: nscd/nscd.c:387 #, c-format msgid "invalidation failed" msgstr "" -#: nscd/nscd.c:391 +#: nscd/nscd.c:397 #, c-format msgid "secure services not implemented anymore" msgstr "" @@ -3998,17 +4053,17 @@ msgid "" "%15s check /etc/%s for changes\n" msgstr "" -#: nscd/pwdcache.c:442 +#: nscd/pwdcache.c:443 #, c-format msgid "Haven't found \"%s\" in password cache!" msgstr "" -#: nscd/pwdcache.c:444 +#: nscd/pwdcache.c:445 #, c-format msgid "Reloading \"%s\" in password cache!" msgstr "" -#: nscd/pwdcache.c:522 +#: nscd/pwdcache.c:523 #, c-format msgid "Invalid numeric uid \"%s\"!" msgstr "" @@ -4104,12 +4159,12 @@ msgid "" "%15u CAV misses\n" msgstr "" -#: nscd/servicescache.c:392 +#: nscd/servicescache.c:390 #, c-format msgid "Haven't found \"%s\" in services cache!" msgstr "" -#: nscd/servicescache.c:394 +#: nscd/servicescache.c:392 #, c-format msgid "Reloading \"%s\" in services cache!" msgstr "" @@ -4123,27 +4178,24 @@ msgid "Service configuration to be used" msgstr "" #: nss/getent.c:62 -msgid "" -"Get entries from administrative database.\vFor bug reporting instructions, " -"please see:\n" -"<http://www.gnu.org/software/libc/bugs.html>.\n" +msgid "Get entries from administrative database." msgstr "" -#: nss/getent.c:145 nss/getent.c:394 +#: nss/getent.c:143 nss/getent.c:408 #, c-format msgid "Enumeration not supported on %s\n" msgstr "" -#: nss/getent.c:782 +#: nss/getent.c:794 #, c-format msgid "Unknown database name" msgstr "" -#: nss/getent.c:808 +#: nss/getent.c:820 msgid "Supported databases:\n" msgstr "" -#: nss/getent.c:868 +#: nss/getent.c:886 #, c-format msgid "Unknown database: %s\n" msgstr "" @@ -4214,21 +4266,33 @@ msgstr "" msgid " %s -a [pathname]\n" msgstr "" -#: posix/getconf.c:1067 +#: posix/getconf.c:1023 +#, c-format +msgid "" +"Usage: getconf [-v SPEC] VAR\n" +" or: getconf [-v SPEC] PATH_VAR PATH\n" +"\n" +"Get the configuration value for variable VAR, or for variable PATH_VAR\n" +"for path PATH. If SPEC is given, give values for compilation\n" +"environment SPEC.\n" +"\n" +msgstr "" + +#: posix/getconf.c:1081 #, c-format msgid "unknown specification \"%s\"" msgstr "" -#: posix/getconf.c:1095 +#: posix/getconf.c:1109 #, c-format msgid "Couldn't execute %s" msgstr "" -#: posix/getconf.c:1135 posix/getconf.c:1151 +#: posix/getconf.c:1149 posix/getconf.c:1165 msgid "undefined" msgstr "" -#: posix/getconf.c:1173 +#: posix/getconf.c:1187 #, c-format msgid "Unrecognized variable `%s'" msgstr "" @@ -4285,75 +4349,75 @@ msgstr "" msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "" -#: posix/regcomp.c:135 +#: posix/regcomp.c:136 msgid "No match" msgstr "" -#: posix/regcomp.c:138 +#: posix/regcomp.c:139 msgid "Invalid regular expression" msgstr "" -#: posix/regcomp.c:141 +#: posix/regcomp.c:142 msgid "Invalid collation character" msgstr "" -#: posix/regcomp.c:144 +#: posix/regcomp.c:145 msgid "Invalid character class name" msgstr "" -#: posix/regcomp.c:147 +#: posix/regcomp.c:148 msgid "Trailing backslash" msgstr "" -#: posix/regcomp.c:150 +#: posix/regcomp.c:151 msgid "Invalid back reference" msgstr "" -#: posix/regcomp.c:153 +#: posix/regcomp.c:154 msgid "Unmatched [ or [^" msgstr "" -#: posix/regcomp.c:156 +#: posix/regcomp.c:157 msgid "Unmatched ( or \\(" msgstr "" -#: posix/regcomp.c:159 +#: posix/regcomp.c:160 msgid "Unmatched \\{" msgstr "" -#: posix/regcomp.c:162 +#: posix/regcomp.c:163 msgid "Invalid content of \\{\\}" msgstr "" -#: posix/regcomp.c:165 +#: posix/regcomp.c:166 msgid "Invalid range end" msgstr "" -#: posix/regcomp.c:168 +#: posix/regcomp.c:169 msgid "Memory exhausted" msgstr "" -#: posix/regcomp.c:171 +#: posix/regcomp.c:172 msgid "Invalid preceding regular expression" msgstr "" -#: posix/regcomp.c:174 +#: posix/regcomp.c:175 msgid "Premature end of regular expression" msgstr "" -#: posix/regcomp.c:177 +#: posix/regcomp.c:178 msgid "Regular expression too big" msgstr "" -#: posix/regcomp.c:180 +#: posix/regcomp.c:181 msgid "Unmatched ) or \\)" msgstr "" -#: posix/regcomp.c:660 +#: posix/regcomp.c:681 msgid "No previous regular expression" msgstr "" -#: posix/wordexp.c:1798 +#: posix/wordexp.c:1832 msgid "parameter null or not set" msgstr "" @@ -4437,7 +4501,7 @@ msgstr "" msgid "Unknown signal %d" msgstr "" -#: sunrpc/auth_unix.c:114 sunrpc/clnt_tcp.c:131 sunrpc/clnt_udp.c:140 +#: sunrpc/auth_unix.c:114 sunrpc/clnt_tcp.c:131 sunrpc/clnt_udp.c:143 #: sunrpc/clnt_unix.c:128 sunrpc/svc_tcp.c:179 sunrpc/svc_tcp.c:218 #: sunrpc/svc_udp.c:153 sunrpc/svc_unix.c:176 sunrpc/svc_unix.c:215 #: sunrpc/xdr.c:566 sunrpc/xdr.c:718 sunrpc/xdr_array.c:106 @@ -4604,121 +4668,244 @@ msgstr "" msgid "Cannot receive reply to broadcast" msgstr "" -#: sunrpc/rpc_main.c:286 +#: sunrpc/rpc_main.c:290 #, c-format msgid "%s: output would overwrite %s\n" msgstr "" -#: sunrpc/rpc_main.c:293 +#: sunrpc/rpc_main.c:297 #, c-format msgid "%s: unable to open %s: %m\n" msgstr "" -#: sunrpc/rpc_main.c:305 +#: sunrpc/rpc_main.c:309 #, c-format msgid "%s: while writing output %s: %m" msgstr "" -#: sunrpc/rpc_main.c:340 +#: sunrpc/rpc_main.c:344 #, c-format msgid "cannot find C preprocessor: %s \n" msgstr "" -#: sunrpc/rpc_main.c:348 +#: sunrpc/rpc_main.c:352 msgid "cannot find any C preprocessor (cpp)\n" msgstr "" -#: sunrpc/rpc_main.c:417 +#: sunrpc/rpc_main.c:421 #, c-format msgid "%s: C preprocessor failed with signal %d\n" msgstr "" -#: sunrpc/rpc_main.c:420 +#: sunrpc/rpc_main.c:424 #, c-format msgid "%s: C preprocessor failed with exit code %d\n" msgstr "" -#: sunrpc/rpc_main.c:460 +#: sunrpc/rpc_main.c:464 #, c-format msgid "illegal nettype: `%s'\n" msgstr "" -#: sunrpc/rpc_main.c:1122 +#: sunrpc/rpc_main.c:1130 #, c-format msgid "rpcgen: too many defines\n" msgstr "" -#: sunrpc/rpc_main.c:1134 +#: sunrpc/rpc_main.c:1142 #, c-format msgid "rpcgen: arglist coding error\n" msgstr "" #. TRANS: the file will not be removed; this is an #. TRANS: informative message. -#: sunrpc/rpc_main.c:1167 +#: sunrpc/rpc_main.c:1175 #, c-format msgid "file `%s' already exists and may be overwritten\n" msgstr "" -#: sunrpc/rpc_main.c:1212 +#: sunrpc/rpc_main.c:1220 #, c-format msgid "Cannot specify more than one input file!\n" msgstr "" -#: sunrpc/rpc_main.c:1382 +#: sunrpc/rpc_main.c:1394 +#, c-format msgid "This implementation doesn't support newstyle or MT-safe code!\n" msgstr "" -#: sunrpc/rpc_main.c:1391 +#: sunrpc/rpc_main.c:1403 #, c-format msgid "Cannot use netid flag with inetd flag!\n" msgstr "" -#: sunrpc/rpc_main.c:1403 +#: sunrpc/rpc_main.c:1415 +#, c-format msgid "Cannot use netid flag without TIRPC!\n" msgstr "" -#: sunrpc/rpc_main.c:1410 +#: sunrpc/rpc_main.c:1422 +#, c-format msgid "Cannot use table flags with newstyle!\n" msgstr "" -#: sunrpc/rpc_main.c:1429 +#: sunrpc/rpc_main.c:1441 #, c-format msgid "\"infile\" is required for template generation flags.\n" msgstr "" -#: sunrpc/rpc_main.c:1434 +#: sunrpc/rpc_main.c:1446 #, c-format msgid "Cannot have more than one file generation flag!\n" msgstr "" -#: sunrpc/rpc_main.c:1443 +#: sunrpc/rpc_main.c:1455 #, c-format msgid "usage: %s infile\n" msgstr "" -#: sunrpc/rpc_main.c:1444 +#: sunrpc/rpc_main.c:1456 #, c-format msgid "" "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] " "infile\n" msgstr "" -#: sunrpc/rpc_main.c:1446 +#: sunrpc/rpc_main.c:1458 #, c-format msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" msgstr "" -#: sunrpc/rpc_main.c:1448 +#: sunrpc/rpc_main.c:1460 #, c-format msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" msgstr "" -#: sunrpc/rpc_main.c:1449 +#: sunrpc/rpc_main.c:1461 #, c-format msgid "\t%s [-n netid]* [-o outfile] [infile]\n" msgstr "" +#: sunrpc/rpc_main.c:1469 +#, c-format +msgid "options:\n" +msgstr "" + +#: sunrpc/rpc_main.c:1470 +#, c-format +msgid "-a\t\tgenerate all files, including samples\n" +msgstr "" + +#: sunrpc/rpc_main.c:1471 +#, c-format +msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" +msgstr "" + +#: sunrpc/rpc_main.c:1472 +#, c-format +msgid "-c\t\tgenerate XDR routines\n" +msgstr "" + +#: sunrpc/rpc_main.c:1473 +#, c-format +msgid "-C\t\tANSI C mode\n" +msgstr "" + +#: sunrpc/rpc_main.c:1474 +#, c-format +msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" +msgstr "" + +#: sunrpc/rpc_main.c:1475 +#, c-format +msgid "-h\t\tgenerate header file\n" +msgstr "" + +#: sunrpc/rpc_main.c:1476 +#, c-format +msgid "-i size\t\tsize at which to start generating inline code\n" +msgstr "" + +#: sunrpc/rpc_main.c:1477 +#, c-format +msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" +msgstr "" + +#: sunrpc/rpc_main.c:1478 +#, c-format +msgid "-K seconds\tserver exits after K seconds of inactivity\n" +msgstr "" + +#: sunrpc/rpc_main.c:1479 +#, c-format +msgid "-l\t\tgenerate client side stubs\n" +msgstr "" + +#: sunrpc/rpc_main.c:1480 +#, c-format +msgid "-L\t\tserver errors will be printed to syslog\n" +msgstr "" + +#: sunrpc/rpc_main.c:1481 +#, c-format +msgid "-m\t\tgenerate server side stubs\n" +msgstr "" + +#: sunrpc/rpc_main.c:1482 +#, c-format +msgid "-M\t\tgenerate MT-safe code\n" +msgstr "" + +#: sunrpc/rpc_main.c:1483 +#, c-format +msgid "-n netid\tgenerate server code that supports named netid\n" +msgstr "" + +#: sunrpc/rpc_main.c:1484 +#, c-format +msgid "-N\t\tsupports multiple arguments and call-by-value\n" +msgstr "" + +#: sunrpc/rpc_main.c:1485 +#, c-format +msgid "-o outfile\tname of the output file\n" +msgstr "" + +#: sunrpc/rpc_main.c:1486 +#, c-format +msgid "-s nettype\tgenerate server code that supports named nettype\n" +msgstr "" + +#: sunrpc/rpc_main.c:1487 +#, c-format +msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" +msgstr "" + +#: sunrpc/rpc_main.c:1488 +#, c-format +msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" +msgstr "" + +#: sunrpc/rpc_main.c:1489 +#, c-format +msgid "-Sm \t\tgenerate makefile template \n" +msgstr "" + +#: sunrpc/rpc_main.c:1490 +#, c-format +msgid "-t\t\tgenerate RPC dispatch table\n" +msgstr "" + +#: sunrpc/rpc_main.c:1491 +#, c-format +msgid "-T\t\tgenerate code to support RPC dispatch tables\n" +msgstr "" + +#: sunrpc/rpc_main.c:1492 +#, c-format +msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" +msgstr "" + #: sunrpc/rpc_scan.c:114 msgid "constant or identifier expected" msgstr "" @@ -4739,79 +4926,79 @@ msgstr "" msgid "preprocessor error" msgstr "" -#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383 +#: sunrpc/rpcinfo.c:254 sunrpc/rpcinfo.c:400 #, c-format msgid "program %lu is not available\n" msgstr "" -#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333 -#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476 -#: sunrpc/rpcinfo.c:510 +#: sunrpc/rpcinfo.c:281 sunrpc/rpcinfo.c:327 sunrpc/rpcinfo.c:350 +#: sunrpc/rpcinfo.c:424 sunrpc/rpcinfo.c:470 sunrpc/rpcinfo.c:493 +#: sunrpc/rpcinfo.c:527 #, c-format msgid "program %lu version %lu is not available\n" msgstr "" -#: sunrpc/rpcinfo.c:515 +#: sunrpc/rpcinfo.c:532 #, c-format msgid "program %lu version %lu ready and waiting\n" msgstr "" -#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563 +#: sunrpc/rpcinfo.c:573 sunrpc/rpcinfo.c:580 msgid "rpcinfo: can't contact portmapper" msgstr "" -#: sunrpc/rpcinfo.c:570 +#: sunrpc/rpcinfo.c:587 msgid "No remote programs registered.\n" msgstr "" -#: sunrpc/rpcinfo.c:574 +#: sunrpc/rpcinfo.c:591 msgid " program vers proto port\n" msgstr "" -#: sunrpc/rpcinfo.c:613 +#: sunrpc/rpcinfo.c:630 msgid "(unknown)" msgstr "" -#: sunrpc/rpcinfo.c:637 +#: sunrpc/rpcinfo.c:654 #, c-format msgid "rpcinfo: broadcast failed: %s\n" msgstr "" -#: sunrpc/rpcinfo.c:658 +#: sunrpc/rpcinfo.c:675 msgid "Sorry. You are not root\n" msgstr "" -#: sunrpc/rpcinfo.c:665 +#: sunrpc/rpcinfo.c:682 #, c-format msgid "rpcinfo: Could not delete registration for prog %s version %s\n" msgstr "" -#: sunrpc/rpcinfo.c:674 +#: sunrpc/rpcinfo.c:691 msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" msgstr "" -#: sunrpc/rpcinfo.c:676 +#: sunrpc/rpcinfo.c:693 msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" msgstr "" -#: sunrpc/rpcinfo.c:678 +#: sunrpc/rpcinfo.c:695 msgid " rpcinfo -p [ host ]\n" msgstr "" -#: sunrpc/rpcinfo.c:679 +#: sunrpc/rpcinfo.c:696 msgid " rpcinfo -b prognum versnum\n" msgstr "" -#: sunrpc/rpcinfo.c:680 +#: sunrpc/rpcinfo.c:697 msgid " rpcinfo -d prognum versnum\n" msgstr "" -#: sunrpc/rpcinfo.c:695 +#: sunrpc/rpcinfo.c:722 #, c-format msgid "rpcinfo: %s is unknown service\n" msgstr "" -#: sunrpc/rpcinfo.c:732 +#: sunrpc/rpcinfo.c:759 #, c-format msgid "rpcinfo: %s is unknown host\n" msgstr "" @@ -5969,415 +6156,422 @@ msgstr "" msgid "makecontext: does not know how to handle more than 8 arguments\n" msgstr "" -#: sysdeps/unix/sysv/linux/lddlibc4.c:64 +#: sysdeps/unix/sysv/linux/lddlibc4.c:61 +#, c-format +msgid "" +"Usage: lddlibc4 FILE\n" +"\n" +msgstr "" + +#: sysdeps/unix/sysv/linux/lddlibc4.c:82 #, c-format msgid "cannot open `%s'" msgstr "" -#: sysdeps/unix/sysv/linux/lddlibc4.c:68 +#: sysdeps/unix/sysv/linux/lddlibc4.c:86 #, c-format msgid "cannot read header from `%s'" msgstr "" -#: timezone/zdump.c:211 +#: timezone/zdump.c:210 msgid "lacks alphabetic at start" msgstr "" -#: timezone/zdump.c:213 +#: timezone/zdump.c:212 msgid "has fewer than 3 alphabetics" msgstr "" -#: timezone/zdump.c:215 +#: timezone/zdump.c:214 msgid "has more than 6 alphabetics" msgstr "" -#: timezone/zdump.c:223 +#: timezone/zdump.c:222 msgid "differs from POSIX standard" msgstr "" -#: timezone/zdump.c:229 +#: timezone/zdump.c:228 #, c-format msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" msgstr "" -#: timezone/zdump.c:280 +#: timezone/zdump.c:279 #, c-format msgid "" "%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" msgstr "" -#: timezone/zdump.c:297 +#: timezone/zdump.c:296 #, c-format msgid "%s: wild -c argument %s\n" msgstr "" -#: timezone/zdump.c:388 +#: timezone/zdump.c:387 msgid "Error writing to standard output" msgstr "" -#: timezone/zdump.c:411 +#: timezone/zdump.c:410 #, c-format msgid "" "%s: use of -v on system with floating time_t other than float or double\n" msgstr "" -#: timezone/zic.c:392 +#: timezone/zic.c:388 #, c-format msgid "%s: Memory exhausted: %s\n" msgstr "" -#: timezone/zic.c:451 +#: timezone/zic.c:434 #, c-format msgid "\"%s\", line %d: %s" msgstr "" -#: timezone/zic.c:454 +#: timezone/zic.c:437 #, c-format msgid " (rule from \"%s\", line %d)" msgstr "" -#: timezone/zic.c:466 +#: timezone/zic.c:449 msgid "warning: " msgstr "" -#: timezone/zic.c:476 +#: timezone/zic.c:459 #, c-format msgid "" "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" msgstr "" -#: timezone/zic.c:511 +#: timezone/zic.c:494 msgid "wild compilation-time specification of zic_t" msgstr "" -#: timezone/zic.c:528 +#: timezone/zic.c:511 #, c-format msgid "%s: More than one -d option specified\n" msgstr "" -#: timezone/zic.c:538 +#: timezone/zic.c:521 #, c-format msgid "%s: More than one -l option specified\n" msgstr "" -#: timezone/zic.c:548 +#: timezone/zic.c:531 #, c-format msgid "%s: More than one -p option specified\n" msgstr "" -#: timezone/zic.c:558 +#: timezone/zic.c:541 #, c-format msgid "%s: More than one -y option specified\n" msgstr "" -#: timezone/zic.c:568 +#: timezone/zic.c:551 #, c-format msgid "%s: More than one -L option specified\n" msgstr "" -#: timezone/zic.c:617 +#: timezone/zic.c:600 msgid "link to link" msgstr "" -#: timezone/zic.c:682 +#: timezone/zic.c:665 msgid "hard link failed, symbolic link used" msgstr "" -#: timezone/zic.c:690 +#: timezone/zic.c:673 #, c-format msgid "%s: Can't link from %s to %s: %s\n" msgstr "" -#: timezone/zic.c:762 timezone/zic.c:764 +#: timezone/zic.c:745 timezone/zic.c:747 msgid "same rule name in multiple files" msgstr "" -#: timezone/zic.c:805 +#: timezone/zic.c:788 msgid "unruly zone" msgstr "" -#: timezone/zic.c:812 +#: timezone/zic.c:795 #, c-format msgid "%s in ruleless zone" msgstr "" -#: timezone/zic.c:833 +#: timezone/zic.c:816 msgid "standard input" msgstr "" -#: timezone/zic.c:838 +#: timezone/zic.c:821 #, c-format msgid "%s: Can't open %s: %s\n" msgstr "" -#: timezone/zic.c:849 +#: timezone/zic.c:832 msgid "line too long" msgstr "" -#: timezone/zic.c:869 +#: timezone/zic.c:852 msgid "input line of unknown type" msgstr "" -#: timezone/zic.c:885 +#: timezone/zic.c:868 #, c-format msgid "%s: Leap line in non leap seconds file %s\n" msgstr "" -#: timezone/zic.c:892 timezone/zic.c:1329 timezone/zic.c:1351 +#: timezone/zic.c:875 timezone/zic.c:1312 timezone/zic.c:1334 #, c-format msgid "%s: panic: Invalid l_value %d\n" msgstr "" -#: timezone/zic.c:900 +#: timezone/zic.c:883 #, c-format msgid "%s: Error reading %s\n" msgstr "" -#: timezone/zic.c:907 +#: timezone/zic.c:890 #, c-format msgid "%s: Error closing %s: %s\n" msgstr "" -#: timezone/zic.c:912 +#: timezone/zic.c:895 msgid "expected continuation line not found" msgstr "" -#: timezone/zic.c:956 timezone/zic.c:2489 timezone/zic.c:2508 +#: timezone/zic.c:939 timezone/zic.c:2476 timezone/zic.c:2495 msgid "time overflow" msgstr "" -#: timezone/zic.c:960 +#: timezone/zic.c:943 msgid "24:00 not handled by pre-1998 versions of zic" msgstr "" -#: timezone/zic.c:963 +#: timezone/zic.c:946 msgid "values over 24 hours not handled by pre-2007 versions of zic" msgstr "" -#: timezone/zic.c:976 +#: timezone/zic.c:959 msgid "wrong number of fields on Rule line" msgstr "" -#: timezone/zic.c:980 +#: timezone/zic.c:963 msgid "nameless rule" msgstr "" -#: timezone/zic.c:985 +#: timezone/zic.c:968 msgid "invalid saved time" msgstr "" -#: timezone/zic.c:1006 +#: timezone/zic.c:989 msgid "wrong number of fields on Zone line" msgstr "" -#: timezone/zic.c:1012 +#: timezone/zic.c:995 #, c-format msgid "\"Zone %s\" line and -l option are mutually exclusive" msgstr "" -#: timezone/zic.c:1020 +#: timezone/zic.c:1003 #, c-format msgid "\"Zone %s\" line and -p option are mutually exclusive" msgstr "" -#: timezone/zic.c:1032 +#: timezone/zic.c:1015 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" msgstr "" -#: timezone/zic.c:1048 +#: timezone/zic.c:1031 msgid "wrong number of fields on Zone continuation line" msgstr "" -#: timezone/zic.c:1088 +#: timezone/zic.c:1071 msgid "invalid UTC offset" msgstr "" -#: timezone/zic.c:1091 +#: timezone/zic.c:1074 msgid "invalid abbreviation format" msgstr "" -#: timezone/zic.c:1120 +#: timezone/zic.c:1103 msgid "Zone continuation line end time is not after end time of previous line" msgstr "" -#: timezone/zic.c:1148 +#: timezone/zic.c:1131 msgid "wrong number of fields on Leap line" msgstr "" -#: timezone/zic.c:1157 +#: timezone/zic.c:1140 msgid "invalid leaping year" msgstr "" -#: timezone/zic.c:1177 timezone/zic.c:1283 +#: timezone/zic.c:1160 timezone/zic.c:1266 msgid "invalid month name" msgstr "" -#: timezone/zic.c:1190 timezone/zic.c:1396 timezone/zic.c:1410 +#: timezone/zic.c:1173 timezone/zic.c:1379 timezone/zic.c:1393 msgid "invalid day of month" msgstr "" -#: timezone/zic.c:1195 +#: timezone/zic.c:1178 msgid "time before zero" msgstr "" -#: timezone/zic.c:1199 +#: timezone/zic.c:1182 msgid "time too small" msgstr "" -#: timezone/zic.c:1203 +#: timezone/zic.c:1186 msgid "time too large" msgstr "" -#: timezone/zic.c:1207 timezone/zic.c:1312 +#: timezone/zic.c:1190 timezone/zic.c:1295 msgid "invalid time of day" msgstr "" -#: timezone/zic.c:1226 +#: timezone/zic.c:1209 msgid "illegal CORRECTION field on Leap line" msgstr "" -#: timezone/zic.c:1231 +#: timezone/zic.c:1214 msgid "illegal Rolling/Stationary field on Leap line" msgstr "" -#: timezone/zic.c:1247 +#: timezone/zic.c:1230 msgid "wrong number of fields on Link line" msgstr "" -#: timezone/zic.c:1251 +#: timezone/zic.c:1234 msgid "blank FROM field on Link line" msgstr "" -#: timezone/zic.c:1255 +#: timezone/zic.c:1238 msgid "blank TO field on Link line" msgstr "" -#: timezone/zic.c:1333 +#: timezone/zic.c:1316 msgid "invalid starting year" msgstr "" -#: timezone/zic.c:1355 +#: timezone/zic.c:1338 msgid "invalid ending year" msgstr "" -#: timezone/zic.c:1359 +#: timezone/zic.c:1342 msgid "starting year greater than ending year" msgstr "" -#: timezone/zic.c:1366 +#: timezone/zic.c:1349 msgid "typed single year" msgstr "" -#: timezone/zic.c:1401 +#: timezone/zic.c:1384 msgid "invalid weekday name" msgstr "" -#: timezone/zic.c:1579 +#: timezone/zic.c:1562 #, c-format msgid "%s: Can't remove %s: %s\n" msgstr "" -#: timezone/zic.c:1589 +#: timezone/zic.c:1572 #, c-format msgid "%s: Can't create %s: %s\n" msgstr "" -#: timezone/zic.c:1739 +#: timezone/zic.c:1722 #, c-format msgid "%s: Error writing %s\n" msgstr "" -#: timezone/zic.c:2031 +#: timezone/zic.c:2015 msgid "no POSIX environment variable for zone" msgstr "" -#: timezone/zic.c:2185 +#: timezone/zic.c:2172 msgid "can't determine time zone abbreviation to use just after until time" msgstr "" -#: timezone/zic.c:2231 +#: timezone/zic.c:2218 msgid "too many transitions?!" msgstr "" -#: timezone/zic.c:2250 +#: timezone/zic.c:2237 msgid "internal error - addtype called with bad isdst" msgstr "" -#: timezone/zic.c:2254 +#: timezone/zic.c:2241 msgid "internal error - addtype called with bad ttisstd" msgstr "" -#: timezone/zic.c:2258 +#: timezone/zic.c:2245 msgid "internal error - addtype called with bad ttisgmt" msgstr "" -#: timezone/zic.c:2277 +#: timezone/zic.c:2264 msgid "too many local time types" msgstr "" -#: timezone/zic.c:2281 +#: timezone/zic.c:2268 msgid "UTC offset out of range" msgstr "" -#: timezone/zic.c:2309 +#: timezone/zic.c:2296 msgid "too many leap seconds" msgstr "" -#: timezone/zic.c:2315 +#: timezone/zic.c:2302 msgid "repeated leap second moment" msgstr "" -#: timezone/zic.c:2367 +#: timezone/zic.c:2354 msgid "Wild result from command execution" msgstr "" -#: timezone/zic.c:2368 +#: timezone/zic.c:2355 #, c-format msgid "%s: command was '%s', result was %d\n" msgstr "" -#: timezone/zic.c:2466 +#: timezone/zic.c:2453 msgid "Odd number of quotation marks" msgstr "" -#: timezone/zic.c:2555 +#: timezone/zic.c:2542 msgid "use of 2/29 in non leap-year" msgstr "" -#: timezone/zic.c:2590 +#: timezone/zic.c:2577 msgid "" "rule goes past start/end of month--will not work with pre-2004 versions of " "zic" msgstr "" -#: timezone/zic.c:2622 +#: timezone/zic.c:2609 msgid "time zone abbreviation lacks alphabetic at start" msgstr "" -#: timezone/zic.c:2624 +#: timezone/zic.c:2611 msgid "time zone abbreviation has more than 3 alphabetics" msgstr "" -#: timezone/zic.c:2626 +#: timezone/zic.c:2613 msgid "time zone abbreviation has too many alphabetics" msgstr "" -#: timezone/zic.c:2636 +#: timezone/zic.c:2623 msgid "time zone abbreviation differs from POSIX standard" msgstr "" -#: timezone/zic.c:2648 +#: timezone/zic.c:2635 msgid "too many, or too long, time zone abbreviations" msgstr "" -#: timezone/zic.c:2689 +#: timezone/zic.c:2676 #, c-format msgid "%s: Can't create directory %s: %s\n" msgstr "" -#: timezone/zic.c:2711 +#: timezone/zic.c:2698 #, c-format msgid "%s: %d did not sign extend correctly\n" msgstr "" diff --git a/libc/po/lt.po b/libc/po/lt.po index 516a93bd6..76b35b9d2 100644 --- a/libc/po/lt.po +++ b/libc/po/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: libc-2.7\n" "POT-Creation-Date: 2007-10-15 21:18-0700\n" -"PO-Revision-Date: 2008-10-28 01:02+0200\n" +"PO-Revision-Date: 2009-02-12 05:24+0200\n" "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" #: argp/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" -msgstr "%.*s: ARGP_HELP_FMT parametrui rekia reikšmės" +msgstr "%.*s: ARGP_HELP_FMT parametrui reikia reikšmės" #: argp/argp-help.c:238 #, c-format @@ -70,7 +70,6 @@ msgid "Set the program name" msgstr "Nustatyti programos pavadinimą" #: argp/argp-parse.c:106 -#, fuzzy msgid "Hang for SECS seconds (default 3600)" msgstr "Laukti SEK sekundžių (standartiškai 3600)" @@ -80,7 +79,7 @@ msgstr "Išspausdinti programos versiją" #: argp/argp-parse.c:183 msgid "(PROGRAM ERROR) No version known!?" -msgstr "(PROGRAM ERROR) Nežinoma joka versija!?" +msgstr "(PROGRAM ERROR) Nežinoma jokia versija!?" #: argp/argp-parse.c:623 #, c-format @@ -88,9 +87,8 @@ msgid "%s: Too many arguments\n" msgstr "%s: Per daug argumentų\n" #: argp/argp-parse.c:766 -#, fuzzy msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "(PROGRAM ERROR) Nežinoma joka versija!?" +msgstr "(PROGRAM ERROR) Parametras turėjo būti atpažintas!?" #: assert/assert-perr.c:57 #, c-format @@ -190,7 +188,6 @@ msgid "unknown set `%s'" msgstr "nežinomas rinkinys „%s“" #: catgets/gencat.c:563 -#, fuzzy msgid "invalid quote character" msgstr "netaisyklingas kabučių simbolis" @@ -208,12 +205,10 @@ msgid "duplicated message identifier" msgstr "pakartotas pranešimo identifikatorius" #: catgets/gencat.c:731 -#, fuzzy msgid "invalid character: message ignored" msgstr "netaisyklingas simbolis: pranešimas ignoruotas" #: catgets/gencat.c:774 -#, fuzzy msgid "invalid line" msgstr "nekorektiška eilutė" @@ -222,9 +217,9 @@ msgid "malformed line ignored" msgstr "nekorektiška eilutė ignoruota" #: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183 -#, fuzzy, c-format +#, c-format msgid "cannot open output file `%s'" -msgstr "%s: nepavyko atverti laikinojo failo: %s" +msgstr "nepavyko atverti išvedimo failo: „%s“" #: catgets/gencat.c:1195 locale/programs/linereader.c:560 #, fuzzy @@ -263,9 +258,9 @@ msgid "[FILE]" msgstr "[FAILAS]" #: debug/pcprofiledump.c:104 -#, fuzzy, c-format +#, c-format msgid "cannot open input file" -msgstr "%s: nepavyko atverti laikinojo failo: %s" +msgstr "nepavyko atverti įvedimo failo" #: debug/pcprofiledump.c:111 #, c-format @@ -350,9 +345,8 @@ msgid "invalid mode parameter" msgstr "netaisyklinga veiksena" #: elf/cache.c:69 -#, fuzzy msgid "unknown" -msgstr "%s: adresas nežinomas" +msgstr "nežinoma" #: elf/cache.c:112 msgid "Unknown OS" @@ -401,7 +395,7 @@ msgstr "%s pervardinimas į %s nesėkmingas" #: elf/cache.c:440 #, c-format msgid "Renaming of %s to %s failed" -msgstr "%s pervardinimas į %s nesėkmingas" +msgstr "%s pervadinimas į %s nesėkmingas" #: elf/dl-close.c:378 elf/dl-open.c:460 #, fuzzy @@ -573,14 +567,12 @@ msgid "invalid ELF header" msgstr "netaisyklinga ELF antraštė" #: elf/dl-load.c:1697 -#, fuzzy msgid "ELF file data encoding not big-endian" msgstr "ELF failo duomenų koduotė ne big-endian" #: elf/dl-load.c:1699 -#, fuzzy msgid "ELF file data encoding not little-endian" -msgstr "ELF failo duomenų koduotė ne big-endian" +msgstr "ELF failo duomenų koduotė ne little-endian" #: elf/dl-load.c:1703 msgid "ELF file version ident does not match current one" @@ -592,7 +584,7 @@ msgstr "ELF failo OS ABI netaisyklingas" #: elf/dl-load.c:1709 msgid "ELF file ABI version invalid" -msgstr "ELF failo ABI versioja netaisyklinga" +msgstr "ELF failo ABI versija netaisyklinga" #: elf/dl-load.c:1712 msgid "internal error" @@ -619,7 +611,6 @@ msgid "wrong ELF class: ELFCLASS32" msgstr "klaidinga ELF klasė: ELFCLASS32" #: elf/dl-load.c:2244 -#, fuzzy msgid "cannot open shared object file" msgstr "nepavyko atverti bendrojo objekto failo" @@ -640,7 +631,6 @@ msgid "TLS generation counter wrapped! Please report this." msgstr "TLS kartų skaitiklis persivertė! Prašytume apie tai pranešti." #: elf/dl-open.c:549 -#, fuzzy msgid "invalid mode for dlopen()" msgstr "netaisyklinga veiksena dlopen()" @@ -764,9 +754,9 @@ msgid "Configure Dynamic Linker Run Time Bindings." msgstr "" #: elf/ldconfig.c:319 -#, fuzzy, c-format +#, c-format msgid "Path `%s' given more than once" -msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vieną kartą" +msgstr "Kelias „%s“ nurodytas daugiau negu vieną kartą" #: elf/ldconfig.c:359 #, c-format @@ -784,9 +774,9 @@ msgid "Can't stat %s\n" msgstr "Nepavyko susaistyti (link) %s su %s" #: elf/ldconfig.c:468 -#, fuzzy, c-format +#, c-format msgid "%s is not a symbolic link\n" -msgstr "simbolinė nuoroda" +msgstr "%s nėra simbolinė nuoroda\n" #: elf/ldconfig.c:487 #, fuzzy, c-format @@ -817,9 +807,9 @@ msgid "Cannot lstat %s" msgstr "%s: nepavyko perskaityti: %s" #: elf/ldconfig.c:579 -#, fuzzy, c-format +#, c-format msgid "Ignored file %s since it is not a regular file." -msgstr "ne paprastas failas" +msgstr "Failas %s praleistas, nes tai nėra paprastas failas" #: elf/ldconfig.c:588 #, c-format @@ -837,9 +827,9 @@ msgid "Cannot stat %s" msgstr "%s: nepavyko perskaityti: %s" #: elf/ldconfig.c:814 elf/readlib.c:91 -#, fuzzy, c-format +#, c-format msgid "Input file %s not found.\n" -msgstr "Duomenų failas %s nerastas.\n" +msgstr "Įvedimo failas %s nerastas.\n" #: elf/ldconfig.c:888 #, c-format @@ -898,9 +888,9 @@ msgid "memory exhausted" msgstr "baigėsi atmintis" #: elf/ldconfig.c:1178 -#, fuzzy, c-format +#, c-format msgid "%s:%u: cannot read directory %s" -msgstr "nepavyko atverti aplanko %s" +msgstr "%s:%u: nepavyko atverti aplanko %s" #: elf/ldconfig.c:1223 #, c-format @@ -959,9 +949,8 @@ msgid "No such file or directory" msgstr "Toks failas ar aplankas neegzistuoja" #: elf/ldd.bash.in:151 inet/rcmd.c:483 -#, fuzzy msgid "not regular file" -msgstr "paprastas failas" +msgstr "ne paprastas failas" #: elf/ldd.bash.in:154 msgid "warning: you do not have execution permission for" @@ -1558,9 +1547,9 @@ msgstr "%s: klaida būsenų automate" #: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257 #: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237 #: locale/programs/locfile.c:826 locale/programs/repertoire.c:324 -#, fuzzy, c-format +#, c-format msgid "%s: premature end of file" -msgstr "%s: failo pabaiga" +msgstr "%s: ankstyva failo pabaiga" #: locale/programs/charmap.c:869 locale/programs/charmap.c:880 #, c-format @@ -5839,7 +5828,7 @@ msgstr "Kanalo numeris už ribų" #: sysdeps/gnu/errlist.c:1117 msgid "Level 2 not synchronized" -msgstr "2 lygmuo nesinchonizuotas" +msgstr "2 lygmuo nesinchronizuotas" #: sysdeps/gnu/errlist.c:1125 msgid "Level 3 halted" diff --git a/libc/posix/Makefile b/libc/posix/Makefile index 5bf02ff0d..40631c525 100644 --- a/libc/posix/Makefile +++ b/libc/posix/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-1999, 2000-2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 1991-1999, 2000-2006, 2007, 2009 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 @@ -357,7 +357,7 @@ getconf-cmd = $(objpfx)cross-getconf # Get configuration defines for cross-getconf by preprocessing confstr.c. $(objpfx)cross-getconf.h: confstr.c - $(compile.c) -E -dM -o - | grep "define _POSIX_V6_ILP32_OFF32\|define _POSIX_V6_ILP32_OFFBIG\|define _POSIX_V6_LP64_OFF64\|define _POSIX_V6_LPBIG_OFFBIG" > $(objpfx)cross-getconf.h + $(compile.c) -E -dM -o - | grep "define _POSIX_V7_ILP32_OFF32\|define _POSIX_V7_ILP32_OFFBIG\|define _POSIX_V7_LP64_OFF64\|define _POSIX_V7_LPBIG_OFFBIG|_POSIX_V6_ILP32_OFF32\|define _POSIX_V6_ILP32_OFFBIG\|define _POSIX_V6_LP64_OFF64\|define _POSIX_V6_LPBIG_OFFBIG|_XBS5_ILP32_OFF32\|define _XBS5_ILP32_OFFBIG\|define _XBS5_LP64_OFF64\|define _XBS5_LPBIG_OFFBIG" > $(objpfx)cross-getconf.h cross-getconf-CFLAGS = -O -I$(objpfx) @@ -367,6 +367,10 @@ endif $(objpfx)getconf.speclist: $(getconf-dep) LC_ALL=C GETCONF_DIR=/dev/null \ - $(getconf-cmd) _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new + $(getconf-cmd) _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new + LC_ALL=C GETCONF_DIR=/dev/null \ + $(getconf-cmd) _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new + LC_ALL=C GETCONF_DIR=/dev/null \ + $(getconf-cmd) _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new mv -f $@.new $@ # eglibc: end. diff --git a/libc/posix/confstr.c b/libc/posix/confstr.c index 78fb4e136..91cd144ed 100644 --- a/libc/posix/confstr.c +++ b/libc/posix/confstr.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997, 2000-2002, 2003, 2004 - Free Software Foundation, Inc. +/* Copyright (C) 1991,1996,1997,2000-2004,2009 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 @@ -46,19 +45,18 @@ confstr (name, buf, len) } break; - case _CS_V6_WIDTH_RESTRICTED_ENVS: /* eglibc: We share code in confstr.inc with cross-getconf.c. */ #include "confstr.inc" /* eglibc: end. */ - break; case _CS_XBS5_ILP32_OFF32_CFLAGS: case _CS_POSIX_V6_ILP32_OFF32_CFLAGS: + case _CS_POSIX_V7_ILP32_OFF32_CFLAGS: #ifdef __ILP32_OFF32_CFLAGS -# if _POSIX_V6_ILP32_OFF32 == -1 +# if _POSIX_V7_ILP32_OFF32 == -1 # error "__ILP32_OFF32_CFLAGS should not be defined" -# elif !defined _POSIX_V6_ILP32_OFF32 - if (__sysconf (_SC_V6_ILP32_OFF32) < 0) +# elif !defined _POSIX_V7_ILP32_OFF32 + if (__sysconf (_SC_V7_ILP32_OFF32) < 0) break; # endif string = __ILP32_OFF32_CFLAGS; @@ -68,11 +66,12 @@ confstr (name, buf, len) case _CS_XBS5_ILP32_OFFBIG_CFLAGS: case _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: + case _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: #ifdef __ILP32_OFFBIG_CFLAGS -# if _POSIX_V6_ILP32_OFFBIG == -1 +# if _POSIX_V7_ILP32_OFFBIG == -1 # error "__ILP32_OFFBIG_CFLAGS should not be defined" -# elif !defined _POSIX_V6_ILP32_OFFBIG - if (__sysconf (_SC_V6_ILP32_OFFBIG) < 0) +# elif !defined _POSIX_V7_ILP32_OFFBIG + if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0) break; # endif string = __ILP32_OFFBIG_CFLAGS; @@ -82,11 +81,12 @@ confstr (name, buf, len) case _CS_XBS5_LP64_OFF64_CFLAGS: case _CS_POSIX_V6_LP64_OFF64_CFLAGS: + case _CS_POSIX_V7_LP64_OFF64_CFLAGS: #ifdef __LP64_OFF64_CFLAGS -# if _POSIX_V6_LP64_OFF64 == -1 +# if _POSIX_V7_LP64_OFF64 == -1 # error "__LP64_OFF64_CFLAGS should not be defined" -# elif !defined _POSIX_V6_LP64_OFF64 - if (__sysconf (_SC_V6_LP64_OFF64) < 0) +# elif !defined _POSIX_V7_LP64_OFF64 + if (__sysconf (_SC_V7_LP64_OFF64) < 0) break; # endif string = __LP64_OFF64_CFLAGS; @@ -96,11 +96,12 @@ confstr (name, buf, len) case _CS_XBS5_ILP32_OFF32_LDFLAGS: case _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: + case _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: #ifdef __ILP32_OFF32_LDFLAGS -# if _POSIX_V6_ILP32_OFF32 == -1 +# if _POSIX_V7_ILP32_OFF32 == -1 # error "__ILP32_OFF32_LDFLAGS should not be defined" -# elif !defined _POSIX_V6_ILP32_OFF32 - if (__sysconf (_SC_V6_ILP32_OFF32) < 0) +# elif !defined _POSIX_V7_ILP32_OFF32 + if (__sysconf (_SC_V7_ILP32_OFF32) < 0) break; # endif string = __ILP32_OFF32_LDFLAGS; @@ -110,11 +111,12 @@ confstr (name, buf, len) case _CS_XBS5_ILP32_OFFBIG_LDFLAGS: case _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: + case _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: #ifdef __ILP32_OFFBIG_LDFLAGS -# if _POSIX_V6_ILP32_OFFBIG == -1 +# if _POSIX_V7_ILP32_OFFBIG == -1 # error "__ILP32_OFFBIG_LDFLAGS should not be defined" -# elif !defined _POSIX_V6_ILP32_OFFBIG - if (__sysconf (_SC_V6_ILP32_OFFBIG) < 0) +# elif !defined _POSIX_V7_ILP32_OFFBIG + if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0) break; # endif string = __ILP32_OFFBIG_LDFLAGS; @@ -124,11 +126,12 @@ confstr (name, buf, len) case _CS_XBS5_LP64_OFF64_LDFLAGS: case _CS_POSIX_V6_LP64_OFF64_LDFLAGS: + case _CS_POSIX_V7_LP64_OFF64_LDFLAGS: #ifdef __LP64_OFF64_LDFLAGS -# if _POSIX_V6_LP64_OFF64 == -1 +# if _POSIX_V7_LP64_OFF64 == -1 # error "__LP64_OFF64_LDFLAGS should not be defined" -# elif !defined _POSIX_V6_LP64_OFF64 - if (__sysconf (_SC_V6_LP64_OFF64) < 0) +# elif !defined _POSIX_V7_LP64_OFF64 + if (__sysconf (_SC_V7_LP64_OFF64) < 0) break; # endif string = __LP64_OFF64_LDFLAGS; @@ -184,6 +187,17 @@ confstr (name, buf, len) case _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: case _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: case _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: + + case _CS_POSIX_V7_ILP32_OFF32_LIBS: + case _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: + case _CS_POSIX_V7_ILP32_OFFBIG_LIBS: + case _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: + case _CS_POSIX_V7_LP64_OFF64_LIBS: + case _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: + case _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: + case _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: + case _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: + case _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: /* GNU libc does not require special actions to use LFS functions. */ break; diff --git a/libc/posix/confstr.inc b/libc/posix/confstr.inc index 90fe4e3cd..d046edb1a 100644 --- a/libc/posix/confstr.inc +++ b/libc/posix/confstr.inc @@ -20,6 +20,70 @@ /* eglibc: The following piece of code was extracted from confstr.c to share it with cross-getconf.c. */ + case _CS_V7_WIDTH_RESTRICTED_ENVS: + /* We have to return a newline-separated list of named of + programming environements in which the widths of blksize_t, + cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t, + ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ + { + char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; + + string_len = 0; +#ifndef _POSIX_V7_ILP32_OFF32 + if (__sysconf (_SC_V7_ILP32_OFF32) > 0) +#endif +#if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 + { + memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", + sizeof "POSIX_V7_ILP32_OFF32" - 1); + string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; + } +#endif +#ifndef _POSIX_V7_ILP32_OFFBIG + if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) +#endif +#if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", + sizeof "POSIX_V7_ILP32_OFFBIG" - 1); + string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; + } +#endif +#ifndef _POSIX_V7_LP64_OFF64 + if (__sysconf (_SC_V7_LP64_OFF64) > 0) +#endif +#if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", + sizeof "POSIX_V7_LP64_OFF64" - 1); + string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; + } +#endif +#ifndef _POSIX_V7_LPBIG_OFFBIG + if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) +#endif +#if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", + sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); + string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; + } +#endif + restenvs[string_len++] = '\0'; + string = restenvs; + } + break; + + case _CS_V6_WIDTH_RESTRICTED_ENVS: /* We have to return a newline-separated list of named of programming environements in which the widths of blksize_t, cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t, @@ -80,3 +144,67 @@ restenvs[string_len++] = '\0'; string = restenvs; } + break; + + case _CS_V5_WIDTH_RESTRICTED_ENVS: + /* We have to return a newline-separated list of named of + programming environements in which the widths of blksize_t, + cc_t, mode_t, nfds_t, pid_t, ptrdiff_t, size_t, speed_t, + ssize_t, suseconds_t, tcflag_t, useconds_t, wchar_t, and + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ + { + char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"]; + + string_len = 0; +#ifndef _XBS5_ILP32_OFF32 + if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) +#endif +#if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 + { + memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", + sizeof "XBS5_ILP32_OFF32" - 1); + string_len += sizeof "XBS5_ILP32_OFF32" - 1; + } +#endif +#ifndef _XBS5_ILP32_OFFBIG + if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) +#endif +#if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", + sizeof "XBS5_ILP32_OFFBIG" - 1); + string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; + } +#endif +#ifndef _XBS5_LP64_OFF64 + if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) +#endif +#if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_LP64_OFF64", + sizeof "XBS5_LP64_OFF64" - 1); + string_len += sizeof "XBS5_LP64_OFF64" - 1; + } +#endif +#ifndef _XBS5_LPBIG_OFFBIG + if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) +#endif +#if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 + { + if (string_len) + restenvs[string_len++] = '\n'; + memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", + sizeof "XBS5_LPBIG_OFFBIG" - 1); + string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; + } +#endif + restenvs[string_len++] = '\0'; + string = restenvs; + } + break; diff --git a/libc/posix/cross-getconf.c b/libc/posix/cross-getconf.c index 9b9f3c66e..dd7eb333e 100644 --- a/libc/posix/cross-getconf.c +++ b/libc/posix/cross-getconf.c @@ -20,15 +20,35 @@ #include <string.h> /* Undefine macros that should be defined in cross-getconf.h. */ +#undef _POSIX_V7_ILP32_OFF32 +#undef _POSIX_V7_ILP32_OFFBIG +#undef _POSIX_V7_LP64_OFF64 +#undef _POSIX_V7_LPBIG_OFFBIG #undef _POSIX_V6_ILP32_OFF32 #undef _POSIX_V6_ILP32_OFFBIG #undef _POSIX_V6_LP64_OFF64 #undef _POSIX_V6_LPBIG_OFFBIG +#undef _XBS5_ILP32_OFF32 +#undef _XBS5_ILP32_OFFBIG +#undef _XBS5_LP64_OFF64 +#undef _XBS5_LPBIG_OFFBIG #include "cross-getconf.h" /* Define macros cross-getconf.h doesn't define to (-1). This will prevent using host's __sysconf in confstr.inc. */ +#ifndef _POSIX_V7_ILP32_OFF32 +# define _POSIX_V7_ILP32_OFF32 (-1) +#endif +#ifndef _POSIX_V7_ILP32_OFFBIG +# define _POSIX_V7_ILP32_OFFBIG (-1) +#endif +#ifndef _POSIX_V7_LP64_OFF64 +# define _POSIX_V7_LP64_OFF64 (-1) +#endif +#ifndef _POSIX_V7_LPBIG_OFFBIG +# define _POSIX_V7_LPBIG_OFFBIG (-1) +#endif #ifndef _POSIX_V6_ILP32_OFF32 # define _POSIX_V6_ILP32_OFF32 (-1) #endif @@ -41,18 +61,33 @@ #ifndef _POSIX_V6_LPBIG_OFFBIG # define _POSIX_V6_LPBIG_OFFBIG (-1) #endif +#ifndef _XBS5_ILP32_OFF32 +# define _XBS5_ILP32_OFF32 (-1) +#endif +#ifndef _XBS5_ILP32_OFFBIG +# define _XBS5_ILP32_OFFBIG (-1) +#endif +#ifndef _XBS5_LP64_OFF64 +# define _XBS5_LP64_OFF64 (-1) +#endif +#ifndef _XBS5_LPBIG_OFFBIG +# define _XBS5_LPBIG_OFFBIG (-1) +#endif /* Cross-getconf is a very simple program that assumes fixed input and produces fixed output. It handles only cases that are necessary to cross-compile EGLIBC. */ void -cross_getconf (void) +cross_getconf (int name) { const char *string = ""; size_t string_len = 1; + switch (name) + { #include "confstr.inc" + } printf ("%.*s\n", (int) string_len, string); } @@ -62,11 +97,10 @@ main (int argc, char *argv[]) { const char *getconf_dir; - if (argc != 2 || strcmp (argv[1], "_POSIX_V6_WIDTH_RESTRICTED_ENVS") != 0) + if (argc != 2) { fprintf (stderr, - "%s: the only supported argument value is " - "_POSIX_V6_WIDTH_RESTRICTED_ENVS", argv[0]); + "%s: must be called with exactly one argument\n", argv[0]); return 1; } @@ -78,6 +112,20 @@ main (int argc, char *argv[]) return 1; } - cross_getconf (); + if (strcmp (argv[1], "_POSIX_V7_WIDTH_RESTRICTED_ENVS") == 0) + cross_getconf (_CS_V7_WIDTH_RESTRICTED_ENVS); + else if (strcmp (argv[1], "_POSIX_V6_WIDTH_RESTRICTED_ENVS") == 0) + cross_getconf (_CS_V6_WIDTH_RESTRICTED_ENVS); + else if (strcmp (argv[1], "_XBS5_WIDTH_RESTRICTED_ENVS") == 0) + cross_getconf (_CS_V5_WIDTH_RESTRICTED_ENVS); + else + { + fprintf (stderr, + "%s: the only supported arguments value are " + "_POSIX_V7_WIDTH_RESTRICTED_ENVS, " + "_POSIX_V6_WIDTH_RESTRICTED_ENVS, and " + "_XBS5_WIDTH_RESTRICTED_ENVS\n", argv[0]); + return 1; + } return 0; } diff --git a/libc/posix/getconf.c b/libc/posix/getconf.c index 5e5ee1af5..623eed1a9 100644 --- a/libc/posix/getconf.c +++ b/libc/posix/getconf.c @@ -528,6 +528,11 @@ static const struct conf vars[] = #endif /* Programming environments. */ +#ifdef _CS_V5_WIDTH_RESTRICTED_ENVS + { "_XBS5_WIDTH_RESTRICTED_ENVS", _CS_V5_WIDTH_RESTRICTED_ENVS, CONFSTR }, + { "XBS5_WIDTH_RESTRICTED_ENVS", _CS_V5_WIDTH_RESTRICTED_ENVS, CONFSTR }, +#endif + #ifdef _SC_XBS5_ILP32_OFF32 { "_XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32, SYSCONF }, #endif @@ -661,6 +666,75 @@ static const struct conf vars[] = { "POSIX_V6_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, CONFSTR }, #endif +#ifdef _SC_V7_ILP32_OFF32 + { "_POSIX_V7_ILP32_OFF32", _SC_V7_ILP32_OFF32, SYSCONF }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFF32_CFLAGS + { "POSIX_V7_ILP32_OFF32_CFLAGS", _CS_POSIX_V7_ILP32_OFF32_CFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFF32_LDFLAGS + { "POSIX_V7_ILP32_OFF32_LDFLAGS", _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFF32_LIBS + { "POSIX_V7_ILP32_OFF32_LIBS", _CS_POSIX_V7_ILP32_OFF32_LIBS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS + { "POSIX_V7_ILP32_OFF32_LINTFLAGS", _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, CONFSTR }, +#endif + +#ifdef _CS_V7_WIDTH_RESTRICTED_ENVS + { "_POSIX_V7_WIDTH_RESTRICTED_ENVS", _CS_V7_WIDTH_RESTRICTED_ENVS, CONFSTR }, + { "POSIX_V7_WIDTH_RESTRICTED_ENVS", _CS_V7_WIDTH_RESTRICTED_ENVS, CONFSTR }, +#endif + +#ifdef _SC_V7_ILP32_OFFBIG + { "_POSIX_V7_ILP32_OFFBIG", _SC_V7_ILP32_OFFBIG, SYSCONF }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS + { "POSIX_V7_ILP32_OFFBIG_CFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS + { "POSIX_V7_ILP32_OFFBIG_LDFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFFBIG_LIBS + { "POSIX_V7_ILP32_OFFBIG_LIBS", _CS_POSIX_V7_ILP32_OFFBIG_LIBS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS + { "POSIX_V7_ILP32_OFFBIG_LINTFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, CONFSTR }, +#endif + +#ifdef _SC_V7_LP64_OFF64 + { "_POSIX_V7_LP64_OFF64", _SC_V7_LP64_OFF64, SYSCONF }, +#endif +#ifdef _CS_POSIX_V7_LP64_OFF64_CFLAGS + { "POSIX_V7_LP64_OFF64_CFLAGS", _CS_POSIX_V7_LP64_OFF64_CFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LP64_OFF64_LDFLAGS + { "POSIX_V7_LP64_OFF64_LDFLAGS", _CS_POSIX_V7_LP64_OFF64_LDFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LP64_OFF64_LIBS + { "POSIX_V7_LP64_OFF64_LIBS", _CS_POSIX_V7_LP64_OFF64_LIBS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LP64_OFF64_LINTFLAGS + { "POSIX_V7_LP64_OFF64_LINTFLAGS", _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, CONFSTR }, +#endif + +#ifdef _SC_V7_LPBIG_OFFBIG + { "_POSIX_V7_LPBIG_OFFBIG", _SC_V7_LPBIG_OFFBIG, SYSCONF }, +#endif +#ifdef _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS + { "POSIX_V7_LPBIG_OFFBIG_CFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS + { "POSIX_V7_LPBIG_OFFBIG_LDFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LPBIG_OFFBIG_LIBS + { "POSIX_V7_LPBIG_OFFBIG_LIBS", _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, CONFSTR }, +#endif +#ifdef _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS + { "POSIX_V7_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, CONFSTR }, +#endif + #ifdef _SC_ADVISORY_INFO { "_POSIX_ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF }, #endif @@ -926,12 +1000,20 @@ static const struct conf vars[] = }; -static struct { const char *name; int num; } specs[] = +static const struct { const char *name; int num; } specs[] = { + { "XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32 }, + { "XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG }, + { "XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64 }, + { "XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG }, { "POSIX_V6_ILP32_OFF32", _SC_V6_ILP32_OFF32 }, { "POSIX_V6_ILP32_OFFBIG", _SC_V6_ILP32_OFFBIG }, { "POSIX_V6_LP64_OFF64", _SC_V6_LP64_OFF64 }, - { "POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG } + { "POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG }, + { "POSIX_V7_ILP32_OFF32", _SC_V7_ILP32_OFF32 }, + { "POSIX_V7_ILP32_OFFBIG", _SC_V7_ILP32_OFFBIG }, + { "POSIX_V7_LP64_OFF64", _SC_V7_LP64_OFF64 }, + { "POSIX_V7_LPBIG_OFFBIG", _SC_V7_LPBIG_OFFBIG }, }; static const int nspecs = sizeof (specs) / sizeof (specs[0]); @@ -949,6 +1031,7 @@ usage (void) exit (2); } + static void print_all (const char *path) { @@ -1026,9 +1109,8 @@ Usage: getconf [-v SPEC] VAR\n\ \n\ Get the configuration value for variable VAR, or for variable PATH_VAR\n\ for path PATH. If SPEC is given, give values for compilation\n\ -environment SPEC.\n\ -\n\ -For bug reporting instructions, please see:\n\ +environment SPEC.\n\n")); + printf (gettext ("For bug reporting instructions, please see:\n\ %s.\n"), REPORT_BUGS_TO); return 0; } @@ -1083,6 +1165,18 @@ For bug reporting instructions, please see:\n\ switch (specs[i].num) { +#ifndef _XBS5_ILP32_OFF32 + case _SC_XBS5_ILP32_OFF32: +#endif +#ifndef _XBS5_ILP32_OFFBIG + case _SC_XBS5_ILP32_OFFBIG: +#endif +#ifndef _XBS5_LP64_OFF64 + case _SC_XBS5_LP64_OFF64: +#endif +#ifndef _XBS5_LPBIG_OFFBIG + case _SC_XBS5_LPBIG_OFFBIG: +#endif #ifndef _POSIX_V6_ILP32_OFF32 case _SC_V6_ILP32_OFF32: #endif @@ -1095,6 +1189,18 @@ For bug reporting instructions, please see:\n\ #ifndef _POSIX_V6_LPBIG_OFFBIG case _SC_V6_LPBIG_OFFBIG: #endif +#ifndef _POSIX_V7_ILP32_OFF32 + case _SC_V7_ILP32_OFF32: +#endif +#ifndef _POSIX_V7_ILP32_OFFBIG + case _SC_V7_ILP32_OFFBIG: +#endif +#ifndef _POSIX_V7_LP64_OFF64 + case _SC_V7_LP64_OFF64: +#endif +#ifndef _POSIX_V7_LPBIG_OFFBIG + case _SC_V7_LPBIG_OFFBIG: +#endif { const char *args[argc + 3]; size_t spec_len = strlen (spec); diff --git a/libc/posix/sysconf.c b/libc/posix/sysconf.c index f22685cb2..971dd8bf7 100644 --- a/libc/posix/sysconf.c +++ b/libc/posix/sysconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1993,1995-1997,2001,2002,2003 +/* Copyright (C) 1991,1993,1995-1997,2001,2002,2003,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -255,6 +255,16 @@ __sysconf (name) case _SC_XBS5_LP64_OFF64: case _SC_XBS5_LPBIG_OFFBIG: + case _SC_POSIX_V6_ILP32_OFF32: + case _SC_POSIX_V6_ILP32_OFFBIG: + case _SC_POSIX_V6_LP64_OFF64: + case _SC_POSIX_V6_LPBIG_OFFBIG: + + case _SC_POSIX_V7_ILP32_OFF32: + case _SC_POSIX_V7_ILP32_OFFBIG: + case _SC_POSIX_V7_LP64_OFF64: + case _SC_POSIX_V7_LPBIG_OFFBIG: + case _SC_XOPEN_LEGACY: case _SC_XOPEN_REALTIME: case _SC_XOPEN_REALTIME_THREADS: diff --git a/libc/resolv/res_libc.c b/libc/resolv/res_libc.c index 8af57f7a4..810fbc804 100644 --- a/libc/resolv/res_libc.c +++ b/libc/resolv/res_libc.c @@ -96,10 +96,9 @@ __res_maybe_init (res_state resp, int preinit) { if (resp->options & RES_INIT) { if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) { + if (resp->nscount > 0) __res_iclose (resp, true); - return __res_vinit (resp, 1); - } + return __res_vinit (resp, 1); } return 0; } else if (preinit) { diff --git a/libc/stdio-common/psignal.c b/libc/stdio-common/psignal.c index 98049a587..c8111051b 100644 --- a/libc/stdio-common/psignal.c +++ b/libc/stdio-common/psignal.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997, 2001, 2002, 2004, 2005 +/* Copyright (C) 1991, 1992, 1995, 1996, 1997, 2001, 2002, 2004, 2005, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -37,7 +37,7 @@ psignal (int sig, const char *s) { const char *colon, *desc; - if (s == NULL || s == '\0') + if (s == NULL || *s == '\0') s = colon = ""; else colon = ": "; diff --git a/libc/sunrpc/rpc_common.c b/libc/sunrpc/rpc_common.c index 6b22b3f66..3fb0bda48 100644 --- a/libc/sunrpc/rpc_common.c +++ b/libc/sunrpc/rpc_common.c @@ -39,7 +39,11 @@ * This file should only contain common data (global data) that is exported * by public interfaces */ -struct opaque_auth _null_auth; +/* We are very tricky here. We want to have _null_auth in a read-only + section but we cannot add const to the type because this isn't how + the variable is declared. So we use the section attribute. */ +struct opaque_auth _null_auth __attribute__ ((nocommon)); +libc_hidden_def (_null_auth) fd_set svc_fdset; struct rpc_createerr rpc_createerr; struct pollfd *svc_pollfd; diff --git a/libc/sunrpc/rpc_main.c b/libc/sunrpc/rpc_main.c index 639984393..08369bb58 100644 --- a/libc/sunrpc/rpc_main.c +++ b/libc/sunrpc/rpc_main.c @@ -53,6 +53,7 @@ #include "proto.h" #include "../version.h" +#define PACKAGE _libc_intl_domainname #define EXTEND 1 /* alias for TRUE */ #define DONT_EXTEND 0 /* alias for FALSE */ @@ -1221,9 +1222,9 @@ parseargs (int argc, const char *argv[], struct commandline *cmd) } cmd->infile = argv[i]; } - else if (!strcmp (argv[i], "--help")) + else if (strcmp (argv[i], "--help") == 0) usage (stdout, 0); - else if (!strcmp (argv[i], "--version")) + else if (strcmp (argv[i], "--version") == 0) print_version (); else { @@ -1465,30 +1466,30 @@ usage (FILE *stream, int status) static void options_usage (FILE *stream, int status) { - f_print (stream, "options:\n"); - f_print (stream, "-a\t\tgenerate all files, including samples\n"); - f_print (stream, "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"); - f_print (stream, "-c\t\tgenerate XDR routines\n"); - f_print (stream, "-C\t\tANSI C mode\n"); - f_print (stream, "-Dname[=value]\tdefine a symbol (same as #define)\n"); - f_print (stream, "-h\t\tgenerate header file\n"); - f_print (stream, "-i size\t\tsize at which to start generating inline code\n"); - f_print (stream, "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n"); - f_print (stream, "-K seconds\tserver exits after K seconds of inactivity\n"); - f_print (stream, "-l\t\tgenerate client side stubs\n"); - f_print (stream, "-L\t\tserver errors will be printed to syslog\n"); - f_print (stream, "-m\t\tgenerate server side stubs\n"); - f_print (stream, "-M\t\tgenerate MT-safe code\n"); - f_print (stream, "-n netid\tgenerate server code that supports named netid\n"); - f_print (stream, "-N\t\tsupports multiple arguments and call-by-value\n"); - f_print (stream, "-o outfile\tname of the output file\n"); - f_print (stream, "-s nettype\tgenerate server code that supports named nettype\n"); - f_print (stream, "-Sc\t\tgenerate sample client code that uses remote procedures\n"); - f_print (stream, "-Ss\t\tgenerate sample server code that defines remote procedures\n"); - f_print (stream, "-Sm \t\tgenerate makefile template \n"); - f_print (stream, "-t\t\tgenerate RPC dispatch table\n"); - f_print (stream, "-T\t\tgenerate code to support RPC dispatch tables\n"); - f_print (stream, "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"); + f_print (stream, _("options:\n")); + f_print (stream, _("-a\t\tgenerate all files, including samples\n")); + f_print (stream, _("-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n")); + f_print (stream, _("-c\t\tgenerate XDR routines\n")); + f_print (stream, _("-C\t\tANSI C mode\n")); + f_print (stream, _("-Dname[=value]\tdefine a symbol (same as #define)\n")); + f_print (stream, _("-h\t\tgenerate header file\n")); + f_print (stream, _("-i size\t\tsize at which to start generating inline code\n")); + f_print (stream, _("-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n")); + f_print (stream, _("-K seconds\tserver exits after K seconds of inactivity\n")); + f_print (stream, _("-l\t\tgenerate client side stubs\n")); + f_print (stream, _("-L\t\tserver errors will be printed to syslog\n")); + f_print (stream, _("-m\t\tgenerate server side stubs\n")); + f_print (stream, _("-M\t\tgenerate MT-safe code\n")); + f_print (stream, _("-n netid\tgenerate server code that supports named netid\n")); + f_print (stream, _("-N\t\tsupports multiple arguments and call-by-value\n")); + f_print (stream, _("-o outfile\tname of the output file\n")); + f_print (stream, _("-s nettype\tgenerate server code that supports named nettype\n")); + f_print (stream, _("-Sc\t\tgenerate sample client code that uses remote procedures\n")); + f_print (stream, _("-Ss\t\tgenerate sample server code that defines remote procedures\n")); + f_print (stream, _("-Sm \t\tgenerate makefile template \n")); + f_print (stream, _("-t\t\tgenerate RPC dispatch table\n")); + f_print (stream, _("-T\t\tgenerate code to support RPC dispatch tables\n")); + f_print (stream, _("-Y path\t\tdirectory name to find C preprocessor (cpp)\n")); f_print (stream, "\n\ For bug reporting instructions, please see:\n\ diff --git a/libc/sunrpc/rpcinfo.c b/libc/sunrpc/rpcinfo.c index ec21033b4..ca91489f1 100644 --- a/libc/sunrpc/rpcinfo.c +++ b/libc/sunrpc/rpcinfo.c @@ -59,6 +59,7 @@ static char sccsid[] = "@(#)rpcinfo.c 1.22 87/08/12 SMI"; #include <libintl.h> #include "../version.h" +#define PACKAGE _libc_intl_domainname #define MAXHOSTLEN 256 diff --git a/libc/sysdeps/i386/i486/bits/atomic.h b/libc/sysdeps/i386/i486/bits/atomic.h index 21eea7112..4ee6fef69 100644 --- a/libc/sysdeps/i386/i486/bits/atomic.h +++ b/libc/sysdeps/i386/i486/bits/atomic.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002-2004, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -500,24 +500,34 @@ typedef uintmax_t uatomic_max_t; #define atomic_delay() asm ("rep; nop") -#define atomic_and(mem, mask) \ +#define __arch_and_body(lock, mem, mask) \ do { \ if (sizeof (*mem) == 1) \ - __asm __volatile (LOCK_PREFIX "andb %b1, %0" \ + __asm __volatile (lock "andb %b1, %0" \ : "=m" (*mem) \ - : "iq" (mask), "m" (*mem)); \ + : "iq" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else if (sizeof (*mem) == 2) \ - __asm __volatile (LOCK_PREFIX "andw %w1, %0" \ + __asm __volatile (lock "andw %w1, %0" \ : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ + : "ir" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else if (sizeof (*mem) == 4) \ - __asm __volatile (LOCK_PREFIX "andl %1, %0" \ + __asm __volatile (lock "andl %1, %0" \ : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ + : "ir" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else \ abort (); \ } while (0) +#define __arch_cprefix \ + "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" + +#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask) + +#define catomic_and(mem, mask) __arch_and_body (__arch_cprefix, mem, mask) + #define __arch_or_body(lock, mem, mask) \ do { \ @@ -542,7 +552,4 @@ typedef uintmax_t uatomic_max_t; #define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask) -#define __arch_or_cprefix \ - "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" - -#define catomic_or(mem, mask) __arch_or_body (__arch_or_cprefix, mem, mask) +#define catomic_or(mem, mask) __arch_or_body (__arch_cprefix, mem, mask) diff --git a/libc/sysdeps/posix/sysconf.c b/libc/sysdeps/posix/sysconf.c index 0c0d7d141..f1d1ee441 100644 --- a/libc/sysdeps/posix/sysconf.c +++ b/libc/sysdeps/posix/sysconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1993,1995-1997,1999-2003,2004,2006 +/* Copyright (C) 1991,1993,1995-1997,1999-2003,2004,2006,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -38,7 +38,9 @@ (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \ || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \ || !defined _POSIX_V6_ILP32_OFF32 || !defined _POSIX_V6_ILP32_OFFBIG \ - || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG) + || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG \ + || !defined _POSIX_V7_ILP32_OFF32 || !defined _POSIX_V7_ILP32_OFFBIG \ + || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG) #if NEED_CHECK_SPEC static long int __sysconf_check_spec (const char *spec); #endif @@ -840,6 +842,31 @@ __sysconf (name) return __sysconf_check_spec ("LPBIG_OFFBIG"); #endif + case _SC_V7_ILP32_OFF32: +#ifdef _POSIX_V7_ILP32_OFF32 + return _POSIX_V7_ILP32_OFF32; +#else + return __sysconf_check_spec ("ILP32_OFF32"); +#endif + case _SC_V7_ILP32_OFFBIG: +#ifdef _POSIX_V7_ILP32_OFFBIG + return _POSIX_V7_ILP32_OFFBIG; +#else + return __sysconf_check_spec ("ILP32_OFFBIG"); +#endif + case _SC_V7_LP64_OFF64: +#ifdef _POSIX_V7_LP64_OFF64 + return _POSIX_V7_LP64_OFF64; +#else + return __sysconf_check_spec ("LP64_OFF64"); +#endif + case _SC_V7_LPBIG_OFFBIG: +#ifdef _POSIX_V7_LPBIG_OFFBIG + return _POSIX_V7_LPBIG_OFFBIG; +#else + return __sysconf_check_spec ("LPBIG_OFFBIG"); +#endif + case _SC_XOPEN_LEGACY: return _XOPEN_LEGACY; diff --git a/libc/sysdeps/unix/opendir.c b/libc/sysdeps/unix/opendir.c index 92029c654..fbf14f5ee 100644 --- a/libc/sysdeps/unix/opendir.c +++ b/libc/sysdeps/unix/opendir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1996,98,2000-2003,2005,2007 +/* Copyright (C) 1991-1996,98,2000-2003,2005,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -81,6 +81,7 @@ DIR * __opendir (const char *name) { struct stat64 statbuf; + struct stat64 *statp = NULL; if (__builtin_expect (name[0], '\1') == '\0') { @@ -119,16 +120,14 @@ __opendir (const char *name) if (__builtin_expect (fd, 0) < 0) return NULL; - /* Now make sure this really is a directory and nothing changed since - the `stat' call. We do not have to perform the test for the - descriptor being associated with a directory if we know the - O_DIRECTORY flag is honored by the kernel. */ - if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &statbuf), 0) < 0) - goto lose; #ifdef O_DIRECTORY if (o_directory_works <= 0) #endif { + /* Now make sure this really is a directory and nothing changed since + the `stat' call. */ + if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &statbuf), 0) < 0) + goto lose; if (__builtin_expect (! S_ISDIR (statbuf.st_mode), 0)) { __set_errno (ENOTDIR); @@ -136,9 +135,10 @@ __opendir (const char *name) close_not_cancel_no_status (fd); return NULL; } + statp = &statbuf; } - return __alloc_dir (fd, true, &statbuf); + return __alloc_dir (fd, true, statp); } weak_alias (__opendir, opendir) @@ -171,29 +171,23 @@ __alloc_dir (int fd, bool close_fd, const struct stat64 *statp) goto lose; } - const size_t default_allocation = (BUFSIZ < sizeof (struct dirent64) - ? sizeof (struct dirent64) : BUFSIZ); - size_t allocation; + const size_t default_allocation = (4 * BUFSIZ < sizeof (struct dirent64) + ? sizeof (struct dirent64) : 4 * BUFSIZ); + const size_t small_allocation = (BUFSIZ < sizeof (struct dirent64) + ? sizeof (struct dirent64) : BUFSIZ); + size_t allocation = default_allocation; #ifdef _STATBUF_ST_BLKSIZE - if (__builtin_expect ((size_t) statp->st_blksize >= sizeof (struct dirent64), - 1)) + if (statp != NULL && default_allocation < statp->st_blksize) allocation = statp->st_blksize; - else #endif - allocation = default_allocation; DIR *dirp = (DIR *) malloc (sizeof (DIR) + allocation); if (dirp == NULL) { -#ifdef _STATBUF_ST_BLKSIZE - if (allocation == statp->st_blksize - && allocation != default_allocation) - { - allocation = default_allocation; - dirp = (DIR *) malloc (sizeof (DIR) + allocation); - } + allocation = small_allocation; + dirp = (DIR *) malloc (sizeof (DIR) + allocation); + if (dirp == NULL) -#endif lose: { if (close_fd) diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h b/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h index 16f7732aa..785dd7e8f 100644 --- a/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -25,29 +25,35 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +#define _POSIX_V7_ILP32_OFF32 1 +#define _POSIX_V7_ILP32_OFFBIG 1 #define _POSIX_V6_ILP32_OFF32 1 #define _POSIX_V6_ILP32_OFFBIG 1 #define _XBS5_ILP32_OFF32 1 #define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 diff --git a/libc/sysdeps/unix/sysv/linux/lddlibc4.c b/libc/sysdeps/unix/sysv/linux/lddlibc4.c index b7dd660f5..c4b9b44fa 100644 --- a/libc/sysdeps/unix/sysv/linux/lddlibc4.c +++ b/libc/sysdeps/unix/sysv/linux/lddlibc4.c @@ -1,5 +1,5 @@ /* Stub for ldd script to print Linux libc4 dependencies. - Copyright (C) 1998, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2005, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -56,22 +56,21 @@ main (int argc, char *argv[]) if (argc != 2) return 1; - if (!strcmp (argv[1], "--help")) + if (strcmp (argv[1], "--help") == 0) { - printf (gettext ("Usage: lddlibc4 FILE\n\ -\n\ -For bug reporting instructions, please see:\n\ + printf (gettext ("Usage: lddlibc4 FILE\n\n")); + printf (gettext ("For bug reporting instructions, please see:\n\ %s.\n"), REPORT_BUGS_TO); return 0; } - else if (!strcmp (argv[1], "--version")) + else if (strcmp (argv[1], "--version") == 0) { printf ("lddlibc4 %s%s\n", PKGVERSION, VERSION); printf (gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2008"); +"), "2009"); return 0; } diff --git a/libc/sysdeps/unix/sysv/linux/ldsodefs.h b/libc/sysdeps/unix/sysv/linux/ldsodefs.h index 0bdca3c3f..0965f1496 100644 --- a/libc/sysdeps/unix/sysv/linux/ldsodefs.h +++ b/libc/sysdeps/unix/sysv/linux/ldsodefs.h @@ -1,5 +1,5 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2009 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 @@ -53,4 +53,24 @@ extern void _dl_non_dynamic_init (void) internal_function; # define HAVE_AUX_PAGESIZE #endif +/* Accept binaries which identify the binary as using Linux extensions. */ +#define VALID_ELF_HEADER(hdr,exp,size) (memcmp (hdr, exp, size) == 0 \ + || memcmp (hdr, expected2, size) == 0) +#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV \ + || osabi == ELFOSABI_LINUX) +#define VALID_ELF_ABIVERSION(ver) (ver == 0) +#define MORE_ELF_HEADER_DATA \ + static const unsigned char expected2[EI_PAD] = \ + { \ + [EI_MAG0] = ELFMAG0, \ + [EI_MAG1] = ELFMAG1, \ + [EI_MAG2] = ELFMAG2, \ + [EI_MAG3] = ELFMAG3, \ + [EI_CLASS] = ELFW(CLASS), \ + [EI_DATA] = byteorder, \ + [EI_VERSION] = EV_CURRENT, \ + [EI_OSABI] = ELFOSABI_LINUX, \ + [EI_ABIVERSION] = 0 \ + } + #endif /* ldsodefs.h */ diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/libc/sysdeps/unix/sysv/linux/powerpc/bits/environments.h index a51a564cb..c675ecc62 100644 --- a/libc/sysdeps/unix/sysv/linux/powerpc/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/powerpc/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,21 +27,25 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ #if __WORDSIZE == 64 /* Environments with 32-bit wide pointers are optionally provided. Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG # undef _POSIX_V6_ILP32_OFF32 # undef _POSIX_V6_ILP32_OFFBIG # undef _XBS5_ILP32_OFF32 @@ -50,10 +54,12 @@ /* We also have no use (for now) for an environment with bigger pointers and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 @@ -61,16 +67,20 @@ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFF32 1 # define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 diff --git a/libc/sysdeps/unix/sysv/linux/s390/bits/environments.h b/libc/sysdeps/unix/sysv/linux/s390/bits/environments.h index 713d21c9a..29628b2ed 100644 --- a/libc/sysdeps/unix/sysv/linux/s390/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/s390/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,21 +27,25 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ #if __WORDSIZE == 64 /* Environments with 32-bit wide pointers are optionally provided. Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG # undef _POSIX_V6_ILP32_OFF32 # undef _POSIX_V6_ILP32_OFFBIG # undef _XBS5_ILP32_OFF32 @@ -50,10 +54,12 @@ /* We also have no use (for now) for an environment with bigger pointers and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 @@ -61,16 +67,20 @@ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFF32 1 # define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 diff --git a/libc/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/libc/sysdeps/unix/sysv/linux/sparc/bits/environments.h index a51a564cb..c675ecc62 100644 --- a/libc/sysdeps/unix/sysv/linux/sparc/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/sparc/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,21 +27,25 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ #if __WORDSIZE == 64 /* Environments with 32-bit wide pointers are optionally provided. Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG # undef _POSIX_V6_ILP32_OFF32 # undef _POSIX_V6_ILP32_OFFBIG # undef _XBS5_ILP32_OFF32 @@ -50,10 +54,12 @@ /* We also have no use (for now) for an environment with bigger pointers and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 @@ -61,16 +67,20 @@ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFF32 1 # define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h b/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h index a51a564cb..c675ecc62 100644 --- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h +++ b/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,21 +27,25 @@ `-1' means it is never supported. Undefined means it cannot be statically decided. - _POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type - _POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type - _POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type - _POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type - The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and - _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard - and are available only for compatibility. + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. */ #if __WORDSIZE == 64 /* Environments with 32-bit wide pointers are optionally provided. Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG # undef _POSIX_V6_ILP32_OFF32 # undef _POSIX_V6_ILP32_OFFBIG # undef _XBS5_ILP32_OFF32 @@ -50,10 +54,12 @@ /* We also have no use (for now) for an environment with bigger pointers and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 @@ -61,16 +67,20 @@ /* By default we have 32-bit wide `int', `long int', pointers and `off_t' and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFF32 1 # define _XBS5_ILP32_OFFBIG 1 /* We optionally provide an environment with the above size but an 64-bit - side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */ + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 diff --git a/libc/sysdeps/x86_64/bits/atomic.h b/libc/sysdeps/x86_64/bits/atomic.h index 39c6ecba8..7c138eb2f 100644 --- a/libc/sysdeps/x86_64/bits/atomic.h +++ b/libc/sysdeps/x86_64/bits/atomic.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002-2004, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -437,26 +437,37 @@ typedef uintmax_t uatomic_max_t; #define atomic_delay() asm ("rep; nop") -#define atomic_and(mem, mask) \ +#define __arch_and_body(lock, mem, mask) \ do { \ if (sizeof (*mem) == 1) \ - __asm __volatile (LOCK_PREFIX "andb %b1, %0" \ + __asm __volatile (lock "andb %b1, %0" \ : "=m" (*mem) \ - : "iq" (mask), "m" (*mem)); \ + : "iq" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else if (sizeof (*mem) == 2) \ - __asm __volatile (LOCK_PREFIX "andw %w1, %0" \ + __asm __volatile (lock "andw %w1, %0" \ : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ + : "ir" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else if (sizeof (*mem) == 4) \ - __asm __volatile (LOCK_PREFIX "andl %1, %0" \ + __asm __volatile (lock "andl %1, %0" \ : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ + : "ir" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ else \ - __asm __volatile (LOCK_PREFIX "andq %q1, %0" \ + __asm __volatile (lock "andq %q1, %0" \ : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ + : "ir" (mask), "m" (*mem), \ + "i" (offsetof (tcbhead_t, multiple_threads))); \ } while (0) +#define __arch_cprefix \ + "cmpl $0, %%fs:%P3\n\tje 0f\n\tlock\n0:\t" + +#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask) + +#define catomic_and(mem, mask) __arch_and_body (__arch_cprefix, mem, mask) + #define __arch_or_body(lock, mem, mask) \ do { \ @@ -484,7 +495,4 @@ typedef uintmax_t uatomic_max_t; #define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask) -#define __arch_or_cprefix \ - "cmpl $0, %%fs:%P3\n\tje 0f\n\tlock\n0:\t" - -#define catomic_or(mem, mask) __arch_or_body (__arch_or_cprefix, mem, mask) +#define catomic_or(mem, mask) __arch_or_body (__arch_cprefix, mem, mask) diff --git a/libc/time/tzset.c b/libc/time/tzset.c index a6fed4abc..45d70518a 100644 --- a/libc/time/tzset.c +++ b/libc/time/tzset.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002,2003,2004,2007 Free Software Foundation, Inc. +/* Copyright (C) 1991-2002,2003,2004,2007,2009 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 @@ -244,7 +244,7 @@ __tzset_parse_tz (tz) ss = 0; case 3: tz_rules[1].offset *= (min (ss, 59) + (min (mm, 59) * 60) + - (min (hh, 23) * (60 * 60))); + (min (hh, 24) * (60 * 60))); break; } for (l = 0; l < 3; ++l) diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 52480aca4..864fd5711 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,3 +1,36 @@ +2009-02-13 Khem Raj <raj.khem@gmail.com> + + * sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c + (libgcc_s_handle): New variable. + (pthread_cancel_init): Depend in libgcc_s_handle for decision to + load DSO. Assign last. + (__unwind_freeres): New function. + + * sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c: + Likewise. + +2009-02-05 Paul Brook <paul@codesourcery.com> + Joseph Myers <joseph@codesourcery.com> + + * sysdeps/arm/dl-machine.h (elf_machine_dynamic): Ditto. + (elf_machine_load_address): Clear T bit of PLT entry contents. + (RTLD_START): Mark function symbols as such. Tweak pc-relative + addressing to avoid depending on pc read pipeline offset. + * sysdeps/arm/machine-gmon.h (MCOUNT): Add Thumb-2 implementation. + * sysdeps/arm/tls-macros.h: Add alignment for Thumb-2. + (ARM_PC_OFFSET): Define. + (TLS_IE): Define differently for Thumb-2. + (TLS_LE, TLS_LD, TLS_GD): Use ARM_PC_OFFSET. + * sysdeps/arm/elf/start.S: Switch to thumb mode for Thumb-2. + * sysdeps/unix/sysv/linux/arm/eabi/sysdep.h (INTERNAL_SYSCALL_RAW): + Add Thumb implementation. + * sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h: New. + * sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-resume.c: Enforce + alignment for Thumb-2. Adjust offset from PC for Thumb-2. + * sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c: Ditto. + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (atomic_full_barrier, + __arch_compare_and_exchange_val_32_acq): Add Thumb-2 implementation. + 2009-02-02 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/arm/bits/shm.h (SHM_EXEC): Define. @@ -14,7 +47,7 @@ 2009-01-27 Ryosei Takagi <ryosei@sm.sony.co.jp> - * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h + * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h (lll_futex_wake_unlock, lll_futex_requeue): Return zero if success. 2009-01-27 Daniel Jacobowitz <dan@codesourcery.com> diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 3d570dba9..a817e5f02 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,3 +1,20 @@ +2009-02-13 Khem Raj <raj.khem@gmail.com> + + * sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c + (libgcc_s_handle): New variable. + (pthread_cancel_init): Depend in libgcc_s_handle for decision to + load DSO. Assign last. + (__unwind_freeres): New function. + +2009-02-09 Arthur Loiret <aloiret@debian.org> + + [BZ #9717] + + * sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h + (MALLOC): Adjust __libc_tsd_define arguments. + (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get} + arguments. + 2008-08-07 Helge Deller <deller@gmx.de> * sysdeps/unix/sysv/linux/hppa/ucontext_i.sym: New file. diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index bccb10d79..a52748add 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,3 +1,9 @@ +2009-02-13 Joseph Myers <joseph@codesourcery.com> + + [BZ #7040] + * sysdeps/unix/sysv/linux/mips/sys/inotify.h: Second parameter of + inotify_rm_watch should have type int. + 2009-02-02 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/mips/bits/shm.h (SHM_EXEC): Define. diff --git a/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c b/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c index 71ab77c6f..ed321a396 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c +++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2005, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. @@ -22,6 +22,7 @@ #include <unwind.h> #include <pthreadP.h> +static void *libgcc_s_handle; static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); static _Unwind_Reason_Code (*libgcc_s_personality) (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *); @@ -36,7 +37,7 @@ pthread_cancel_init (void) void *resume, *personality, *forcedunwind, *getcfa; void *handle; - if (__builtin_expect (libgcc_s_getcfa != NULL, 1)) + if (__builtin_expect (libgcc_s_handle != NULL, 1)) { /* Force gcc to reload all values. */ asm volatile ("" ::: "memory"); @@ -60,11 +61,24 @@ pthread_cancel_init (void) libgcc_s_resume = resume; libgcc_s_personality = personality; libgcc_s_forcedunwind = forcedunwind; + libgcc_s_getcfa = getcfa; /* Make sure libgcc_s_getcfa is written last. Otherwise, pthread_cancel_init might return early even when the pointer the caller is interested in is not initialized yet. */ atomic_write_barrier (); - libgcc_s_getcfa = getcfa; + libgcc_s_handle = handle; +} + +void +__libc_freeres_fn_section +__unwind_freeres (void) +{ + void *handle = libgcc_s_handle; + if (handle != NULL) + { + libgcc_s_handle = NULL; + __libc_dlclose (handle); + } } /* It's vitally important that _Unwind_Resume not have a stack frame; the diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c b/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c index b28196356..e19facfb8 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c +++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. @@ -22,6 +22,7 @@ #include <unwind.h> #include <pthreadP.h> +static void *libgcc_s_handle; static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); static _Unwind_Reason_Code (*libgcc_s_personality) (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, @@ -40,7 +41,7 @@ pthread_cancel_init (void) void *handle; void *sjlj_register, *sjlj_unregister; - if (__builtin_expect (libgcc_s_getcfa != NULL, 1)) + if (__builtin_expect (libgcc_s_handle != NULL, 1)) { /* Force gcc to reload all values. */ asm volatile ("" ::: "memory"); @@ -65,11 +66,24 @@ pthread_cancel_init (void) libgcc_s_forcedunwind = forcedunwind; libgcc_s_sjlj_register = sjlj_register; libgcc_s_sjlj_unregister = sjlj_unregister; + libgcc_s_getcfa = getcfa; /* Make sure libgcc_s_getcfa is written last. Otherwise, pthread_cancel_init might return early even when the pointer the caller is interested in is not initialized yet. */ atomic_write_barrier (); - libgcc_s_getcfa = getcfa; + libgcc_s_handle = handle; +} + +void +__libc_freeres_fn_section +__unwind_freeres (void) +{ + void *handle = libgcc_s_handle; + if (handle != NULL) + { + libgcc_s_handle = NULL; + __libc_dlclose (handle); + } } void diff --git a/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h b/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h index 817cf5922..5dc6e6fa7 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h +++ b/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h @@ -63,10 +63,10 @@ extern void *__dso_handle __attribute__ ((__weak__)); #include <bits/libc-tsd.h> typedef int tsd_key_t[1]; /* no key data structure, libc magic does it */ -__libc_tsd_define (static, MALLOC) /* declaration/common definition */ +__libc_tsd_define (static, void *, MALLOC) /* declaration/common definition */ #define tsd_key_create(key, destr) ((void) (key)) -#define tsd_setspecific(key, data) __libc_tsd_set (MALLOC, (data)) -#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (MALLOC)) +#define tsd_setspecific(key, data) __libc_tsd_set (void *, MALLOC, (data)) +#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (void *, MALLOC)) #include <sysdeps/generic/malloc-machine.h> diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c b/ports/sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c index 8666bbb3c..cea5d3b39 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c +++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2005, 2006, 2009 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 @@ -23,6 +23,7 @@ #define LIBGCC_S_SO "libgcc_s.so.4" +static void *libgcc_s_handle; static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); static _Unwind_Reason_Code (*libgcc_s_personality) (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, @@ -42,7 +43,7 @@ pthread_cancel_init (void) void *resume, *personality, *forcedunwind, *getcfa; void *handle; - if (__builtin_expect (libgcc_s_getcfa != NULL, 1)) + if (__builtin_expect (libgcc_s_handle != NULL, 1)) { /* Force gcc to reload all values. */ asm volatile ("" ::: "memory"); @@ -66,11 +67,24 @@ pthread_cancel_init (void) libgcc_s_resume = resume; libgcc_s_personality = personality; libgcc_s_forcedunwind = forcedunwind; + libgcc_s_getcfa = getcfa; /* Make sure libgcc_s_getcfa is written last. Otherwise, pthread_cancel_init might return early even when the pointer the caller is interested in is not initialized yet. */ atomic_write_barrier (); - libgcc_s_getcfa = getcfa; + libgcc_s_handle = handle; +} + +void +__libc_freeres_fn_section +__unwind_freeres (void) +{ + void *handle = libgcc_s_handle; + if (handle != NULL) + { + libgcc_s_handle = NULL; + __libc_dlclose (handle); + } } void diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h b/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h index a811c7fc3..49f39470e 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h +++ b/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2005, 2006, 2008, 2009 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 @@ -98,7 +98,7 @@ extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask) __THROW; /* Remove the watch specified by WD from the inotify instance FD. */ -extern int inotify_rm_watch (int __fd, uint32_t __wd) __THROW; +extern int inotify_rm_watch (int __fd, int __wd) __THROW; __END_DECLS |