]> code.ossystems Code Review - openembedded-core.git/commitdiff
eglibc: Add 2.18 recipes
authorKhem Raj <raj.khem@gmail.com>
Wed, 26 Jun 2013 20:59:01 +0000 (13:59 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 5 Jul 2013 14:26:22 +0000 (15:26 +0100)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
35 files changed:
meta/recipes-core/eglibc/cross-localedef-native_2.18.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-PR15003-r22243.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-r22178.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-initial_2.18.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-locale_2.18.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-scripts_2.18.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc_2.18.bb [new file with mode: 0644]

diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb
new file mode 100644 (file)
index 0000000..bf9e3c2
--- /dev/null
@@ -0,0 +1,49 @@
+DESCRIPTION = "Cross locale generation tool for eglibc"
+HOMEPAGE = "http://www.eglibc.org/home"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+
+LIC_DIR = "${WORKDIR}/eglibc-${PV}/libc"
+LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
+      file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \
+      file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+      file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
+
+
+inherit native
+inherit autotools
+
+# pick up an eglibc patch
+FILESPATH = "${FILE_DIRNAME}/eglibc-${PV}"
+
+SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr23379.tar.bz2 \
+          file://fix_for_centos_5.8.patch;patchdir=.. \
+         "
+SRC_URI[md5sum] = "7da8ab8c0af6889187b9ece6dafc12b0"
+SRC_URI[sha256sum] = "bd1cdb0528fd54d11ab896b878d71c0f89b4557e908e0f2561f32bbd7472aaeb"
+
+S = "${WORKDIR}/eglibc-${PV}/localedef"
+
+do_unpack_append() {
+    bb.build.exec_func('do_move_ports', d)
+}
+
+do_move_ports() {
+        if test -d ${WORKDIR}/eglibc-${PV}/ports ; then
+           rm -rf ${WORKDIR}/libc/ports
+           mv ${WORKDIR}/eglibc-${PV}/ports ${WORKDIR}/libc/
+       fi
+}
+
+EXTRA_OECONF = "--with-glibc=${WORKDIR}/eglibc-${PV}/libc"
+CFLAGS += "-DNOT_IN_libc=1"
+
+do_configure () {
+       ${S}/configure ${EXTRA_OECONF}
+}
+
+
+do_install() {
+       install -d ${D}${bindir} 
+       install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
+}
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch
new file mode 100644 (file)
index 0000000..b4489e9
--- /dev/null
@@ -0,0 +1,56 @@
+
+Quote from bug 1443 which explains what the patch does : 
+
+  We build some random program and link it with -lust.  When we run it,
+  it dies with a SIGSEGV before reaching main().
+  
+  Libust.so depends on liburcu-bp.so from the usermode-rcu package.
+  Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this
+  is critical.
+  
+  Libust.so uses a TLS / __thread variable that is defined in liburcu-
+  bp.so.  There are special ARM-specific relocation types that allow two
+  shared libraries to share thread-specific data.  This is critical too.
+  
+  One more critical issue: although liburcu-bp.so is prelinked, we can't
+  load it at its prelinked address, because we also link against
+  librt.so, and librt.so uses that address.
+  
+  The dynamic linker is forced to relink liburcu-bp.so at a different
+  address.  In the course of relinking, it processes the special ARM
+  relocation record mentioned above.  The prelinker has already filled
+  in the information, which is a short offset into a table of thread-
+  specific data that is allocated per-thread for each library that uses
+  TLS.  Because the normal behavior of a relocation is to add the symbol
+  value to an addend stored at the address being relocated, we end up
+  adding the short offset to itself, doubling it.
+  
+  Now we have an awkward situation.  The libust.so library doesn't know
+  about the addend, so its TLS data for this element is correct.  The
+  liburcu-bp.so library has a different offset for the element.  When we
+  go to initialize the element for the first time in liburcu-bp.so, we
+  write the address of the result at the doubled (broken) offset.
+  Later, when we refer to the address from libust.so, we check the value
+  at the correct offset, but it's NULL, so we eat hot SIGSEGV.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
+---
+ .../libc/ports/sysdeps/arm/dl-machine.h            |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+ndex 8d905e8..dcfa71e 100644
+--- libc.orig/ports/sysdeps/arm/dl-machine.h
++++ libc/ports/sysdeps/arm/dl-machine.h
+@@ -503,7 +503,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
+       case R_ARM_TLS_DTPOFF32:
+         if (sym != NULL)
+-          *reloc_addr += sym->st_value;
++          *reloc_addr = sym->st_value;
+         break;
+       case R_ARM_TLS_TPOFF32:
+-- 
+
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch
new file mode 100644 (file)
index 0000000..9e23e7c
--- /dev/null
@@ -0,0 +1,912 @@
+Pulled from
+http://www.eglibc.org/archives/patches/msg01042.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+Hi,
+
+This patch adds 'make menuconfig' support to EGLIBC.
+
+
+EGLIBC can re-use the Linux kernel kconfig host tools ('conf' and 'mconf') unmodified, by passing appropriate environment variables and with some pre- and post-processing on the input/output config files.
+
+There are three new make targets supported, which all are defined in the new libc/options-config/Makefile, which is included by the top-level libc/Makefile:
+
+- 'make defconfig'. This passes 'libc/option-groups.defaults' to 'conf' as a default config, and outputs 'option-groups.config' to the top-level build directory, which will be the same as the default config.
+
+- 'make config'. This is the same line-oriented interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory.
+
+- 'make menuconfig'. This is the same menu-based interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory.
+
+
+Pre-Processing:
+
+
+The Linux kernel kconfig tools expect a prefix of "CONFIG_" on all config option names, but EGLIBC expects a prefix of "OPTION_". The pre-processing script, libc/options-config/config-preproc.pl, simply replaces "CONFIG_ with "OPTION_" in the given config file. The libc/options-config/Makefile passes the script output to a temporary config file, which is then passed to 'conf' or 'mconf'.
+
+Post-Processing (libc/options-config/config-postproc.pl):
+
+
+- Disabled options are output as a comment line of the form "# CONFIG_FOO is not set". This needs to be changed to an explicit "CONFIG_FOO=n" in order to be compatible with 'option-groups.awk' which generates the option-groups.h header.
+
+- "CONFIG_" prefix is changed back to "OPTION_".
+
+
+- The kconfig tools will not output anything for options that depend on a parent option, when the parent option is disabled. This implicit disable must be converted to an explicit "CONFIG_FOO=n" in order to be compatible with the way EGLIBC overrides the default option settings in 'libc/option-groups.defaults' with those in 'option-groups.config'.
+
+
+A new configure option, '--with-kconfig=<PATH>', tells EGLIBC where to find the pre-built 'conf' and 'mconf' host tools from Linux kernel builds.
+
+libc/EGLIBC.cross-building is updated to include instructions for using '--with-kconfig' for the final EGLIBC build, and shows how and when to run 'make *config'.
+
+libc/EGLIBC.option-groups is updated to include new information on the menuconfig support.
+
+Thanks,
+
+attached is the updated patch to address above issues.
+
+Steve
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+Index: libc/EGLIBC.cross-building
+===================================================================
+--- libc.orig/EGLIBC.cross-building    2007-04-20 16:15:03.000000000 -0700
++++ libc/EGLIBC.cross-building 2013-06-26 00:45:15.788885570 -0700
+@@ -243,9 +243,29 @@
+     > $src/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
++    >     --with-kconfig=$obj/linux/scripts/kconfig \
+     >     --build=$build \
+     >     --host=$target \
+     >     --disable-profile --without-gd --without-cvs --enable-add-ons
++
++Note the additional '--with-kconfig' option. This tells EGLIBC where to
++find the host config tools used by the kernel 'make config' and 'make
++menuconfig'.  These tools can be re-used by EGLIBC for its own 'make
++*config' support, which will create 'option-groups.config' for you.
++But first make sure those tools have been built by running some
++dummy 'make *config' calls in the kernel directory:
++
++    $ cd $obj/linux
++    $ PATH=$tools/bin:$PATH make config \
++    >      ARCH=$linux_arch CROSS_COMPILE=$target- \
++    $ PATH=$tools/bin:$PATH make menuconfig \
++    >      ARCH=$linux_arch CROSS_COMPILE=$target- \
++
++Now we can configure and build the full EGLIBC:
++
++    $ cd $obj/eglibc
++    $ PATH=$tools/bin:$PATH make defconfig
++    $ PATH=$tools/bin:$PATH make menuconfig
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install install_root=$sysroot
+Index: libc/configure.in
+===================================================================
+--- libc.orig/configure.in     2013-06-24 15:42:26.000000000 -0700
++++ libc/configure.in  2013-06-26 00:45:15.792885570 -0700
+@@ -127,6 +127,16 @@
+           [sysheaders=''])
+ AC_SUBST(sysheaders)
++AC_ARG_WITH([kconfig],
++          AC_HELP_STRING([--with-kconfig=PATH],
++                         [location of kconfig tools to use (from Linux
++                          kernel builds) to re-use for configuring EGLIBC
++                          option groups]),
++          [KCONFIG_TOOLS=$withval],
++          [KCONFIG_TOOLS=''])
++AC_SUBST(KCONFIG_TOOLS)
++
++
+ AC_SUBST(use_default_link)
+ AC_ARG_WITH([default-link],
+           AC_HELP_STRING([--with-default-link],
+Index: libc/config.make.in
+===================================================================
+--- libc.orig/config.make.in   2013-04-28 08:21:50.000000000 -0700
++++ libc/config.make.in        2013-06-26 00:45:15.792885570 -0700
+@@ -45,6 +45,8 @@
+ c++-sysincludes = @CXX_SYSINCLUDES@
+ all-warnings = @all_warnings@
++kconfig_tools = @KCONFIG_TOOLS@
++
+ have-z-combreloc = @libc_cv_z_combreloc@
+ have-z-execstack = @libc_cv_z_execstack@
+ have-Bgroup = @libc_cv_Bgroup@
+Index: libc/options-config/config-postproc.pl
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/config-postproc.pl     2013-06-26 00:45:15.792885570 -0700
+@@ -0,0 +1,54 @@
++#!/usr/bin/perl
++
++$usage = "usage: $0 <default config file> <config file>\n";
++
++die "$usage" unless @ARGV;
++$defaults = shift @ARGV;
++die "$usage" unless @ARGV;
++die "Could not open $ARGV[0]" unless -T $ARGV[0];
++
++sub yank {
++    @option = grep($_ ne $_[0], @option);
++}
++
++open(DEFAULTS, $defaults) || die "Could not open $defaults\n";
++
++# get the full list of available options using the default config file
++$i = 0;
++while (<DEFAULTS>) {
++    if (/^\s*OPTION_(\w+)\s*=/) {
++      $option[$i++] = $1;
++    }
++}
++
++# now go through the config file, making the necessary changes
++while (<>) {
++    if (/Linux Kernel Configuration/) {
++      # change title
++      s/Linux Kernel/Option Groups/;
++      print;
++    } elsif (/^\s*CONFIG_(\w+)\s*=/) {
++      # this is an explicit option set line, change CONFIG_ to OPTION_
++      # before printing and remove this option from option list
++      $opt = $1;
++      yank($opt);
++      s/CONFIG_/OPTION_/g;
++      print;
++    } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) {
++      # this is a comment line, change CONFIG_ to OPTION_, remove this
++      # option from option list, and convert to explicit OPTION_FOO=n
++      $opt = $1;
++      yank($opt);
++      s/CONFIG_/OPTION_/g;
++      print "OPTION_$opt=n\n";
++    } else {
++      print;
++    }
++}
++
++# any options left in @options, are options that were not mentioned in
++# the config file, and implicitly that means the option must be set =n,
++# so do that here.
++foreach $opt (@option) {
++    print "OPTION_$opt=n\n";
++}
+Index: libc/options-config/config-preproc.pl
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/config-preproc.pl      2013-06-26 00:45:15.792885570 -0700
+@@ -0,0 +1,8 @@
++#!/usr/bin/perl
++
++if (@ARGV) {
++    while (<>) {
++      s/OPTION_/CONFIG_/g;
++      print;
++    }
++}
+Index: libc/options-config/Makefile
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/Makefile       2013-06-26 00:45:15.792885570 -0700
+@@ -0,0 +1,55 @@
++# ===========================================================================
++# EGLIBC option-groups configuration targets
++# These targets are included from top-level makefile
++
++ifneq ($(kconfig_tools),)
++ifneq (no,$(PERL))
++
++ocdir := options-config
++
++OconfigDefaults     := option-groups.defaults
++OconfigDefaults_tmp := $(common-objpfx).tmp.defconfig
++OconfigDef          := option-groups.def
++Oconfig             := $(common-objpfx)option-groups.config
++Oconfig_tmp         := $(common-objpfx).tmp.config
++
++conf  := $(kconfig_tools)/conf
++mconf := $(kconfig_tools)/mconf
++
++preproc  := $(PERL) $(ocdir)/config-preproc.pl
++postproc := $(PERL) $(ocdir)/config-postproc.pl
++
++PHONY += defconfig config menuconfig
++
++defconfig: $(conf) $(OconfigDefaults) $(OconfigDef)
++      rm -f $(OconfigDefaults_tmp)
++      rm -f $(Oconfig_tmp)
++      $(preproc) $(OconfigDefaults) > $(OconfigDefaults_tmp)
++      KCONFIG_CONFIG=$(Oconfig_tmp) $< --defconfig=$(OconfigDefaults_tmp) \
++                              $(OconfigDef)
++      $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++      rm $(Oconfig_tmp)
++      rm $(OconfigDefaults_tmp)
++
++config: $(conf) $(OconfigDefaults) $(OconfigDef)
++      rm -f $(Oconfig_tmp)
++      $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp)
++      KCONFIG_CONFIG=$(Oconfig_tmp) $< --oldaskconfig $(OconfigDef)
++      $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++      rm $(Oconfig_tmp)
++
++menuconfig: $(mconf) $(OconfigDefaults) $(OconfigDef)
++      rm -f $(Oconfig_tmp)
++      $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp)
++      KCONFIG_CONFIG=$(Oconfig_tmp) $< $(OconfigDef)
++      $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++      rm $(Oconfig_tmp)
++
++# Help text used by make help
++help:
++      @echo  '  defconfig       - New config with default from default config'
++      @echo  '  config          - Update current config utilising a line-oriented program'
++      @echo  '  menuconfig      - Update current config utilising a menu based program'
++
++endif
++endif
+Index: libc/option-groups.def
+===================================================================
+--- libc.orig/option-groups.def        2013-05-17 17:12:09.000000000 -0700
++++ libc/option-groups.def     2013-06-26 00:45:15.796885570 -0700
+@@ -4,19 +4,19 @@
+ #
+ # An entry of the form:
+ #
+-#   config OPTION_GROUP_NAME
++#   config GROUP_NAME
+ #       bool "one-line explanation of what this option group controls"
+ #       help
+ #           Multi-line help explaining the option group's meaning in
+ #           some detail, terminated by indentation level.
+ #
+-# defines an option group whose variable is OPTION_GROUP_NAME, with
++# defines an option group whose variable is GROUP_NAME, with
+ # meaningful values 'y' (enabled) and 'n' (disabled).  The
+ # documentation is formatted to be consumed by some sort of
+ # interactive configuration interface, but EGLIBC doesn't have such an
+ # interface yet.
+ #
+-# An option may have a 'depends' line, indicating which other options
++# An option may have a 'depends on' line, indicating which other options
+ # must also be enabled if this option is.  At present, EGLIBC doesn't
+ # check that these dependencies are satisfied.
+ # 
+@@ -41,9 +41,9 @@
+ # although this simply reestablishes the value already set by
+ # 'option-groups.defaults'.
+-config OPTION_EGLIBC_ADVANCED_INET6
++config EGLIBC_ADVANCED_INET6
+    bool "IPv6 Advanced Sockets API support (RFC3542)"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+        This option group includes the functions specified by RFC 3542,
+        "Advanced Sockets Application Program Interface (API) for
+@@ -71,7 +71,7 @@
+          inet6_rth_segments
+          inet6_rth_space
+-config OPTION_EGLIBC_BACKTRACE
++config EGLIBC_BACKTRACE
+    bool "Functions for producing backtraces"
+    help
+        This option group includes functions for producing a list of
+@@ -85,7 +85,7 @@
+          backtrace_symbols
+          backtrace_symbols_fd
+-config OPTION_EGLIBC_BIG_MACROS
++config EGLIBC_BIG_MACROS
+    bool "Use extensive inline code"
+    help
+        This option group specifies whether certain pieces of code
+@@ -93,7 +93,7 @@
+        group is not selected, function calls will be used instead,
+        hence reducing the library footprint.
+-config OPTION_EGLIBC_BSD
++config EGLIBC_BSD
+    bool "BSD-specific functions, and their compatibility stubs"
+    help
+        This option group includes functions specific to BSD kernels.
+@@ -109,10 +109,9 @@
+          revoke
+          setlogin
+-config OPTION_EGLIBC_CXX_TESTS
++config EGLIBC_CXX_TESTS
+    bool "Tests that link against the standard C++ library."
+-   depends OPTION_POSIX_WIDE_CHAR_DEVICE_IO
+-   depends OPTION_EGLIBC_LIBM
++   depends on POSIX_WIDE_CHAR_DEVICE_IO && EGLIBC_LIBM
+    help
+        This option group does not include any C library functions;
+        instead, it controls which EGLIBC tests an ordinary 'make
+@@ -121,23 +120,22 @@
+        run.
+        The standard C++ library depends on the math library 'libm' and
+-       the wide character I/O functions included in EGLIBC.  If those
+-       option groups are disabled, this test must also be disabled.
++       the wide character I/O functions included in EGLIBC.  So those
++       option groups must be enabled if this test is enabled.
+-config OPTION_EGLIBC_CATGETS
++config EGLIBC_CATGETS
+    bool "Functions for accessing message catalogs"
+-   depends OPTION_EGLIBC_LOCALE_CODE
++   depends on EGLIBC_LOCALE_CODE
+    help
+        This option group includes functions for accessing message
+        catalogs: catopen, catclose, and catgets.
+-       This option group depends on the OPTION_EGLIBC_LOCALE_CODE
+-       option group; if you disable that, you must also disable this.
++       This option group depends on the EGLIBC_LOCALE_CODE
++       option group.
+-config OPTION_EGLIBC_CHARSETS
++config EGLIBC_CHARSETS
+    bool "iconv/gconv character set conversion libraries"
+    help
+-
+        This option group includes support for character sets other
+        than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their
+        various encodings.  This affects both the character sets
+@@ -198,16 +196,16 @@
+           WCHAR_T           - EGLIBC's internal form (target-endian,
+                               32-bit ISO 10646)
+-config OPTION_EGLIBC_CRYPT
++config EGLIBC_CRYPT
+    bool "Encryption library"
+    help
+        This option group includes the `libcrypt' library which
+        provides functions for one-way encryption.  Supported
+        encryption algorithms include MD5, SHA-256, SHA-512 and DES.
+-config OPTION_EGLIBC_CRYPT_UFC
++config EGLIBC_CRYPT_UFC
+    bool "Ultra fast `crypt' implementation"
+-   depends OPTION_EGLIBC_CRYPT
++   depends on EGLIBC_CRYPT
+    help
+        This option group provides ultra fast DES-based implementation of
+        the `crypt' function.  When this option group is disabled,
+@@ -216,7 +214,7 @@
+        errno to ENOSYS if /salt/ passed does not correspond to either MD5,
+        SHA-256 or SHA-512 algorithm.
+-config OPTION_EGLIBC_DB_ALIASES
++config EGLIBC_DB_ALIASES
+    bool "Functions for accessing the mail aliases database"
+    help
+        This option group includues functions for looking up mail
+@@ -233,7 +231,7 @@
+        When this option group is disabled, the NSS service libraries
+        also lack support for querying their mail alias tables.
+-config OPTION_EGLIBC_ENVZ
++config EGLIBC_ENVZ
+    bool "Functions for handling envz-style environment vectors."
+    help
+        This option group contains functions for creating and operating
+@@ -248,7 +246,7 @@
+         envz_entry      envz_remove
+         envz_get        envz_strip 
+-config OPTION_EGLIBC_FCVT
++config EGLIBC_FCVT
+    bool "Functions for converting floating-point numbers to strings"
+    help
+        This option group includes functions for converting
+@@ -262,14 +260,14 @@
+        fcvt_r         qfcvt_r
+          gcvt         qgcvt
+-config OPTION_EGLIBC_FMTMSG
++config EGLIBC_FMTMSG
+    bool "Functions for formatting messages"
+    help
+        This option group includes the following functions:
+          addseverity    fmtmsg
+-config OPTION_EGLIBC_FSTAB
++config EGLIBC_FSTAB
+    bool "Access functions for 'fstab'"
+    help
+        This option group includes functions for reading the mount
+@@ -283,7 +281,7 @@
+          getfsent       setfsent
+          getfsfile
+-config OPTION_EGLIBC_FTRAVERSE
++config EGLIBC_FTRAVERSE
+    bool "Functions for traversing file hierarchies"
+    help
+        This option group includes functions for traversing file
+@@ -297,9 +295,9 @@
+        fts_set        nftw64
+          fts_close
+-config OPTION_EGLIBC_GETLOGIN
++config EGLIBC_GETLOGIN
+    bool "The getlogin function"
+-   depends OPTION_EGLIBC_UTMP
++   depends on EGLIBC_UTMP
+    help
+        This function group includes the 'getlogin' and 'getlogin_r'
+        functions, which return the user name associated by the login
+@@ -309,17 +307,17 @@
+        fall back on 'getlogin' to find the user's login name for tilde
+        expansion when the 'HOME' environment variable is not set.
+-config OPTION_EGLIBC_IDN
++config EGLIBC_IDN
+    bool "International domain names support"
+    help
+        This option group includes the `libcidn' library which
+        provides support for international domain names.
+-config OPTION_EGLIBC_INET
++config EGLIBC_INET
+    bool "Networking support"
+    help
+        This option group includes networking-specific functions and
+-       data.  With OPTION_EGLIBC_INET disabled, the EGLIBC
++       data.  With EGLIBC_INET disabled, the EGLIBC
+        installation and API changes as follows:
+        - The following libraries are not installed:
+@@ -439,14 +437,14 @@
+        use Unix-domain sockets to communicate with the syslog daemon;
+        syslog is valuable in non-networked contexts.
+-config OPTION_EGLIBC_INET_ANL
++config EGLIBC_INET_ANL
+    bool "Asynchronous name lookup"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+        This option group includes the `libanl' library which
+        provides support for asynchronous name lookup.
+-config OPTION_EGLIBC_LIBM
++config EGLIBC_LIBM
+    bool "libm (math library)"
+    help
+        This option group includes the 'libm' library, containing
+@@ -464,7 +462,7 @@
+        group, you will not be able to build 'libstdc++' against the
+        resulting EGLIBC installation.
+-config OPTION_EGLIBC_LOCALES
++config EGLIBC_LOCALES
+    bool "Locale definitions"
+    help
+        This option group includes all locale definitions other than
+@@ -472,17 +470,17 @@
+        only the "C" locale is supported.
+-config OPTION_EGLIBC_LOCALE_CODE
++config EGLIBC_LOCALE_CODE
+    bool "Locale functions"
+-   depends OPTION_POSIX_C_LANG_WIDE_CHAR
++   depends on POSIX_C_LANG_WIDE_CHAR
+    help
+        This option group includes locale support functions, programs,
+-       and libraries.  With OPTION_EGLIBC_LOCALE_FUNCTIONS disabled,
++       and libraries.  With EGLIBC_LOCALE_CODE disabled,
+        EGLIBC supports only the 'C' locale (also known as 'POSIX'),
+        and ignores the settings of the 'LANG' and 'LC_*' environment
+        variables.
+-       With OPTION_EGLIBC_LOCALE_CODE disabled, the following
++       With EGLIBC_LOCALE_CODE disabled, the following
+        functions are omitted from libc:
+          duplocale   localeconv  nl_langinfo    rpmatch  strfmon_l
+@@ -491,46 +489,43 @@
+        Furthermore, only the LC_CTYPE and LC_TIME categories of the
+        standard "C" locale are available.
+-       The OPTION_EGLIBC_CATGETS option group depends on this option
+-       group; if you disable OPTION_EGLIBC_LOCALE_CODE, you must also
+-       disable OPTION_EGLIBC_CATGETS.
++       The EGLIBC_CATGETS option group depends on this option group.
++
+-config OPTION_EGLIBC_MEMUSAGE
++config EGLIBC_MEMUSAGE
+    bool "Memory profiling library"
+    help
+        This option group includes the `libmemusage' library and
+        the `memusage' and `memusagestat' utilities.
+        These components provide memory profiling functions.
+-     OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
++       EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+        Libmemusage library buffers the profiling data in memory
+        before writing it out to disk.  By default, the library
+        allocates 1.5M buffer, which can be substantial for some
+-       systems.  OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option
++       systems.  EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option
+        allows to change the default buffer size.  It specifies
+        the number of entries the buffer should have.
+        On most architectures one buffer entry amounts to 48 bytes,
+        so setting this option to the value of 512 will reduce the size of
+        the memory buffer to 24K.
+-config OPTION_EGLIBC_NIS
++config EGLIBC_NIS
+    bool "Support for NIS, NIS+, and the special 'compat' services."
+-   depends OPTION_EGLIBC_INET
+-   depends OPTION_EGLIBC_SUNRPC
++   depends on EGLIBC_INET && EGLIBC_SUNRPC
+    help
+        This option group includes the NIS, NIS+, and 'compat' Name
+        Service Switch service libraries.  When it is disabled, those
+        services libraries are not installed; you should remove any
+        references to them from your 'nsswitch.conf' file.
+-       This option group depends on the OPTION_EGLIBC_INET option
++       This option group depends on the EGLIBC_INET option
+        group; you must enable that to enable this option group.
+-config OPTION_EGLIBC_NSSWITCH
++config EGLIBC_NSSWITCH
+    bool "Name service switch (nsswitch) support"
+    help
+-
+        This option group includes support for the 'nsswitch' facility.
+        With this option group enabled, all EGLIBC functions for
+        accessing various system databases (passwords and groups;
+@@ -544,12 +539,12 @@
+        'option-groups.config' file must set the following two
+        variables:
+-       OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
++       EGLIBC_NSSWITCH_FIXED_CONFIG
+           Set this to the name of a file whose contents observe the
+           same syntax as an ordinary '/etc/nsswitch.conf' file.  The
+           EGLIBC build process parses this file just as EGLIBC would
+-          at run time if OPTION_EGLIBC_NSSWITCH were enabled, and
++          at run time if EGLIBC_NSSWITCH were enabled, and
+           produces a C library that uses the nsswitch service
+           libraries to search for database entries as this file
+           specifies, instead of consulting '/etc/nsswitch.conf' at run
+@@ -567,7 +562,7 @@
+           you will probably want to delete references to databases not
+           needed on your system.
+-       OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS
++       EGLIBC_NSSWITCH_FIXED_FUNCTIONS
+           The EGLIBC build process uses this file to decide which
+           functions to make available from which service libraries.
+@@ -585,28 +580,28 @@
+           Be sure to mention each function in each service you wish to
+           use.  If you do not mention a service's function here, the
+           EGLIBC database access functions will not find it, even if
+-          it is listed in the OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
++          it is listed in the EGLIBC_NSSWITCH_FIXED_CONFIG
+           file.
+-       In this arrangement, EGLIBC will not use the 'dlopen' and
+-       'dlsym' functions to find database access functions.  Instead,
+-       libc hard-codes references to the service libraries' database
+-       access functions.  You must explicitly link your program
+-       against the name service libraries (those whose names start
+-       with 'libnss_', in the sysroot's '/lib' directory) whose
+-       functions you intend to use.  This arrangement helps
+-       system-wide static analysis tools decide which functions a
+-       system actually uses.
+-
+-       Note that some nsswitch service libraries require other option
+-       groups to be enabled; for example, the OPTION_EGLIBC_INET
+-       option group must be enabled to use the 'libnss_dns.so.2'
+-       service library, which uses the Domain Name System network
+-       protocol to answer queries.
++          In this arrangement, EGLIBC will not use the 'dlopen' and
++          'dlsym' functions to find database access functions.  Instead,
++          libc hard-codes references to the service libraries' database
++          access functions.  You must explicitly link your program
++          against the name service libraries (those whose names start
++          with 'libnss_', in the sysroot's '/lib' directory) whose
++          functions you intend to use.  This arrangement helps
++          system-wide static analysis tools decide which functions a
++          system actually uses.
++
++          Note that some nsswitch service libraries require other option
++          groups to be enabled; for example, the EGLIBC_INET
++          option group must be enabled to use the 'libnss_dns.so.2'
++          service library, which uses the Domain Name System network
++          protocol to answer queries.
+-config OPTION_EGLIBC_RCMD
++config EGLIBC_RCMD
+    bool "Support for 'rcmd' and related library functions"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+       This option group includes functions for running commands on
+       remote machines via the 'rsh' protocol, and doing authentication
+@@ -622,7 +617,7 @@
+         rresvport       ruserpass
+         rresvport_af
+         
+-config OPTION_EGLIBC_RTLD_DEBUG
++config EGLIBC_RTLD_DEBUG
+    bool "Runtime linker debug print outs"
+    help
+       This option group enables debug output of the runtime linker
+@@ -633,7 +628,7 @@
+       the `ldd' utility which may also be used by the prelinker.
+       In particular, the `--unused' ldd option will not work correctly.
+-config OPTION_EGLIBC_SPAWN
++config EGLIBC_SPAWN
+    bool "Support for POSIX posix_spawn functions"
+    help
+       This option group includes the POSIX functions for executing
+@@ -669,7 +664,7 @@
+       disabled, those programs will only operate on uncompressed
+       charmap files.
+-config OPTION_EGLIBC_STREAMS
++config EGLIBC_STREAMS
+    bool "Support for accessing STREAMS."
+    help
+       This option group includes functions for reading and writing
+@@ -685,14 +680,14 @@
+         isastream       fdetach
+         putmsg
+-config OPTION_EGLIBC_SUNRPC
++config EGLIBC_SUNRPC
+    bool "Support for the Sun 'RPC' protocol."
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+       This option group includes support for the Sun RPC protocols,
+       including the 'rpcgen' and 'rpcinfo' programs.
+-config OPTION_EGLIBC_UTMP
++config EGLIBC_UTMP
+     bool "Older access functions for 'utmp' login records"
+     help
+        This option group includes the older 'utent' family of
+@@ -719,9 +714,9 @@
+          libutil.so (and libutil.a)
+-config OPTION_EGLIBC_UTMPX
++config EGLIBC_UTMPX
+     bool "POSIX access functions for 'utmp' login records"
+-    depends OPTION_EGLIBC_UTMP    
++    depends on EGLIBC_UTMP
+     help
+        This option group includes the POSIX functions for reading and
+        writing user login records in the 'utmp' file (usually
+@@ -742,21 +737,21 @@
+          updwtmpx
+          utmpxname
+-config OPTION_EGLIBC_WORDEXP
++config EGLIBC_WORDEXP
+     bool "Shell-style word expansion"
+     help
+         This option group includes the 'wordexp' function for
+         performing word expansion in the manner of the shell, and the
+         accompanying 'wordfree' function.
+-config OPTION_POSIX_C_LANG_WIDE_CHAR
++config POSIX_C_LANG_WIDE_CHAR
+     bool "ISO C library wide character functions, excluding I/O"
+     help
+         This option group includes the functions defined by the ISO C
+         standard for working with wide and multibyte characters in
+         memory.  Functions for reading and writing wide and multibyte
+         characters from and to files call in the
+-        OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group.
++        POSIX_WIDE_CHAR_DEVICE_IO option group.
+         This option group includes the following functions:
+@@ -778,14 +773,14 @@
+           mbrlen        wcscoll       wcstol
+           mbrtowc       wcscpy        wcstold
+-config OPTION_POSIX_REGEXP
++config POSIX_REGEXP
+     bool "Regular expressions"
+     help
+         This option group includes the POSIX regular expression
+         functions, and the associated non-POSIX extensions and
+         compatibility functions.
+-        With OPTION_POSIX_REGEXP disabled, the following functions are
++        With POSIX_REGEXP disabled, the following functions are
+         omitted from libc:
+           re_comp                 re_max_failures         regcomp
+@@ -799,9 +794,9 @@
+         <regexp.h> header file, 'compile', 'step', and 'advance', is
+         omitted.
+-config OPTION_POSIX_REGEXP_GLIBC
++config POSIX_REGEXP_GLIBC
+     bool "Regular expressions from GLIBC"
+-    depends OPTION_POSIX_REGEXP
++    depends on POSIX_REGEXP
+     help
+       This option group specifies which regular expression
+         library to use.  The choice is between regex
+@@ -810,9 +805,9 @@
+         optimized for speed; regex from libiberty is more than twice
+         as small while still is enough for most practical purposes.
+-config OPTION_POSIX_WIDE_CHAR_DEVICE_IO
++config POSIX_WIDE_CHAR_DEVICE_IO
+     bool "Input and output functions for wide characters"
+-    depends OPTION_POSIX_C_LANG_WIDE_CHAR
++    depends on POSIX_C_LANG_WIDE_CHAR
+     help
+         This option group includes functions for reading and writing
+         wide characters to and from <stdio.h> streams.
+Index: libc/Makefile
+===================================================================
+--- libc.orig/Makefile 2013-06-04 08:48:26.000000000 -0700
++++ libc/Makefile      2013-06-26 00:45:15.796885570 -0700
+@@ -24,6 +24,7 @@
+ include Makeconfig
++include options-config/Makefile
+ # This is the default target; it makes everything except the tests.
+ .PHONY: all
+Index: libc/configure
+===================================================================
+--- libc.orig/configure        2013-06-24 15:42:26.000000000 -0700
++++ libc/configure     2013-06-26 00:45:15.800885570 -0700
+@@ -622,6 +622,7 @@
+ libc_cv_have_bash2
+ BASH_SHELL
+ libc_cv_gcc_static_libgcc
++KCONFIG_TOOLS
+ CXX_SYSINCLUDES
+ SYSINCLUDES
+ AUTOCONF
+@@ -734,6 +735,7 @@
+ with_binutils
+ with_selinux
+ with_headers
++with_kconfig
+ with_default_link
+ enable_sanity_checks
+ enable_shared
+@@ -1432,6 +1434,9 @@
+   --with-selinux          if building with SELinux support
+   --with-headers=PATH     location of system headers to use (for example
+                           /usr/src/linux/include) [default=compiler default]
++  --with-kconfig=PATH     location of kconfig tools to use (from Linux kernel
++                          builds) to re-use for configuring EGLIBC option
++                          groups
+   --with-default-link     do not use explicit linker scripts
+   --with-cpu=CPU          select code for CPU variant
+@@ -3395,6 +3400,14 @@
++# Check whether --with-kconfig was given.
++if test "${with_kconfig+set}" = set; then
++  withval=$with_kconfig; KCONFIG_TOOLS=$withval
++else
++  KCONFIG_TOOLS=''
++fi
++
++
+ # Check whether --with-default-link was given.
+ if test "${with_default_link+set}" = set; then :
+Index: libc/EGLIBC.option-groups
+===================================================================
+--- libc.orig/EGLIBC.option-groups     2007-04-13 17:50:17.000000000 -0700
++++ libc/EGLIBC.option-groups  2013-06-26 00:45:15.800885570 -0700
+@@ -56,33 +56,9 @@
+ The Option Groups
+-EGLIBC currently implements the following option groups, also
+-documented in the file 'option-groups.def':
+-
+-OPTION_EGLIBC_CATGETS
+-       This option group includes functions for accessing message
+-       catalogs: catopen, catclose, and catgets.
+-
+-OPTION_EGLIBC_LOCALES
+-       This option group includes all locale definitions other than
+-       those for the "C" locale.  If this option group is omitted, then
+-       only the "C" locale is supported.
+-
+-OPTION_EGLIBC_LIBM
+-       This option group includes the 'libm' library, containing
+-       mathematical functions.  If this option group is omitted, then
+-       an EGLIBC installation does not include shared or unshared versions
+-       of the math library.
+-
+-       Note that this does not remove all floating-point related
+-       functionality from EGLIBC; for example, 'printf' and 'scanf'
+-       can still print and read floating-point values with this option
+-       group disabled.
+-
+-       Note that the ISO Standard C++ library 'libstdc++' depends on
+-       EGLIBC's math library 'libm'.  If you disable this option
+-       group, you will not be able to build 'libstdc++' against the
+-       resulting EGLIBC installation.
++To see the current full list of implemented option groups, refer to the
++file 'option-groups.def' at the top of the source tree, or run
++'make menuconfig' from the top-level build directory.
+ The POSIX.1-2001 specification includes a suggested partition of all
+ the functions in the POSIX C API into option groups: math functions
+@@ -110,6 +86,18 @@
+    OPTION_EGLIBC_LOCALES = n
+    OPTION_EGLIBC_LIBM = y
++Like the Linux kernel, EGLIBC supports a similar set of '*config' make
++targets to make it easier to create 'option-groups.config', with all
++dependencies between option groups automatically satisfied.  Run
++'make help' to see the list of supported make config targets.  For
++example, 'make menuconfig' will update the current config utilising a
++menu based program.
++
++The option group names and their type (boolean, int, hex, string), help
++description, and dependencies with other option groups, are described by
++'option-groups.def' at the top of the source tree, analogous to the
++'Kconfig' files in the Linux kernel.
++
+ In general, each option group variable controls whether a given set of
+ object files in EGLIBC is compiled and included in the final
+ libraries, or omitted from the build.
+@@ -132,22 +120,3 @@
+ We have used the system to subset some portions of EGLIBC's
+ functionality.  It needs to be extended to cover more of the library.
+-
+-At the moment, EGLIBC performs no sanity checks on the contents of
+-'option-groups.config'; if an option group's name is mistyped, the
+-option group is silently included in the build.  EGLIBC should check
+-that all variables set in 'option-groups.config' are proper option
+-group names, and that their values are appropriate.
+-
+-Some portions of EGLIBC depend on others; for example, the Sun Remote
+-Procedure Call functions in 'sunrpc' depend on the networking
+-functions in 'inet'.  The sanity checking described above should check
+-that the selection configuration satisfies dependencies within EGLIBC,
+-and produce a legible error message if it does not.  At the moment,
+-inconsistent configurations produce link errors late in the build
+-process.
+-
+-The Linux kernel's configuration system provides interactive
+-interfaces for creating and modifying configuration files (which also
+-perform the sanity checking and dependency tracking described above).
+-EGLIBC should provide similar interfaces.
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
new file mode 100644 (file)
index 0000000..a8463ea
--- /dev/null
@@ -0,0 +1,36 @@
+From 713d822908d1b2ae8403af7f9375c7054ed3dd49 Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Wed, 19 Dec 2012 04:39:57 -0600
+Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S}
+
+libm-err-tab.pl will parse all the files named "libm-test-ulps"
+in the given dir recursively. To avoid parsing the one in
+${S}/.pc/ (it does exist after eglibc adds aarch64 support,
+${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/
+aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs
+in ${S}.
+
+Upstream-Status: inappropriate [OE specific]
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ manual/Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/manual/Makefile b/manual/Makefile
+index 6fddff0..7af242e 100644
+--- a/manual/Makefile
++++ b/manual/Makefile
+@@ -109,7 +109,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err
+ $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
+                                                    $(dir)/libm-test-ulps))
+       pwd=`pwd`; \
+-      $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp
++      $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp
++      $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp
+       $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi
+       touch $@
+-- 
+1.7.9.7
+
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch b/meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch
new file mode 100644 (file)
index 0000000..7caba48
--- /dev/null
@@ -0,0 +1,169 @@
+pulled from
+
+http://www.eglibc.org/archives/patches/msg01043.html
+
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+
+This patch builds on the menuconfig patch for EGLIBC.
+
+
+There are a few options that have non-boolean types, that would benefit from the new 'make *config' support:
+
+EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE (int)
+EGLIBC_NSSWITCH_FIXED_CONFIG (string)
+EGLIBC_NSSWITCH_FIXED_FUNCTIONS (string)
+
+
+The patch converts these to real options in libc/option-groups.def. Also, libc/scripts/option-groups.awk is modified to output a '#define' line for int, hex, or string options encountered in the config file.
+
+In the post-processing script config-postproc.pl, a small change is needed: for any boolean option FOO that is implicitly disabled in the kconfig output, make sure that option is indeed a boolean before printing the explicit OPTION_FOO=n.
+
+Finally, libc/malloc/Makefile passes __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE as a CPPFLAGS, which is not necessary anymore because this macro will now be present in the generated header.
+
+attached is the updated patch to address above issues.
+
+Steve
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+Index: libc/malloc/Makefile
+===================================================================
+--- libc.orig/malloc/Makefile  2012-01-04 22:06:18.000000000 -0800
++++ libc/malloc/Makefile       2012-05-09 19:35:28.598682105 -0700
+@@ -48,10 +48,6 @@
+ ifeq ($(OPTION_EGLIBC_MEMUSAGE),y)
+ extra-libs = libmemusage
+ extra-libs-others = $(extra-libs)
+-
+-ifdef OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+-CPPFLAGS-memusage += -D__OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE=$(OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE)
+-endif
+ endif
+ libmemusage-routines = memusage
+Index: libc/option-groups.def
+===================================================================
+--- libc.orig/option-groups.def        2012-05-09 19:33:48.398677256 -0700
++++ libc/option-groups.def     2012-05-09 19:35:28.610682107 -0700
+@@ -513,8 +513,11 @@
+        the `memusage' and `memusagestat' utilities.
+        These components provide memory profiling functions.
+-       EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+-
++config EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
++   int "Memory profiling library buffer size"
++   depends on EGLIBC_MEMUSAGE
++   default "32768"
++   help
+        Libmemusage library buffers the profiling data in memory
+        before writing it out to disk.  By default, the library
+        allocates 1.5M buffer, which can be substantial for some
+@@ -553,8 +556,11 @@
+        'option-groups.config' file must set the following two
+        variables:
+-       EGLIBC_NSSWITCH_FIXED_CONFIG
+-
++config EGLIBC_NSSWITCH_FIXED_CONFIG
++   string "Nsswitch fixed config filename"
++   depends on !EGLIBC_NSSWITCH
++   default ""
++   help
+           Set this to the name of a file whose contents observe the
+           same syntax as an ordinary '/etc/nsswitch.conf' file.  The
+           EGLIBC build process parses this file just as EGLIBC would
+@@ -576,8 +582,11 @@
+           you will probably want to delete references to databases not
+           needed on your system.
+-       EGLIBC_NSSWITCH_FIXED_FUNCTIONS
+-
++config EGLIBC_NSSWITCH_FIXED_FUNCTIONS
++   string "Nsswitch fixed functions filename"
++   depends on !EGLIBC_NSSWITCH
++   default ""
++   help
+           The EGLIBC build process uses this file to decide which
+           functions to make available from which service libraries.
+           The file 'nss/fixed-nsswitch.functions' serves as a sample
+Index: libc/options-config/config-postproc.pl
+===================================================================
+--- libc.orig/options-config/config-postproc.pl        2012-05-09 19:33:36.530676681 -0700
++++ libc/options-config/config-postproc.pl     2012-05-09 19:35:28.610682107 -0700
+@@ -8,7 +8,7 @@
+ die "Could not open $ARGV[0]" unless -T $ARGV[0];
+ sub yank {
+-    @option = grep($_ ne $_[0], @option);
++    @option = grep(!($_ =~ /$_[0]\s*=/), @option);
+ }
+ open(DEFAULTS, $defaults) || die "Could not open $defaults\n";
+@@ -16,7 +16,7 @@
+ # get the full list of available options using the default config file
+ $i = 0;
+ while (<DEFAULTS>) {
+-    if (/^\s*OPTION_(\w+)\s*=/) {
++    if (/^\s*OPTION_(\w+\s*=.*$)/) {
+       $option[$i++] = $1;
+     }
+ }
+@@ -35,8 +35,9 @@
+       s/CONFIG_/OPTION_/g;
+       print;
+     } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) {
+-      # this is a comment line, change CONFIG_ to OPTION_, remove this
+-      # option from option list, and convert to explicit OPTION_FOO=n
++      # this is a comment line for an unset boolean option, change CONFIG_
++      # to OPTION_, remove this option from option list, and convert to
++      # explicit OPTION_FOO=n
+       $opt = $1;
+       yank($opt);
+       s/CONFIG_/OPTION_/g;
+@@ -46,9 +47,12 @@
+     }
+ }
+-# any options left in @options, are options that were not mentioned in
++# any boolean options left in @options, are options that were not mentioned in
+ # the config file, and implicitly that means the option must be set =n,
+ # so do that here.
+ foreach $opt (@option) {
+-    print "OPTION_$opt=n\n";
++    if ($opt =~ /=\s*[yn]/) {
++      $opt =~ s/=\s*[yn]/=n/;
++      print "OPTION_$opt\n";
++    }
+ }
+Index: libc/scripts/option-groups.awk
+===================================================================
+--- libc.orig/scripts/option-groups.awk        2012-01-04 22:06:00.000000000 -0800
++++ libc/scripts/option-groups.awk     2012-05-09 19:35:28.610682107 -0700
+@@ -46,9 +46,15 @@
+                 print "#define __" var " 1"
+             else if (vars[var] == "n")
+                 print "/* #undef __" var " */"
+-            # Ignore variables that don't have boolean values.
+-            # Ideally, this would be driven by the types given in
+-            # option-groups.def.
++          else if (vars[var] ~ /^[0-9]+/ ||
++                   vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ ||
++                   vars[var] ~ /^\"/)
++               print "#define __" var " " vars[var]
++          else
++              print "/* #undef __" var " */"
++            # Ignore variables that don't have boolean, int, hex, or
++          # string values. Ideally, this would be driven by the types
++          # given in option-groups.def.
+         }
+     }
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch
new file mode 100644 (file)
index 0000000..d137f5b
--- /dev/null
@@ -0,0 +1,176 @@
+Pulled from
+
+http://www.eglibc.org/archives/patches/msg01035.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+As part of the menuconfig development, I encountered some outdated information in the cross-build instructions, libc/EGLIBC.cross-building. This patch updates the file with new (and tested) instructions. It is unrelated to the menuconfig support, but applies after.
+
+My testing was done with an ARM target, and an x86_64 Linux host, so I converted the instructions to use those host/target types from the original i686/powerpc. Hope that's ok.
+
+
+Thanks,
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+ EGLIBC.cross-building |   59 +++++++++++++++++++++++++++++---------------------
+ 1 file changed, 35 insertions(+), 24 deletions(-)
+
+Index: libc/EGLIBC.cross-building
+===================================================================
+--- libc.orig/EGLIBC.cross-building    2012-05-09 19:33:36.522676681 -0700
++++ libc/EGLIBC.cross-building 2012-05-09 19:36:13.918684298 -0700
+@@ -47,31 +47,34 @@
+ EGLIBC requires recent versions of the GNU binutils, GCC, and the
+ Linux kernel.  The web page <http://www.eglibc.org/prerequisites>
+ documents the current requirements, and lists patches needed for
+-certain target architectures.  As of this writing, EGLIBC required
+-binutils 2.17, GCC 4.1, and Linux 2.6.19.1.
++certain target architectures.  As of this writing, these build
++instructions have been tested with binutils 2.22.51, GCC 4.6.2,
++and Linux 3.1.
+ First, let's set some variables, to simplify later commands.  We'll
+-build EGLIBC and GCC for a PowerPC target, known to the Linux kernel
+-as 'powerpc', and we'll do the build on an Intel Linux box:
++build EGLIBC and GCC for an ARM target, known to the Linux kernel
++as 'arm', and we'll do the build on an Intel x86_64 Linux box:
+-    $ build=i686-pc-linux-gnu
++    $ build=x86_64-pc-linux-gnu
+     $ host=$build
+-    $ target=powerpc-none-linux-gnu
+-    $ linux_arch=powerpc
++    $ target=arm-none-linux-gnueabi
++    $ linux_arch=arm
+ We're using the aforementioned versions of Binutils, GCC, and Linux:
+-    $ binutilsv=binutils-2.17
+-    $ gccv=gcc-4.1.1
+-    $ linuxv=linux-2.6.20
++    $ binutilsv=binutils-2.22.51
++    $ gccv=gcc-4.6.2
++    $ linuxv=linux-3.1
+ We're carrying out the entire process under '~/cross-build', which
+-contains unpacked source trees:
++contains unpacked source trees for binutils, gcc, and linux kernel,
++along with EGLIBC svn trunk (which can be checked-out with
++'svn co http://www.eglibc.org/svn/trunk eglibc'):
+-    $ top=$HOME/cross-build/ppc
++    $ top=$HOME/cross-build/$target
+     $ src=$HOME/cross-build/src
+     $ ls $src
+-    binutils-2.17  gcc-4.1.1  libc  linux-2.6.20
++    binutils-2.22.51  eglibc  gcc-4.6.2  linux-3.1
+ We're going to place our build directories in a subdirectory 'obj',
+ we'll install the cross-development toolchain in 'tools', and we'll
+@@ -99,7 +102,7 @@
+ The First GCC
+-For our work, we need a cross-compiler targeting a PowerPC Linux
++For our work, we need a cross-compiler targeting an ARM Linux
+ system.  However, that configuration includes the shared library
+ 'libgcc_s.so', which is compiled against the EGLIBC headers (which we
+ haven't installed yet) and linked against 'libc.so' (which we haven't
+@@ -125,7 +128,8 @@
+     >     --prefix=$tools \
+     >     --without-headers --with-newlib \
+     >     --disable-shared --disable-threads --disable-libssp \
+-    >     --disable-libgomp --disable-libmudflap \
++    >     --disable-libgomp --disable-libmudflap --disable-libquadmath \
++    >     --disable-decimal-float --disable-libffi \
+     >     --enable-languages=c
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install
+@@ -162,12 +166,13 @@
+     > CXX=$tools/bin/$target-g++ \
+     > AR=$tools/bin/$target-ar \
+     > RANLIB=$tools/bin/$target-ranlib \
+-    > $src/libc/configure \
++    > $src/eglibc/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
+     >     --build=$build \
+     >     --host=$target \
+-    >     --disable-profile --without-gd --without-cvs --enable-add-ons
++    >     --disable-profile --without-gd --without-cvs \
++    >     --enable-add-ons=nptl,libidn,../ports
+ The option '--prefix=/usr' may look strange, but you should never
+ configure EGLIBC with a prefix other than '/usr': in various places,
+@@ -181,6 +186,11 @@
+ The '--with-headers' option tells EGLIBC where the Linux headers have
+ been installed.  
++The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look
++for the listed glibc add-ons. Most notably the ports add-on (located
++just above the libc sources in the EGLIBC svn tree) is required to
++support ARM targets.
++
+ We can now use the 'install-headers' makefile target to install the
+ headers:
+@@ -223,6 +233,7 @@
+     >     --prefix=$tools \
+     >     --with-sysroot=$sysroot \
+     >     --disable-libssp --disable-libgomp --disable-libmudflap \
++    >     --disable-libffi --disable-libquadmath \
+     >     --enable-languages=c
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install
+@@ -240,13 +251,14 @@
+     > CXX=$tools/bin/$target-g++ \
+     > AR=$tools/bin/$target-ar \
+     > RANLIB=$tools/bin/$target-ranlib \
+-    > $src/libc/configure \
++    > $src/eglibc/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
+     >     --with-kconfig=$obj/linux/scripts/kconfig \
+     >     --build=$build \
+     >     --host=$target \
+-    >     --disable-profile --without-gd --without-cvs --enable-add-ons
++    >     --disable-profile --without-gd --without-cvs \
++    >     --enable-add-ons=nptl,libidn,../ports
+ Note the additional '--with-kconfig' option. This tells EGLIBC where to
+ find the host config tools used by the kernel 'make config' and 'make
+@@ -337,15 +349,15 @@
+     ELF Header:
+     ...
+       Type:                              EXEC (Executable file)
+-      Machine:                           PowerPC
++      Machine:                           ARM
+     ...
+     Program Headers:
+       Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
+       PHDR           0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4
+-      INTERP         0x000134 0x10000134 0x10000134 0x0000d 0x0000d R   0x1
+-          [Requesting program interpreter: /lib/ld.so.1]
+-      LOAD           0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000
++      INTERP         0x000134 0x00008134 0x00008134 0x00013 0x00013 R   0x1
++          [Requesting program interpreter: /lib/ld-linux.so.3]
++      LOAD           0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000
+     ...
+ Looking at the dynamic section of the installed 'libgcc_s.so', we see
+@@ -357,7 +369,6 @@
+     Dynamic section at offset 0x1083c contains 24 entries:
+       Tag        Type                         Name/Value
+      0x00000001 (NEEDED)                     Shared library: [libc.so.6]
+-     0x00000001 (NEEDED)                     Shared library: [ld.so.1]
+      0x0000000e (SONAME)                     Library soname: [libgcc_s.so.1]
+     ...
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch
new file mode 100644 (file)
index 0000000..7258c82
--- /dev/null
@@ -0,0 +1,143 @@
+Its controlled by __OPTION_EGLIBC_RTLD_DEBUG
+so we should use GLRO_dl_debug_mask
+
+Singed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: libc/elf/dl-open.c
+===================================================================
+--- libc.orig/elf/dl-open.c    2012-10-25 10:18:12.000000000 -0700
++++ libc/elf/dl-open.c 2013-01-09 11:49:02.635577870 -0800
+@@ -155,7 +155,7 @@
+         ns->_ns_main_searchlist->r_list[new_nlist++] = map;
+         /* We modify the global scope.  Report this.  */
+-        if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++        if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+           _dl_debug_printf ("\nadd %s [%lu] to global scope\n",
+                             map->l_name, map->l_ns);
+       }
+@@ -298,7 +298,7 @@
+   LIBC_PROBE (map_complete, 3, args->nsid, r, new);
+   /* Print scope information.  */
+-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+     _dl_show_scope (new, 0);
+   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
+@@ -515,7 +515,7 @@
+       }
+       /* Print scope information.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+       _dl_show_scope (imap, from_scope);
+     }
+Index: libc/ports/sysdeps/mips/dl-lookup.c
+===================================================================
+--- libc.orig/ports/sysdeps/mips/dl-lookup.c   2012-08-17 12:39:53.000000000 -0700
++++ libc/ports/sysdeps/mips/dl-lookup.c        2013-01-09 11:49:02.635577870 -0800
+@@ -111,7 +111,7 @@
+       continue;
+       /* Print some debugging info if wanted.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0))
+       _dl_debug_printf ("symbol=%s;  lookup in file=%s [%lu]\n",
+                         undef_name,
+                         map->l_name[0] ? map->l_name : rtld_progname,
+@@ -432,7 +432,7 @@
+                    hash table.  */
+                 if (__builtin_expect (tab->size, 0))
+                   {
+-                    assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK);
++                    assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK);
+                     __rtld_lock_unlock_recursive (tab->lock);
+                     goto success;
+                   }
+@@ -681,7 +681,7 @@
+       }
+       /* Display information if we are debugging.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
+       _dl_debug_printf ("\
+ \nfile=%s [%lu];  needed by %s [%lu] (relocation dependency)\n\n",
+                         map->l_name[0] ? map->l_name : rtld_progname,
+@@ -788,7 +788,7 @@
+     {
+       if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
+         && skip_map == NULL
+-        && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED))
++        && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED))
+       {
+         /* We could find no value for a strong reference.  */
+         const char *reference_name = undef_map ? undef_map->l_name : "";
+@@ -861,7 +861,7 @@
+   if (__builtin_expect (current_value.m->l_used == 0, 0))
+     current_value.m->l_used = 1;
+-  if (__builtin_expect (GLRO(dl_debug_mask)
++  if (__builtin_expect (GLRO_dl_debug_mask
+                       & (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
+     _dl_debug_bindings (undef_name, undef_map, ref,
+                       &current_value, version, type_class, protected);
+@@ -926,7 +926,7 @@
+ {
+   const char *reference_name = undef_map->l_name;
+-  if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS)
++  if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS)
+     {
+       _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'",
+                       (reference_name[0]
+@@ -942,7 +942,7 @@
+       _dl_debug_printf_c ("\n");
+     }
+ #ifdef SHARED
+-  if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
++  if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK)
+     {
+       int conflict = 0;
+       struct sym_val val = { NULL, NULL };
+Index: libc/elf/rtld.c
+===================================================================
+--- libc.orig/elf/rtld.c       2012-10-10 08:35:46.000000000 -0700
++++ libc/elf/rtld.c    2013-01-09 11:49:02.635577870 -0800
+@@ -2118,7 +2118,7 @@
+   GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+   /* Print scope information.  */
+-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+     {
+       _dl_debug_printf ("\nInitial object scopes\n");
+Index: libc/elf/dl-lookup.c
+===================================================================
+--- libc.orig/elf/dl-lookup.c  2012-08-17 12:39:53.000000000 -0700
++++ libc/elf/dl-lookup.c       2013-01-09 11:49:02.635577870 -0800
+@@ -771,7 +771,7 @@
+     {
+       if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
+         && skip_map == NULL
+-        && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED))
++        && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED))
+       {
+         /* We could find no value for a strong reference.  */
+         const char *reference_name = undef_map ? undef_map->l_name : "";
+Index: libc/elf/get-dynamic-info.h
+===================================================================
+--- libc.orig/elf/get-dynamic-info.h   2012-12-02 13:11:45.000000000 -0800
++++ libc/elf/get-dynamic-info.h        2013-01-09 12:53:51.015657653 -0800
+@@ -157,7 +157,7 @@
+        them. Therefore to avoid breaking existing applications the
+        best we can do is add a warning during debugging with the
+        intent of notifying the user of the problem.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0)
+         && l->l_flags_1 & ~DT_1_SUPPORTED_MASK)
+       _dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n",
+                         l->l_flags_1 & ~DT_1_SUPPORTED_MASK);
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch
new file mode 100644 (file)
index 0000000..cf58035
--- /dev/null
@@ -0,0 +1,17 @@
+import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
+
+Upstream-Status: Pending
+
+Index: libc/bits/stdio-lock.h
+===================================================================
+--- libc.orig/bits/stdio-lock.h        2009-10-28 14:34:19.000000000 -0700
++++ libc/bits/stdio-lock.h     2009-10-28 14:34:54.000000000 -0700
+@@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _
+   _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp));      \
+   _IO_flockfile (_fp)
++# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
++
+ # define _IO_release_lock(_fp) \
+   _IO_funlockfile (_fp);                                                    \
+   _IO_cleanup_region_end (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch b/meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch
new file mode 100644 (file)
index 0000000..f5023c0
--- /dev/null
@@ -0,0 +1,20 @@
+The older versions of perf still require sys/resource.h to be 
+present in this header, the newer version of perf in 3.2 and
+beyond directly include sys/resource.h
+
+Upstream-Status: Inapproriate [older kernel/perf specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: libc/posix/sys/wait.h
+===================================================================
+--- libc.orig/posix/sys/wait.h
++++ libc/posix/sys/wait.h
+@@ -28,6 +28,7 @@
+ __BEGIN_DECLS
+ #include <signal.h>
++#include <sys/resource.h>
+ /* These macros could also be defined in <stdlib.h>.  */
+ #if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-PR15003-r22243.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-PR15003-r22243.patch
new file mode 100644 (file)
index 0000000..a69302b
--- /dev/null
@@ -0,0 +1,207 @@
+Index: libc/NEWS
+===================================================================
+--- libc/NEWS  (revision 22242)
++++ libc/NEWS  (revision 22243)
+@@ -23,7 +23,7 @@
+   14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805,
+   14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835,
+   14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879,
+-  14889, 14893, 14898, 14914.
++  14889, 14893, 14898, 14914, 15003.
+ * Optimization of memcpy for MIPS.
+Index: libc/ChangeLog
+===================================================================
+--- libc/ChangeLog     (revision 22242)
++++ libc/ChangeLog     (revision 22243)
+@@ -1,3 +1,29 @@
++2013-01-11  Andreas Jaeger  <aj@suse.de>
++
++      [BZ #15003]
++      * sysdeps/unix/sysv/linux/bits/socket.h (MSG_FASTOPEN): New
++      value. Sync with Linux 3.7.
++
++2013-01-09  David S. Miller  <davem@davemloft.net>
++
++      [BZ# 15003]
++      * sysdeps/gnu/netinet/tcp.h (TCP_COOKIE_TRANSACTIONS,
++      TCP_THIN_LINEAR_TIMEOUTS, TCP_THIN_DUPACK, TCP_USER_TIMEOUT,
++      TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS,
++      TCP_FASTOPEN): Define.
++      (tcp_repair_opt): New structure.
++      (TCP_NO_QUEUE, TCP_RECV_QUEUE, TCP_SEND_QUEUE, TCP_QUEUES_NR): New
++      enum values.
++      (TCP_COOKIE_MIN, TCP_COOKIE_MAX, TCP_COOKIE_PAIR_SIZE,
++      TCP_COOKIE_IN_ALWAYS, TCP_COOKIE_OUT_NEVER, TCP_S_DATA_IN,
++      TCP_S_DATA_OUT, TCP_MSS_DEFAULT, TCP_MSS_DESIRED): Define.
++      (tcp_cookie_transactions): New structure.
++
++2013-01-09  Andreas Jaeger  <aj@suse.de>
++
++      * sysdeps/gnu/netinet/tcp.h (TCPI_OPT_SYN_DATA)
++      (TCPI_OPT_ECN_SEEN): Define.  Sync with Linux 3.7.
++
+ 2013-01-01  David S. Miller  <davem@davemloft.net>
+       * po/fr.po: Update from translation team.
+Index: libc/sysdeps/unix/sysv/linux/bits/socket.h
+===================================================================
+--- libc/sysdeps/unix/sysv/linux/bits/socket.h (revision 22242)
++++ libc/sysdeps/unix/sysv/linux/bits/socket.h (revision 22243)
+@@ -1,6 +1,5 @@
+ /* System-specific socket constants and types.  Linux version.
+-   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006-2010, 2011, 2012
+-   Free Software Foundation, Inc.
++   Copyright (C) 1991-2013 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
+@@ -208,6 +207,8 @@
+ #define       MSG_MORE        MSG_MORE
+     MSG_WAITFORONE    = 0x10000, /* Wait for at least one packet to return.*/
+ #define MSG_WAITFORONE        MSG_WAITFORONE
++    MSG_FASTOPEN      = 0x20000000, /* Send data in TCP SYN.  */
++#define MSG_FASTOPEN  MSG_FASTOPEN
+     MSG_CMSG_CLOEXEC  = 0x40000000    /* Set close_on_exit for file
+                                          descriptor received through
+Index: libc/sysdeps/gnu/netinet/tcp.h
+===================================================================
+--- libc/sysdeps/gnu/netinet/tcp.h     (revision 22242)
++++ libc/sysdeps/gnu/netinet/tcp.h     (revision 22243)
+@@ -37,20 +37,29 @@
+ /*
+  * User-settable options (used with setsockopt).
+  */
+-#define       TCP_NODELAY      1      /* Don't delay send to coalesce packets  */
+-#define       TCP_MAXSEG       2      /* Set maximum segment size  */
+-#define TCP_CORK       3      /* Control sending of partial frames  */
+-#define TCP_KEEPIDLE   4      /* Start keeplives after this period */
+-#define TCP_KEEPINTVL  5      /* Interval between keepalives */
+-#define TCP_KEEPCNT    6      /* Number of keepalives before death */
+-#define TCP_SYNCNT     7      /* Number of SYN retransmits */
+-#define TCP_LINGER2    8      /* Life time of orphaned FIN-WAIT-2 state */
+-#define TCP_DEFER_ACCEPT 9    /* Wake up listener only when data arrive */
+-#define TCP_WINDOW_CLAMP 10   /* Bound advertised window */
+-#define TCP_INFO       11     /* Information about this connection. */
+-#define       TCP_QUICKACK     12     /* Bock/reenable quick ACKs.  */
+-#define TCP_CONGESTION         13     /* Congestion control algorithm.  */
+-#define TCP_MD5SIG     14     /* TCP MD5 Signature (RFC2385) */
++#define       TCP_NODELAY              1  /* Don't delay send to coalesce packets  */
++#define       TCP_MAXSEG               2  /* Set maximum segment size  */
++#define TCP_CORK               3  /* Control sending of partial frames  */
++#define TCP_KEEPIDLE           4  /* Start keeplives after this period */
++#define TCP_KEEPINTVL          5  /* Interval between keepalives */
++#define TCP_KEEPCNT            6  /* Number of keepalives before death */
++#define TCP_SYNCNT             7  /* Number of SYN retransmits */
++#define TCP_LINGER2            8  /* Life time of orphaned FIN-WAIT-2 state */
++#define TCP_DEFER_ACCEPT       9  /* Wake up listener only when data arrive */
++#define TCP_WINDOW_CLAMP       10 /* Bound advertised window */
++#define TCP_INFO               11 /* Information about this connection. */
++#define       TCP_QUICKACK             12 /* Bock/reenable quick ACKs.  */
++#define TCP_CONGESTION                 13 /* Congestion control algorithm.  */
++#define TCP_MD5SIG             14 /* TCP MD5 Signature (RFC2385) */
++#define TCP_COOKIE_TRANSACTIONS        15 /* TCP Cookie Transactions */
++#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
++#define TCP_THIN_DUPACK                17 /* Fast retrans. after 1 dupack */
++#define TCP_USER_TIMEOUT       18 /* How long for loss retry before timeout */
++#define TCP_REPAIR             19 /* TCP sock is under repair right now */
++#define TCP_REPAIR_QUEUE       20 /* Set TCP queue to repair */
++#define TCP_QUEUE_SEQ          21 /* Set sequence number of repaired queue. */
++#define TCP_REPAIR_OPTIONS     22 /* Repair TCP connection options */
++#define TCP_FASTOPEN           23 /* Enable FastOpen on listeners */
+ #ifdef __USE_MISC
+ # include <sys/types.h>
+@@ -173,7 +182,9 @@
+ # define TCPI_OPT_TIMESTAMPS  1
+ # define TCPI_OPT_SACK                2
+ # define TCPI_OPT_WSCALE      4
+-# define TCPI_OPT_ECN         8
++# define TCPI_OPT_ECN         8  /* ECN was negociated at TCP session init */
++# define TCPI_OPT_ECN_SEEN    16 /* we received at least one packet with ECT */
++# define TCPI_OPT_SYN_DATA    32 /* SYN-ACK acked data in SYN sent or rcvd */
+ /* Values for tcpi_state.  */
+ enum tcp_ca_state
+@@ -241,6 +252,49 @@
+   u_int8_t    tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* Key (binary).  */
+ };
++/* For socket repair options.  */
++struct tcp_repair_opt
++{
++  u_int32_t   opt_code;
++  u_int32_t   opt_val;
++};
++
++/* Queue to repair, for TCP_REPAIR_QUEUE.  */
++enum
++{
++  TCP_NO_QUEUE,
++  TCP_RECV_QUEUE,
++  TCP_SEND_QUEUE,
++  TCP_QUEUES_NR,
++};
++
++/* For cookie transactions socket options.  */
++#define TCP_COOKIE_MIN                8               /*  64-bits */
++#define TCP_COOKIE_MAX                16              /* 128-bits */
++#define TCP_COOKIE_PAIR_SIZE  (2*TCP_COOKIE_MAX)
++
++/* Flags for both getsockopt and setsockopt */
++#define TCP_COOKIE_IN_ALWAYS  (1 << 0)        /* Discard SYN without cookie */
++#define TCP_COOKIE_OUT_NEVER  (1 << 1)        /* Prohibit outgoing cookies,
++                                               * supercedes everything. */
++
++/* Flags for getsockopt */
++#define TCP_S_DATA_IN         (1 << 2)        /* Was data received? */
++#define TCP_S_DATA_OUT                (1 << 3)        /* Was data sent? */
++
++#define TCP_MSS_DEFAULT                536U   /* IPv4 (RFC1122, RFC2581) */
++#define TCP_MSS_DESIRED               1220U   /* IPv6 (tunneled), EDNS0 (RFC3226) */
++
++struct tcp_cookie_transactions
++{
++  u_int16_t   tcpct_flags;
++  u_int8_t    __tcpct_pad1;
++  u_int8_t    tcpct_cookie_desired;
++  u_int16_t   tcpct_s_data_desired;
++  u_int16_t   tcpct_used;
++  u_int8_t    tcpct_value[TCP_MSS_DEFAULT];
++};
++
+ #endif /* Misc.  */
+ #endif /* netinet/tcp.h */
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r22178-22242
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r22178-22242
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r22178-22242
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r22178-22242
+
+
+Property changes on: .
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch:r22178-22242
+
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-r22178.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc-2.17-r22178.patch
new file mode 100644 (file)
index 0000000..2ad1e23
--- /dev/null
@@ -0,0 +1,9472 @@
+Index: libc/ChangeLog
+===================================================================
+--- libc/ChangeLog     (revision 22177)
++++ libc/ChangeLog     (revision 22178)
+@@ -1,3 +1,8 @@
++2013-01-01  David S. Miller  <davem@davemloft.net>
++
++      * po/fr.po: Update from translation team.
++      * po/ca.po: Likewise.
++
+ 2012-12-21  David S. Miller  <davem@davemloft.net>
+       * po/hr.po: Update from translation team.
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r22064-22177
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r22064-22177
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r22064-22177
+
+
+Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r22064-22177
+
+Index: libc/po/fr.po
+===================================================================
+--- libc/po/fr.po      (revision 22177)
++++ libc/po/fr.po      (revision 22178)
+@@ -7,9 +7,9 @@
+ # kerb <traduc@traduc.org>, 2008, 2009.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: libc-2.16-pre1\n"
+-"POT-Creation-Date: 2012-06-21 07:51-0700\n"
+-"PO-Revision-Date: 2012-07-12 08:16+0100\n"
++"Project-Id-Version: libc-2.17-pre1\n"
++"POT-Creation-Date: 2012-12-07 15:10-0500\n"
++"PO-Revision-Date: 2012-12-30 17:20+0100\n"
+ "Last-Translator: kerb <y.kerb@laposte.net>\n"
+ "Language-Team: French <traduc@traduc.org>\n"
+ "Language: fr\n"
+@@ -19,45 +19,45 @@
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+ "X-Generator: KBabel 1.11.4\n"
+-#: argp/argp-help.c:226
++#: argp/argp-help.c:227
+ #, c-format
+ msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+ msgstr "%.*s : le paramètre ARGP_HELP_FMT requiert une valeur"
+-#: argp/argp-help.c:236
++#: argp/argp-help.c:237
+ #, c-format
+ msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+ msgstr "% *s : paramètre ARGP_HELP_FMT inconnu"
+-#: argp/argp-help.c:249
++#: argp/argp-help.c:250
+ #, c-format
+ msgid "Garbage in ARGP_HELP_FMT: %s"
+ msgstr "Rebut dans l'argument ARGP_HELP_FMT : %s"
+-#: argp/argp-help.c:1213
++#: argp/argp-help.c:1214
+ msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+ msgstr ""
+ "Les arguments obligatoires ou optionnels pour les options de formes longues\n"
+ "le sont aussi pour les options de forme courtes."
+-#: argp/argp-help.c:1599
++#: argp/argp-help.c:1600
+ msgid "Usage:"
+ msgstr "Usage :"
+-#: argp/argp-help.c:1603
++#: argp/argp-help.c:1604
+ msgid "  or: "
+ msgstr "  ou : "
+-#: argp/argp-help.c:1615
++#: argp/argp-help.c:1616
+ msgid " [OPTION...]"
+ msgstr " [OPTION...]"
+-#: argp/argp-help.c:1642
++#: argp/argp-help.c:1643
+ #, c-format
+ msgid "Try `%s --help' or `%s --usage' for more information.\n"
+ msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\n"
+-#: argp/argp-help.c:1670
++#: argp/argp-help.c:1671
+ #, c-format
+ msgid "Report bugs to %s.\n"
+ msgstr "Rapporter toutes anomalies à %s.\n"
+@@ -109,7 +109,7 @@
+ "%s%s%s :%u : %s%s l'assertion « %s » a échoué.\n"
+ "%n"
+-#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:118
++#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:119
+ msgid "NAME"
+ msgstr "NOM"
+@@ -121,7 +121,7 @@
+ msgid "Do not use existing catalog, force new output file"
+ msgstr "Ne pas utiliser le catalogue existant, forcer la génération d'un autre fichier"
+-#: catgets/gencat.c:113 nss/makedb.c:118
++#: catgets/gencat.c:113 nss/makedb.c:119
+ msgid "Write output to file NAME"
+ msgstr "Écrit en sortie dans le FICHIER"
+@@ -141,28 +141,27 @@
+ "-o FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...\n"
+ "[FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]"
+-#: catgets/gencat.c:234 debug/pcprofiledump.c:207 debug/xtrace.sh:57
+-#: elf/ldconfig.c:301 elf/ldd.bash.in:55 elf/pldd.c:56 elf/sln.c:85
+-#: elf/sotruss.ksh:49 elf/sprof.c:370 iconv/iconv_prog.c:407
+-#: iconv/iconvconfig.c:382 locale/programs/locale.c:278
+-#: locale/programs/localedef.c:367 login/programs/pt_chown.c:91
+-#: malloc/memusage.sh:64 malloc/memusagestat.c:538 nscd/nscd.c:456
+-#: nss/getent.c:965 nss/makedb.c:369 posix/getconf.c:1121
+-#: sunrpc/rpc_main.c:1446 sunrpc/rpcinfo.c:691
++#: catgets/gencat.c:235 debug/pcprofiledump.c:208 elf/ldconfig.c:302
++#: elf/pldd.c:222 elf/sln.c:85 elf/sprof.c:371 iconv/iconv_prog.c:408
++#: iconv/iconvconfig.c:383 locale/programs/locale.c:279
++#: locale/programs/localedef.c:363 login/programs/pt_chown.c:88
++#: malloc/memusagestat.c:536 nscd/nscd.c:459 nss/getent.c:965 nss/makedb.c:371
++#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691
+ #: sysdeps/unix/sysv/linux/lddlibc4.c:61
++#, c-format
+ msgid ""
+ "For bug reporting instructions, please see:\n"
+-"<http://www.gnu.org/software/libc/bugs.html>.\n"
++"%s.\n"
+ msgstr ""
+ "Pour les instructions de rapport de bug, SVP voyez là : \n"
+-"<http://www.gnu.org/software/libc/bugs.html>.\n"
++"%s.\n"
+-#: catgets/gencat.c:248 debug/pcprofiledump.c:221 debug/xtrace.sh:65
+-#: elf/ldconfig.c:315 elf/ldd.bash.in:38 elf/pldd.c:220 elf/sotruss.ksh:76
+-#: elf/sprof.c:385 iconv/iconv_prog.c:422 iconv/iconvconfig.c:397
+-#: locale/programs/locale.c:293 locale/programs/localedef.c:383
+-#: login/programs/pt_chown.c:62 malloc/memusage.sh:72
+-#: malloc/memusagestat.c:556 nscd/nscd.c:470 nss/getent.c:86 nss/makedb.c:383
++#: catgets/gencat.c:251 debug/pcprofiledump.c:224 debug/xtrace.sh:64
++#: elf/ldconfig.c:318 elf/ldd.bash.in:38 elf/pldd.c:238 elf/sotruss.ksh:75
++#: elf/sprof.c:388 iconv/iconv_prog.c:425 iconv/iconvconfig.c:400
++#: locale/programs/locale.c:296 locale/programs/localedef.c:389
++#: login/programs/pt_chown.c:62 malloc/memusage.sh:71
++#: malloc/memusagestat.c:552 nscd/nscd.c:475 nss/getent.c:86 nss/makedb.c:387
+ #: posix/getconf.c:1103 sysdeps/unix/sysv/linux/lddlibc4.c:68
+ #, c-format
+ msgid ""
+@@ -175,96 +174,96 @@
+ "reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n"
+ "COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
+-#: catgets/gencat.c:253 debug/pcprofiledump.c:226 debug/xtrace.sh:69
+-#: elf/ldconfig.c:320 elf/pldd.c:225 elf/sprof.c:391 iconv/iconv_prog.c:427
+-#: iconv/iconvconfig.c:402 locale/programs/locale.c:298
+-#: locale/programs/localedef.c:388 malloc/memusage.sh:76
+-#: malloc/memusagestat.c:561 nscd/nscd.c:475 nss/getent.c:91 nss/makedb.c:388
++#: catgets/gencat.c:256 debug/pcprofiledump.c:229 debug/xtrace.sh:68
++#: elf/ldconfig.c:323 elf/pldd.c:243 elf/sprof.c:394 iconv/iconv_prog.c:430
++#: iconv/iconvconfig.c:405 locale/programs/locale.c:301
++#: locale/programs/localedef.c:394 malloc/memusage.sh:75
++#: malloc/memusagestat.c:557 nscd/nscd.c:480 nss/getent.c:91 nss/makedb.c:392
+ #: posix/getconf.c:1108
+ #, c-format
+ msgid "Written by %s.\n"
+ msgstr "Écrit par %s.\n"
+-#: catgets/gencat.c:284
++#: catgets/gencat.c:287
+ msgid "*standard input*"
+ msgstr "*entrée standard*"
+-#: catgets/gencat.c:290 iconv/iconv_charmap.c:171 iconv/iconv_prog.c:293
+-#: nss/makedb.c:247
++#: catgets/gencat.c:293 iconv/iconv_charmap.c:169 iconv/iconv_prog.c:293
++#: nss/makedb.c:248
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "ne peut ouvrir le fichier d'entrée « %s »"
+-#: catgets/gencat.c:419 catgets/gencat.c:494
++#: catgets/gencat.c:422 catgets/gencat.c:497
+ msgid "illegal set number"
+ msgstr "numéro d'ensemble non permis"
+-#: catgets/gencat.c:446
++#: catgets/gencat.c:449
+ msgid "duplicate set definition"
+ msgstr "double définitions d'ensemble"
+-#: catgets/gencat.c:448 catgets/gencat.c:620 catgets/gencat.c:672
++#: catgets/gencat.c:451 catgets/gencat.c:623 catgets/gencat.c:675
+ msgid "this is the first definition"
+ msgstr "ceci est la première définition"
+-#: catgets/gencat.c:519
++#: catgets/gencat.c:522
+ #, c-format
+ msgid "unknown set `%s'"
+ msgstr "ensemble inconnu « %s »"
+-#: catgets/gencat.c:560
++#: catgets/gencat.c:563
+ msgid "invalid quote character"
+ msgstr "caractère de citation (quote) invalide"
+-#: catgets/gencat.c:573
++#: catgets/gencat.c:576
+ #, c-format
+ msgid "unknown directive `%s': line ignored"
+ msgstr "directive inconnue « %s » : ligne ignorée"
+-#: catgets/gencat.c:618
++#: catgets/gencat.c:621
+ msgid "duplicated message number"
+ msgstr "numéro de message en double"
+-#: catgets/gencat.c:669
++#: catgets/gencat.c:672
+ msgid "duplicated message identifier"
+ msgstr "identifiant de message en double"
+-#: catgets/gencat.c:726
++#: catgets/gencat.c:729
+ msgid "invalid character: message ignored"
+ msgstr "caractère invalide : message ignoré"
+-#: catgets/gencat.c:769
++#: catgets/gencat.c:772
+ msgid "invalid line"
+ msgstr "ligne invalide"
+-#: catgets/gencat.c:823
++#: catgets/gencat.c:826
+ msgid "malformed line ignored"
+ msgstr "ligne incorrecte ignorée"
+-#: catgets/gencat.c:987 catgets/gencat.c:1028
++#: catgets/gencat.c:990 catgets/gencat.c:1031
+ #, c-format
+ msgid "cannot open output file `%s'"
+ msgstr "ne peut ouvrir le fichier de sortie « %s »"
+-#: catgets/gencat.c:1190 locale/programs/linereader.c:559
++#: catgets/gencat.c:1193 locale/programs/linereader.c:559
+ msgid "invalid escape sequence"
+ msgstr "séquence d'échappement invalide"
+-#: catgets/gencat.c:1212
++#: catgets/gencat.c:1215
+ msgid "unterminated message"
+ msgstr "message non terminé"
+-#: catgets/gencat.c:1236
++#: catgets/gencat.c:1239
+ #, c-format
+ msgid "while opening old catalog file"
+ msgstr "lors de l'ouverture de l'ancien fichier catalogue"
+-#: catgets/gencat.c:1327
++#: catgets/gencat.c:1330
+ #, c-format
+ msgid "conversion modules not available"
+ msgstr "modules de conversion indisponibles"
+-#: catgets/gencat.c:1353
++#: catgets/gencat.c:1356
+ #, c-format
+ msgid "cannot determine escape character"
+ msgstr "ne peut déterminer le caractère d'échappement"
+@@ -300,8 +299,8 @@
+ msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+ msgstr "Usage : xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+-#: debug/xtrace.sh:32 elf/sotruss.ksh:57 elf/sotruss.ksh:68
+-#: elf/sotruss.ksh:136 malloc/memusage.sh:26
++#: debug/xtrace.sh:32 elf/sotruss.ksh:56 elf/sotruss.ksh:67
++#: elf/sotruss.ksh:135 malloc/memusage.sh:26
+ msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
+ msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\\n"
+@@ -335,20 +334,25 @@
+ "les options de formes courtes.\n"
+ "\n"
+-#: debug/xtrace.sh:126
++#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.ksh:49
++#: malloc/memusage.sh:64
++msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n"
++msgstr "Pour les instructions de rapport de bug, SVP voyez là : \\\\n%s.\\\\n"
++
++#: debug/xtrace.sh:125
+ msgid "xtrace: unrecognized option \\`$1'\\n"
+ msgstr "xtrace : option non reconnue\\`$1'\\n"
+-#: debug/xtrace.sh:139
++#: debug/xtrace.sh:138
+ msgid "No program name given\\n"
+ msgstr "Le nom de programme n'est pas indiqué\\n"
+-#: debug/xtrace.sh:147
++#: debug/xtrace.sh:146
+ #, sh-format
+ msgid "executable \\`$program' not found\\n"
+ msgstr "exécutable \\`$program' non trouvé\\n"
+-#: debug/xtrace.sh:151
++#: debug/xtrace.sh:150
+ #, sh-format
+ msgid "\\`$program' is no executable\\n"
+ msgstr "\\`$program' n'est pas un exécutable\\n"
+@@ -377,85 +381,85 @@
+ msgid "unknown"
+ msgstr "inconnu"
+-#: elf/cache.c:115
++#: elf/cache.c:121
+ msgid "Unknown OS"
+ msgstr "Système d'exploitation inconnu"
+-#: elf/cache.c:120
++#: elf/cache.c:126
+ #, c-format
+ msgid ", OS ABI: %s %d.%d.%d"
+ msgstr ", Système d'exploitation ABI : %s %d.%d.%d"
+-#: elf/cache.c:137 elf/ldconfig.c:1306
++#: elf/cache.c:143 elf/ldconfig.c:1309
+ #, c-format
+ msgid "Can't open cache file %s\n"
+ msgstr "Ne peut ouvrir le fichier de cache %s\n"
+-#: elf/cache.c:151
++#: elf/cache.c:157
+ #, c-format
+ msgid "mmap of cache file failed.\n"
+ msgstr "la procédure mmap sur le fichier de cache a échouée\n"
+-#: elf/cache.c:155 elf/cache.c:169
++#: elf/cache.c:161 elf/cache.c:175
+ #, c-format
+ msgid "File is not a cache file.\n"
+ msgstr "Fichier n'est pas un fichier de cache.\n"
+-#: elf/cache.c:202 elf/cache.c:212
++#: elf/cache.c:208 elf/cache.c:218
+ #, c-format
+ msgid "%d libs found in cache `%s'\n"
+ msgstr "%d libs trouvé dans le cache « %s »\n"
+-#: elf/cache.c:406
++#: elf/cache.c:412
+ #, c-format
+ msgid "Can't create temporary cache file %s"
+ msgstr "Ne peut créer un fichier de cache temporaire %s"
+-#: elf/cache.c:414 elf/cache.c:424 elf/cache.c:428 elf/cache.c:433
++#: elf/cache.c:420 elf/cache.c:430 elf/cache.c:434 elf/cache.c:439
+ #, c-format
+ msgid "Writing of cache data failed"
+ msgstr "Échec d'écriture des données du cache"
+-#: elf/cache.c:438
++#: elf/cache.c:444
+ #, c-format
+ msgid "Changing access rights of %s to %#o failed"
+ msgstr "Échec de la modification des droits d'accès de %s à %#o"
+-#: elf/cache.c:443
++#: elf/cache.c:449
+ #, c-format
+ msgid "Renaming of %s to %s failed"
+ msgstr "Échec du changement de nom de %s vers %s"
+-#: elf/dl-close.c:386 elf/dl-open.c:460
++#: elf/dl-close.c:378 elf/dl-open.c:474
+ msgid "cannot create scope list"
+ msgstr "ne peut créer une liste panorama"
+-#: elf/dl-close.c:773
++#: elf/dl-close.c:771
+ msgid "shared object not open"
+ msgstr "objet partagé non ouvert"
+-#: elf/dl-deps.c:114
++#: elf/dl-deps.c:112
+ msgid "DST not allowed in SUID/SGID programs"
+ msgstr "DST non permis dans un programme SUID/SGID"
+-#: elf/dl-deps.c:127
++#: elf/dl-deps.c:125
+ msgid "empty dynamic string token substitution"
+ msgstr "la chaîne dynamique d'un jeton de substitution est vide"
+-#: elf/dl-deps.c:133
++#: elf/dl-deps.c:131
+ #, c-format
+ msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+ msgstr "ne peut charger l'auxiliaire « %s » en raison d'une chaîne dynamique de substitution de jeton vide\n"
+-#: elf/dl-deps.c:486
++#: elf/dl-deps.c:483
+ msgid "cannot allocate dependency list"
+ msgstr "ne peut allouer une liste de dépendances"
+-#: elf/dl-deps.c:522 elf/dl-deps.c:582
++#: elf/dl-deps.c:520 elf/dl-deps.c:580
+ msgid "cannot allocate symbol search list"
+ msgstr "ne peut allouer la liste des symboles à rechercher"
+-#: elf/dl-deps.c:562
++#: elf/dl-deps.c:560
+ msgid "Filters not supported with LD_TRACE_PRELINKING"
+ msgstr "Filtres non supportés avec LD_TRACE_PRELINKING"
+@@ -479,187 +483,191 @@
+ msgid "internal error: symidx out of range of fptr table"
+ msgstr "erreur interne : symidx en dehors de la table fptr "
+-#: elf/dl-load.c:470
++#: elf/dl-hwcaps.c:173 elf/dl-hwcaps.c:185
++msgid "cannot create capability list"
++msgstr "ne peut créer une liste des possibilités"
++
++#: elf/dl-load.c:471
+ msgid "cannot allocate name record"
+ msgstr "ne peut allouer un enregistrement de nom"
+-#: elf/dl-load.c:547 elf/dl-load.c:663 elf/dl-load.c:748 elf/dl-load.c:861
++#: elf/dl-load.c:548 elf/dl-load.c:664 elf/dl-load.c:749 elf/dl-load.c:862
+ msgid "cannot create cache for search path"
+ msgstr "ne peut créer le cache pour le chemin de recherche"
+-#: elf/dl-load.c:638
++#: elf/dl-load.c:639
+ msgid "cannot create RUNPATH/RPATH copy"
+ msgstr "ne peut créer une copie RUNPATH/RPATH"
+-#: elf/dl-load.c:734
++#: elf/dl-load.c:735
+ msgid "cannot create search path array"
+ msgstr "ne peut créer un tableau des chemins de recherche"
+-#: elf/dl-load.c:932
++#: elf/dl-load.c:934
+ msgid "cannot stat shared object"
+ msgstr "ne peut évaluer par stat() l'objet partagé"
+-#: elf/dl-load.c:1010
++#: elf/dl-load.c:1012
+ msgid "cannot open zero fill device"
+ msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros"
+-#: elf/dl-load.c:1056 elf/dl-load.c:2317
++#: elf/dl-load.c:1059 elf/dl-load.c:2339
+ msgid "cannot create shared object descriptor"
+ msgstr "ne peut créer un descripteur d'objet partagé"
+-#: elf/dl-load.c:1075 elf/dl-load.c:1731 elf/dl-load.c:1834
++#: elf/dl-load.c:1078 elf/dl-load.c:1751 elf/dl-load.c:1854
+ msgid "cannot read file data"
+ msgstr "ne peut lire les données du fichier"
+-#: elf/dl-load.c:1121
++#: elf/dl-load.c:1124
+ msgid "ELF load command alignment not page-aligned"
+ msgstr "Commande de chargement sur une page ELF qui n'est pas alignée"
+-#: elf/dl-load.c:1128
++#: elf/dl-load.c:1131
+ msgid "ELF load command address/offset not properly aligned"
+ msgstr "Commande de chargement sur une adresse ELF incorrectement alignée"
+-#: elf/dl-load.c:1211
++#: elf/dl-load.c:1216
+ msgid "cannot allocate TLS data structures for initial thread"
+ msgstr "ne peut allouer une structure de données TLS pour un thread initial"
+-#: elf/dl-load.c:1234
++#: elf/dl-load.c:1239
+ msgid "cannot handle TLS data"
+ msgstr "ne peut traiter les données TLS"
+-#: elf/dl-load.c:1253
++#: elf/dl-load.c:1258
+ msgid "object file has no loadable segments"
+ msgstr "le fichier objet n'a pas de segment chargeable"
+-#: elf/dl-load.c:1289
++#: elf/dl-load.c:1294
+ msgid "failed to map segment from shared object"
+ msgstr "échec d'adressage (mapping) du segment de l'objet partagé"
+-#: elf/dl-load.c:1315
++#: elf/dl-load.c:1320
+ msgid "cannot dynamically load executable"
+ msgstr "ne peut dynamiquement charger un exécutable"
+-#: elf/dl-load.c:1377
++#: elf/dl-load.c:1383
+ msgid "cannot change memory protections"
+ msgstr "ne peut modifier les protections de mémoire"
+-#: elf/dl-load.c:1396
++#: elf/dl-load.c:1402
+ msgid "cannot map zero-fill pages"
+ msgstr "ne peut adresser des pages remplies de zéros"
+-#: elf/dl-load.c:1410
++#: elf/dl-load.c:1416
+ msgid "object file has no dynamic section"
+ msgstr "le fichier objet n'a pas de section dynamique"
+-#: elf/dl-load.c:1433
++#: elf/dl-load.c:1439
+ msgid "shared object cannot be dlopen()ed"
+ msgstr "l'objet partagé ne peut pas être ouvert via dlopen()"
+-#: elf/dl-load.c:1446
++#: elf/dl-load.c:1452
+ msgid "cannot allocate memory for program header"
+ msgstr "ne peut allouer de la mémoire pour une en-tête de programme"
+-#: elf/dl-load.c:1463 elf/dl-open.c:178
++#: elf/dl-load.c:1469 elf/dl-open.c:180
+ msgid "invalid caller"
+ msgstr "appelant invalide"
+-#: elf/dl-load.c:1502
++#: elf/dl-load.c:1508
+ msgid "cannot enable executable stack as shared object requires"
+ msgstr "ne peut activer une pile exécutable comme l'objet partagé le requiert"
+-#: elf/dl-load.c:1515
++#: elf/dl-load.c:1521
+ msgid "cannot close file descriptor"
+ msgstr "ne peut pas fermer le descripteur de fichier"
+-#: elf/dl-load.c:1731
++#: elf/dl-load.c:1751
+ msgid "file too short"
+ msgstr "fichier trop court"
+-#: elf/dl-load.c:1767
++#: elf/dl-load.c:1787
+ msgid "invalid ELF header"
+ msgstr "en-tête ELF invalide"
+-#: elf/dl-load.c:1779
++#: elf/dl-load.c:1799
+ msgid "ELF file data encoding not big-endian"
+ msgstr "l'encodage des données du fichier ELF n'est pas big-endian"
+-#: elf/dl-load.c:1781
++#: elf/dl-load.c:1801
+ msgid "ELF file data encoding not little-endian"
+ msgstr "l'encodage des données du fichier ELF n'est pas little-endian"
+-#: elf/dl-load.c:1785
++#: elf/dl-load.c:1805
+ msgid "ELF file version ident does not match current one"
+ msgstr "l'identifiant de version du fichier ELF ne concorde pas avec la version courante"
+-#: elf/dl-load.c:1789
++#: elf/dl-load.c:1809
+ msgid "ELF file OS ABI invalid"
+ msgstr "Système d'exploitation du fichier ELF ABI invalide"
+-#: elf/dl-load.c:1792
++#: elf/dl-load.c:1812
+ msgid "ELF file ABI version invalid"
+ msgstr "Version du fichier ELF ABI invalide"
+-#: elf/dl-load.c:1795
++#: elf/dl-load.c:1815
+ msgid "nonzero padding in e_ident"
+ msgstr "remplissage sans zéro dans e_ident"
+-#: elf/dl-load.c:1798
++#: elf/dl-load.c:1818
+ msgid "internal error"
+ msgstr "Erreur interne"
+-#: elf/dl-load.c:1805
++#: elf/dl-load.c:1825
+ msgid "ELF file version does not match current one"
+ msgstr "Version du fichier ELF ne concorde pas avec la version courante"
+-#: elf/dl-load.c:1813
++#: elf/dl-load.c:1833
+ msgid "only ET_DYN and ET_EXEC can be loaded"
+ msgstr "Seuls ET_DYN et ET_EXEC peuvent être chargés"
+-#: elf/dl-load.c:1819
++#: elf/dl-load.c:1839
+ msgid "ELF file's phentsize not the expected size"
+ msgstr "« Phentize » du fichier ELF ne concorde pas avec la taille prévue"
+-#: elf/dl-load.c:2336
++#: elf/dl-load.c:2358
+ msgid "wrong ELF class: ELFCLASS64"
+ msgstr "mauvaise classe ELF : ELFCLASS64"
+-#: elf/dl-load.c:2337
++#: elf/dl-load.c:2359
+ msgid "wrong ELF class: ELFCLASS32"
+ msgstr "mauvaise classe ELF : ELFCLASS32"
+-#: elf/dl-load.c:2340
++#: elf/dl-load.c:2362
+ msgid "cannot open shared object file"
+ msgstr "Ne peut ouvrir le fichier d'objet partagé"
+-#: elf/dl-lookup.c:756 ports/sysdeps/mips/dl-lookup.c:773
++#: elf/dl-lookup.c:757 ports/sysdeps/mips/dl-lookup.c:774
+ msgid "relocation error"
+ msgstr "erreur de réaffectation"
+-#: elf/dl-lookup.c:785 ports/sysdeps/mips/dl-lookup.c:802
++#: elf/dl-lookup.c:786 ports/sysdeps/mips/dl-lookup.c:803
+ msgid "symbol lookup error"
+ msgstr "erreur de recherche de symbole"
+-#: elf/dl-open.c:108
++#: elf/dl-open.c:110
+ msgid "cannot extend global scope"
+ msgstr "ne peut augmenter l'étendue de la plage globale"
+-#: elf/dl-open.c:510
++#: elf/dl-open.c:524
+ msgid "TLS generation counter wrapped!  Please report this."
+ msgstr "Le compteur de génération TLS a bouclé ! SVP expédier un rapport avec le script 'glibcbug'."
+-#: elf/dl-open.c:532
++#: elf/dl-open.c:546
+ msgid "cannot load any more object with static TLS"
+ msgstr "ne peut pas charger plus d'objets avec TLS statique"
+-#: elf/dl-open.c:581
++#: elf/dl-open.c:599
+ msgid "invalid mode for dlopen()"
+ msgstr "mode invalide pour dlopen()"
+-#: elf/dl-open.c:598
++#: elf/dl-open.c:616
+ msgid "no more namespaces available for dlmopen()"
+ msgstr "plus d'espace de nommage disponible pour dlmopen()"
+-#: elf/dl-open.c:616
++#: elf/dl-open.c:634
+ msgid "invalid target namespace in dlmopen()"
+ msgstr "espace de nommage cible invalide dans dlmopen()"
+@@ -689,23 +697,19 @@
+ msgid "cannot apply additional memory protection after relocation"
+ msgstr "ne peut appliquer les protections additionnelle de mémoire après la réaffectation"
+-#: elf/dl-sym.c:162
++#: elf/dl-sym.c:163
+ msgid "RTLD_NEXT used in code not dynamically loaded"
+ msgstr "RTLD_NEXT est utilisé dans du code qui n'est pas chargé dynamiquement"
+-#: elf/dl-sysdep.c:488 elf/dl-sysdep.c:500
+-msgid "cannot create capability list"
+-msgstr "ne peut créer une liste des possibilités"
+-
+-#: elf/dl-tls.c:872
++#: elf/dl-tls.c:875
+ msgid "cannot create TLS data structures"
+ msgstr "ne peut créer les structures de données TLS"
+-#: elf/dl-version.c:171
++#: elf/dl-version.c:166
+ msgid "version lookup error"
+ msgstr "erreur de recherche de version"
+-#: elf/dl-version.c:302
++#: elf/dl-version.c:297
+ msgid "cannot allocate version reference table"
+ msgstr "ne peut allouer la table de référence des versions"
+@@ -773,156 +777,156 @@
+ msgid "Configure Dynamic Linker Run Time Bindings."
+ msgstr "Configuration dynamique des éditions de liens lors de l'exécution."
+-#: elf/ldconfig.c:338
++#: elf/ldconfig.c:341
+ #, c-format
+ msgid "Path `%s' given more than once"
+ msgstr "Chemin « %s » donné plus d'une fois"
+-#: elf/ldconfig.c:378
++#: elf/ldconfig.c:381
+ #, c-format
+ msgid "%s is not a known library type"
+ msgstr "%s n'est pas un type de librairie connu"
+-#: elf/ldconfig.c:406
++#: elf/ldconfig.c:409
+ #, c-format
+ msgid "Can't stat %s"
+ msgstr "Ne peut évaluer par stat %s"
+-#: elf/ldconfig.c:480
++#: elf/ldconfig.c:483
+ #, c-format
+ msgid "Can't stat %s\n"
+ msgstr "Ne peut évaluer par stat %s\n"
+-#: elf/ldconfig.c:490
++#: elf/ldconfig.c:493
+ #, c-format
+ msgid "%s is not a symbolic link\n"
+ msgstr "%s n'est pas un lien symbolique\n"
+-#: elf/ldconfig.c:509
++#: elf/ldconfig.c:512
+ #, c-format
+ msgid "Can't unlink %s"
+ msgstr "Ne peut enlever le lien (unlink) %s"
+-#: elf/ldconfig.c:515
++#: elf/ldconfig.c:518
+ #, c-format
+ msgid "Can't link %s to %s"
+ msgstr "Ne peut établir un lien entre %s et %s"
+-#: elf/ldconfig.c:521
++#: elf/ldconfig.c:524
+ msgid " (changed)\n"
+ msgstr " (a été modifié)\n"
+-#: elf/ldconfig.c:523
++#: elf/ldconfig.c:526
+ msgid " (SKIPPED)\n"
+ msgstr " (ESCAMOTÉ)\n"
+-#: elf/ldconfig.c:578
++#: elf/ldconfig.c:581
+ #, c-format
+ msgid "Can't find %s"
+ msgstr "Ne peut repérer %s"
+-#: elf/ldconfig.c:594 elf/ldconfig.c:767 elf/ldconfig.c:826 elf/ldconfig.c:860
++#: elf/ldconfig.c:597 elf/ldconfig.c:770 elf/ldconfig.c:829 elf/ldconfig.c:863
+ #, c-format
+ msgid "Cannot lstat %s"
+ msgstr "Ne peut évaluer par lstat %s"
+-#: elf/ldconfig.c:601
++#: elf/ldconfig.c:604
+ #, c-format
+ msgid "Ignored file %s since it is not a regular file."
+ msgstr "A ignoré le fichier %s parce que ce n'est pas un fichier régulier."
+-#: elf/ldconfig.c:610
++#: elf/ldconfig.c:613
+ #, c-format
+ msgid "No link created since soname could not be found for %s"
+ msgstr "Aucun lien créé étant donné que n'a pas été repéré %s"
+-#: elf/ldconfig.c:693
++#: elf/ldconfig.c:696
+ #, c-format
+ msgid "Can't open directory %s"
+ msgstr "Ne peut ouvrir le dossier %s"
+-#: elf/ldconfig.c:785 elf/ldconfig.c:847 elf/readlib.c:90
++#: elf/ldconfig.c:788 elf/ldconfig.c:850 elf/readlib.c:90
+ #, c-format
+ msgid "Input file %s not found.\n"
+ msgstr "Fichier d'entrée %s non repéré\n"
+-#: elf/ldconfig.c:792
++#: elf/ldconfig.c:795
+ #, c-format
+ msgid "Cannot stat %s"
+ msgstr "Ne peut évaluer par stat %s"
+-#: elf/ldconfig.c:921
++#: elf/ldconfig.c:924
+ #, c-format
+ msgid "libc5 library %s in wrong directory"
+ msgstr "librairie libc5 %s est dans le mauvais dossier"
+-#: elf/ldconfig.c:924
++#: elf/ldconfig.c:927
+ #, c-format
+ msgid "libc6 library %s in wrong directory"
+ msgstr "librairie libc6 %s est dans le mauvais dossier"
+-#: elf/ldconfig.c:927
++#: elf/ldconfig.c:930
+ #, c-format
+ msgid "libc4 library %s in wrong directory"
+ msgstr "librairie libc4 %s est dans le mauvais dossier"
+-#: elf/ldconfig.c:955
++#: elf/ldconfig.c:958
+ #, c-format
+ msgid "libraries %s and %s in directory %s have same soname but different type."
+ msgstr "Les librairies %s et %s du dossier %s ont le même nom mais sont de types différents."
+-#: elf/ldconfig.c:1064
++#: elf/ldconfig.c:1067
+ #, c-format
+ msgid "Warning: ignoring configuration file that cannot be opened: %s"
+ msgstr "Attention : ignore tout fichier de configuration qui ne peut s'ouvrir : %s"
+-#: elf/ldconfig.c:1130
++#: elf/ldconfig.c:1133
+ #, c-format
+ msgid "%s:%u: bad syntax in hwcap line"
+ msgstr "%s:%u : mauvaise syntaxe dans la ligne hwcap"
+-#: elf/ldconfig.c:1136
++#: elf/ldconfig.c:1139
+ #, c-format
+ msgid "%s:%u: hwcap index %lu above maximum %u"
+ msgstr "%s:%u : l'index hwcap %lu dépasse le maximum %u"
+-#: elf/ldconfig.c:1143 elf/ldconfig.c:1151
++#: elf/ldconfig.c:1146 elf/ldconfig.c:1154
+ #, c-format
+ msgid "%s:%u: hwcap index %lu already defined as %s"
+ msgstr "%s:%u : l'index hwcap %lu déjà défini comme  %s"
+-#: elf/ldconfig.c:1154
++#: elf/ldconfig.c:1157
+ #, c-format
+ msgid "%s:%u: duplicate hwcap %lu %s"
+ msgstr "%s:%u : hwcap en doublon %lu %s"
+-#: elf/ldconfig.c:1176
++#: elf/ldconfig.c:1179
+ #, c-format
+ msgid "need absolute file name for configuration file when using -r"
+ msgstr "nécessite un nom de fichier absolu pour le fichier de configuration quand on utilise -r"
+-#: elf/ldconfig.c:1183 locale/programs/xmalloc.c:65 malloc/obstack.c:433
++#: elf/ldconfig.c:1186 locale/programs/xmalloc.c:65 malloc/obstack.c:433
+ #: malloc/obstack.c:435 posix/getconf.c:1076 posix/getconf.c:1296
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "mémoire épuisée"
+-#: elf/ldconfig.c:1215
++#: elf/ldconfig.c:1218
+ #, c-format
+ msgid "%s:%u: cannot read directory %s"
+ msgstr "%s:%u : ne peut lire le dossier %s"
+-#: elf/ldconfig.c:1259
++#: elf/ldconfig.c:1262
+ #, c-format
+ msgid "relative path `%s' used to build cache"
+ msgstr "chemin relatif `%s' utilisé pour construire le cache"
+-#: elf/ldconfig.c:1285
++#: elf/ldconfig.c:1288
+ #, c-format
+ msgid "Can't chdir to /"
+ msgstr "Ne peut se positionner (chdir) dans /"
+-#: elf/ldconfig.c:1326
++#: elf/ldconfig.c:1329
+ #, c-format
+ msgid "Can't open cache file directory %s\n"
+ msgstr "Ne peut ouvrir le dossier des fichiers de cache %s\n"
+@@ -949,46 +953,46 @@
+ "  -u, --unused            affiche les dépendances directes non utilisées\n"
+ "  -v, --verbose           affiche toutes les informations\n"
+-#: elf/ldd.bash.in:81
++#: elf/ldd.bash.in:80
+ msgid "ldd: option \\`$1' is ambiguous"
+ msgstr "ldd : option \\`$1' est ambiguë"
+-#: elf/ldd.bash.in:88
++#: elf/ldd.bash.in:87
+ msgid "unrecognized option"
+ msgstr "option non reconnue"
+-#: elf/ldd.bash.in:89 elf/ldd.bash.in:127
++#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+ msgid "Try \\`ldd --help' for more information."
+ msgstr "Pour en savoir davantage, faites : \\`ldd --help'."
+-#: elf/ldd.bash.in:126
++#: elf/ldd.bash.in:125
+ msgid "missing file arguments"
+ msgstr "arguments de fichier manquants"
+ #. 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:149 sysdeps/gnu/errlist.c:36
++#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36
+ msgid "No such file or directory"
+ msgstr "Aucun fichier ou dossier de ce type"
+-#: elf/ldd.bash.in:152 inet/rcmd.c:488
++#: elf/ldd.bash.in:151 inet/rcmd.c:488
+ msgid "not regular file"
+ msgstr "n'est pas un fichier régulier"
+-#: elf/ldd.bash.in:155
++#: elf/ldd.bash.in:154
+ msgid "warning: you do not have execution permission for"
+ msgstr "attention : vous n'avez pas la permission d'exécution pour"
+-#: elf/ldd.bash.in:184
++#: elf/ldd.bash.in:183
+ msgid "\tnot a dynamic executable"
+ msgstr "\tn'est pas un exécutable dynamique"
+-#: elf/ldd.bash.in:192
++#: elf/ldd.bash.in:191
+ msgid "exited with unknown exit code"
+ msgstr "a quitté avec un code retour inconnu"
+-#: elf/ldd.bash.in:197
++#: elf/ldd.bash.in:196
+ msgid "error: you do not have read permission for"
+ msgstr "erreur : vous n'avez pas de permission de lecture pour"
+@@ -1027,55 +1031,55 @@
+ msgid "cannot read object name"
+ msgstr "ne peut lire le nom d'objet"
+-#: elf/pldd.c:67
++#: elf/pldd.c:65
+ msgid "List dynamic shared objects loaded into process."
+ msgstr "Liste les objets partagés dynamiques chargés dans le process."
+-#: elf/pldd.c:71
++#: elf/pldd.c:69
+ msgid "PID"
+ msgstr "PID"
+-#: elf/pldd.c:102
++#: elf/pldd.c:100
+ #, c-format
+ msgid "Exactly one parameter with process ID required.\n"
+ msgstr "Un paramètre exactement avec le process ID est requis.\n"
+-#: elf/pldd.c:114
++#: elf/pldd.c:112
+ #, c-format
+ msgid "invalid process ID '%s'"
+ msgstr "process ID invalide '%s'"
+-#: elf/pldd.c:122
++#: elf/pldd.c:120
+ #, c-format
+ msgid "cannot open %s"
+ msgstr "Ne peut ouvrir %s"
+-#: elf/pldd.c:147
++#: elf/pldd.c:145
+ #, c-format
+ msgid "cannot open %s/task"
+ msgstr "Ne peut ouvrir %s/tâche"
+-#: elf/pldd.c:150
++#: elf/pldd.c:148
+ #, c-format
+ msgid "cannot prepare reading %s/task"
+ msgstr "ne peut préparer la lecture %s/tâche"
+-#: elf/pldd.c:163
++#: elf/pldd.c:161
+ #, c-format
+ msgid "invalid thread ID '%s'"
+ msgstr "ID de fil (thread) invalide '%s'"
+-#: elf/pldd.c:174
++#: elf/pldd.c:172
+ #, c-format
+ msgid "cannot attach to process %lu"
+ msgstr "ne peut s'attacher au process %lu"
+-#: elf/pldd.c:246
++#: elf/pldd.c:264
+ #, c-format
+ msgid "cannot get information about process %lu"
+ msgstr "ne peut récupérer l'information à propos du process %lu"
+-#: elf/pldd.c:259
++#: elf/pldd.c:277
+ #, c-format
+ msgid "process %lu is no ELF program"
+ msgstr "le process %lu n'est pas un programme ELF"
+@@ -1209,19 +1213,19 @@
+ "Les arguments obligatoires pour options de formes longues\n"
+ "sont aussi obligatoires pour options de forme courtes correspondantes."
+-#: elf/sotruss.ksh:56
++#: elf/sotruss.ksh:55
+ msgid "%s: option requires an argument -- '%s'\\n"
+ msgstr "%s : l'option requiert un argument -- '%s'\\n"
+-#: elf/sotruss.ksh:62
++#: elf/sotruss.ksh:61
+ msgid "%s: option is ambiguous; possibilities:"
+ msgstr "%s : l'option est ambiguë; possibilités:"
+-#: elf/sotruss.ksh:80
++#: elf/sotruss.ksh:79
+ msgid "Written by %s.\\n"
+ msgstr "Écrit par %s.\\n"
+-#: elf/sotruss.ksh:87
++#: elf/sotruss.ksh:86
+ msgid ""
+ "Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n"
+ "\t    [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n"
+@@ -1233,7 +1237,7 @@
+ "\t    [--help] [--usage] [--version] [--]\n"
+ "\t    EXECUTABLE [EXECUTABLE-OPTION...]\\n"
+-#: elf/sotruss.ksh:135
++#: elf/sotruss.ksh:134
+ msgid "%s: unrecognized option '%c%s'\\n"
+ msgstr "%s : option non reconnue « %c%s »\\n"
+@@ -1261,97 +1265,97 @@
+ msgid "SHOBJ [PROFDATA]"
+ msgstr "SHOBJ [PROFDATA]"
+-#: elf/sprof.c:429
++#: elf/sprof.c:432
+ #, c-format
+ msgid "failed to load shared object `%s'"
+ msgstr "échec de chargement de l'objet partagé « %s »"
+-#: elf/sprof.c:438
++#: elf/sprof.c:441
+ #, c-format
+ msgid "cannot create internal descriptors"
+ msgstr "ne peut créer les descripteurs internes"
+-#: elf/sprof.c:550
++#: elf/sprof.c:553
+ #, c-format
+ msgid "Reopening shared object `%s' failed"
+ msgstr "Échec de réouverture de l'objet partagé « %s »"
+-#: elf/sprof.c:557 elf/sprof.c:652
++#: elf/sprof.c:560 elf/sprof.c:655
+ #, c-format
+ msgid "reading of section headers failed"
+ msgstr "Échec de la lecture d'en-têtes de section"
+-#: elf/sprof.c:565 elf/sprof.c:660
++#: elf/sprof.c:568 elf/sprof.c:663
+ #, c-format
+ msgid "reading of section header string table failed"
+ msgstr "Échec de lecture de la table des chaînes d'en-têtes de section"
+-#: elf/sprof.c:591
++#: elf/sprof.c:594
+ #, c-format
+ msgid "*** Cannot read debuginfo file name: %m\n"
+ msgstr "*** Ne peut lire le nom de fichier de debuginfo : %m\n"
+-#: elf/sprof.c:612
++#: elf/sprof.c:615
+ #, c-format
+ msgid "cannot determine file name"
+ msgstr "Ne peut déterminer le nom de fichier"
+-#: elf/sprof.c:645
++#: elf/sprof.c:648
+ #, c-format
+ msgid "reading of ELF header failed"
+ msgstr "Échec de lecture de l'en-tête ELF"
+-#: elf/sprof.c:681
++#: elf/sprof.c:684
+ #, c-format
+ msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
+ msgstr "*** Le fichier « %s » a été élagué : aucune analyse détaillée possible\n"
+-#: elf/sprof.c:711
++#: elf/sprof.c:714
+ #, c-format
+ msgid "failed to load symbol data"
+ msgstr "échec du chargement de données de symbole"
+-#: elf/sprof.c:776
++#: elf/sprof.c:779
+ #, c-format
+ msgid "cannot load profiling data"
+ msgstr "ne peut charger les données de profilage"
+-#: elf/sprof.c:785
++#: elf/sprof.c:788
+ #, c-format
+ msgid "while stat'ing profiling data file"
+ msgstr "lors de l'évaluation par stat() du fichier de données de profilage"
+-#: elf/sprof.c:793
++#: elf/sprof.c:796
+ #, c-format
+ msgid "profiling data file `%s' does not match shared object `%s'"
+ msgstr "Le fichier de données de profilage « %s » ne concorde pas avec l'objet partagé « %s »"
+-#: elf/sprof.c:804
++#: elf/sprof.c:807
+ #, c-format
+ msgid "failed to mmap the profiling data file"
+ msgstr "Échec de la procédure mmap sur le fichier de données de profilage"
+-#: elf/sprof.c:812
++#: elf/sprof.c:815
+ #, c-format
+ msgid "error while closing the profiling data file"
+ msgstr "erreur lors de la fermeture du fichier de données de profilage"
+-#: elf/sprof.c:821 elf/sprof.c:919
++#: elf/sprof.c:824 elf/sprof.c:922
+ #, c-format
+ msgid "cannot create internal descriptor"
+ msgstr "ne peut créer un descripteur interne"
+-#: elf/sprof.c:895
++#: elf/sprof.c:898
+ #, c-format
+ msgid "`%s' is no correct profile data file for `%s'"
+ msgstr "« %s » est un fichier de profilage incorrect pour « %s »"
+-#: elf/sprof.c:1076 elf/sprof.c:1134
++#: elf/sprof.c:1079 elf/sprof.c:1137
+ #, c-format
+ msgid "cannot allocate symbol data"
+ msgstr "ne peut allouer les données des symboles"
+-#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:445
++#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:448
+ #, c-format
+ msgid "cannot open output file"
+ msgstr "ne peut ouvrir le fichier de sortie"
+@@ -1366,18 +1370,18 @@
+ msgid "illegal input sequence at position %Zd"
+ msgstr "séquence d'échappement d'entrée non permise à la position %Zd"
+-#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:536
++#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:539
+ #, c-format
+ msgid "incomplete character or shift sequence at end of buffer"
+ msgstr "caractère ou séquence de changement incomplet à la fin du tampon"
+-#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:579
+-#: iconv/iconv_prog.c:615
++#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:582
++#: iconv/iconv_prog.c:618
+ #, c-format
+ msgid "error while reading the input"
+ msgstr "erreur lors de la lecture de l'entrée"
+-#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:597
++#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:600
+ #, c-format
+ msgid "unable to allocate buffer for input"
+ msgstr "incapable d'allouer un tampon pour l'entrée"
+@@ -1460,27 +1464,27 @@
+ msgid "error while closing output file"
+ msgstr "erreur lors de la fermeture du fichier de sortie"
+-#: iconv/iconv_prog.c:455
++#: iconv/iconv_prog.c:458
+ #, c-format
+ msgid "conversion stopped due to problem in writing the output"
+ msgstr "conversion stoppée en raison d'un problème d'écriture à la sortie"
+-#: iconv/iconv_prog.c:532
++#: iconv/iconv_prog.c:535
+ #, c-format
+ msgid "illegal input sequence at position %ld"
+ msgstr "séquence d'échappement non permise à la position %ld"
+-#: iconv/iconv_prog.c:540
++#: iconv/iconv_prog.c:543
+ #, c-format
+ msgid "internal error (illegal descriptor)"
+ msgstr "erreur interne (descripteur non permis)"
+-#: iconv/iconv_prog.c:543
++#: iconv/iconv_prog.c:546
+ #, c-format
+ msgid "unknown iconv() error %d"
+ msgstr "erreur inconnue de iconv() %d"
+-#: iconv/iconv_prog.c:788
++#: iconv/iconv_prog.c:791
+ msgid ""
+ "The following list contain all the coded character sets known.  This does\n"
+ "not necessarily mean that all combinations of these names can be used for\n"
+@@ -1526,12 +1530,12 @@
+ msgid "no output file produced because warnings were issued"
+ msgstr "aucun fichier de sortie généré en raison d'avertissements émis"
+-#: iconv/iconvconfig.c:431
++#: iconv/iconvconfig.c:434
+ #, c-format
+ msgid "while inserting in search tree"
+ msgstr "lors d'une insertion dans un arbre de recherche"
+-#: iconv/iconvconfig.c:1240
++#: iconv/iconvconfig.c:1243
+ #, c-format
+ msgid "cannot generate output file"
+ msgstr "ne peut générer le fichier de sortie"
+@@ -2636,7 +2640,7 @@
+ msgid "Cannot set LC_ALL to default locale"
+ msgstr "Ne peut initialiser LC_ALL à la locale par défaut"
+-#: locale/programs/locale.c:518
++#: locale/programs/locale.c:521
+ #, c-format
+ msgid "while preparing output"
+ msgstr "lors de la préparation de la sortie"
+@@ -2734,7 +2738,7 @@
+ msgstr "ERREUR FATALE : le système ne peut définir « _POSIX2_LOCALEDEF »"
+ #: locale/programs/localedef.c:253 locale/programs/localedef.c:269
+-#: locale/programs/localedef.c:595 locale/programs/localedef.c:615
++#: locale/programs/localedef.c:601 locale/programs/localedef.c:621
+ #, c-format
+ msgid "cannot open locale definition file `%s'"
+ msgstr "Ne peut ouvrir le fichier des particularisations « %s »"
+@@ -2744,7 +2748,7 @@
+ msgid "cannot write output files to `%s'"
+ msgstr "Ne peut écrire dans les fichiers de sortie vers « %s »"
+-#: locale/programs/localedef.c:362
++#: locale/programs/localedef.c:367
+ #, c-format
+ msgid ""
+ "System's directory for character maps : %s\n"
+@@ -2757,18 +2761,18 @@
+ "\t\t            du chemin des particularisations : %s\n"
+ "%s"
+-#: locale/programs/localedef.c:563
++#: locale/programs/localedef.c:569
+ #, c-format
+ msgid "circular dependencies between locale definitions"
+ msgstr "Dépendance circulaires entre les définitions de locales"
+-#: locale/programs/localedef.c:569
++#: locale/programs/localedef.c:575
+ #, c-format
+ msgid "cannot add already read locale `%s' a second time"
+ msgstr "Ne peut ajouter une locale déjà lu « %s » une seconde fois"
+ #: locale/programs/locarchive.c:113 locale/programs/locarchive.c:347
+-#: nss/makedb.c:289
++#: nss/makedb.c:290
+ #, c-format
+ msgid "cannot create temporary file"
+ msgstr "ne peut créer un fichier temporaire"
+@@ -2962,12 +2966,12 @@
+ msgid "repertoire map file `%s' not found"
+ msgstr "Fichier de la table des caractères « %s » non repérable"
+-#: login/programs/pt_chown.c:77
++#: login/programs/pt_chown.c:78
+ #, c-format
+ msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'.  This is the helper program for the `grantpt' function.  It is not intended to be run directly from the command line.\n"
+ msgstr "Etablit les permissions d'accès, le propriétaire et le groupe du pseudo terminal esclave correspondant au pseudo terminal maître passé au descripteur de fichier`%d'.  Ceci est le programme d'aide de la fonction `grantpt'.  Il n'est pas prévu pour être lancé depuis la ligne de commande.\n"
+-#: login/programs/pt_chown.c:87
++#: login/programs/pt_chown.c:92
+ #, c-format
+ msgid ""
+ "The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n"
+@@ -2978,33 +2982,33 @@
+ "\n"
+ "%s"
+-#: login/programs/pt_chown.c:191
++#: login/programs/pt_chown.c:198
+ #, c-format
+ msgid "too many arguments"
+ msgstr "trop d'arguments"
+-#: login/programs/pt_chown.c:199
++#: login/programs/pt_chown.c:206
+ #, c-format
+ msgid "needs to be installed setuid `root'"
+ msgstr "nécessite d'être installé avec setuid `root'"
+-#: malloc/mcheck.c:349
++#: malloc/mcheck.c:348
+ msgid "memory is consistent, library is buggy\n"
+ msgstr "La mémoire est consistente, la librairie est fautive.\n"
+-#: malloc/mcheck.c:352
++#: malloc/mcheck.c:351
+ msgid "memory clobbered before allocated block\n"
+ msgstr "Mémoire écrasée avant le bloc alloué\n"
+-#: malloc/mcheck.c:355
++#: malloc/mcheck.c:354
+ msgid "memory clobbered past end of allocated block\n"
+ msgstr "Mémoire écrasée après la fin du bloc alloué\n"
+-#: malloc/mcheck.c:358
++#: malloc/mcheck.c:357
+ msgid "block freed twice\n"
+ msgstr "Bloc libéré deux fois\n"
+-#: malloc/mcheck.c:361
++#: malloc/mcheck.c:360
+ msgid "bogus mcheck_status, library is buggy\n"
+ msgstr "Statut de « mcheck_status » erroné, la librarie est erronée.\n"
+@@ -3066,7 +3070,7 @@
+ "le sont aussi pour les options de forme courtes.\n"
+ "\n"
+-#: malloc/memusage.sh:100
++#: malloc/memusage.sh:99
+ msgid ""
+ "Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n"
+ "\t    [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n"
+@@ -3078,47 +3082,47 @@
+ "\t    [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n"
+ "\t    PROGRAM [PROGRAMOPTION]..."
+-#: malloc/memusage.sh:192
++#: malloc/memusage.sh:191
+ msgid "memusage: option \\`${1##*=}' is ambiguous"
+ msgstr "memusage : l'option \\`${1##*=}' est ambiguë"
+-#: malloc/memusage.sh:201
++#: malloc/memusage.sh:200
+ msgid "memusage: unrecognized option \\`$1'"
+ msgstr "memusage : option non reconnue \\`$1'"
+-#: malloc/memusage.sh:214
++#: malloc/memusage.sh:213
+ msgid "No program name given"
+ msgstr "Le nom de programme n'a pas été indiqué"
+-#: malloc/memusagestat.c:56
++#: malloc/memusagestat.c:55
+ msgid "Name output file"
+ msgstr "Nommer le fichier de sortie"
+-#: malloc/memusagestat.c:57
++#: malloc/memusagestat.c:56
+ msgid "Title string used in output graphic"
+ msgstr "Chaîne de titre utilisé dans le graphique de sortie"
+-#: malloc/memusagestat.c:58
++#: malloc/memusagestat.c:57
+ msgid "Generate output linear to time (default is linear to number of function calls)"
+ msgstr "Génération de sortie linéaire au temps (par défaut linéaire au nombre d'appels de fonction)"
+-#: malloc/memusagestat.c:60
++#: malloc/memusagestat.c:59
+ msgid "Also draw graph for total memory consumption"
+ msgstr "Afficher aussi le graphe de l'utilisation totale de la mémoire"
+-#: malloc/memusagestat.c:61
++#: malloc/memusagestat.c:60
+ msgid "Make output graphic VALUE pixels wide"
+ msgstr "Génère un graphe ayant pour largeur VALUE pixels"
+-#: malloc/memusagestat.c:62
++#: malloc/memusagestat.c:61
+ msgid "Make output graphic VALUE pixels high"
+ msgstr "Génère un graphe ayant VALUE pixels de hauteur"
+-#: malloc/memusagestat.c:67
++#: malloc/memusagestat.c:66
+ msgid "Generate graphic from memory profiling data"
+ msgstr "Génération du graphique des données de profilage de la mémoire"
+-#: malloc/memusagestat.c:70
++#: malloc/memusagestat.c:69
+ msgid "DATAFILE [OUTFILE]"
+ msgstr "DATAFILE [FICHIER_DE_SORTIE]"
+@@ -4016,23 +4020,23 @@
+ msgid "setgroups failed"
+ msgstr "échec de setgroups"
+-#: nscd/grpcache.c:390 nscd/hstcache.c:440 nscd/initgrcache.c:411
++#: nscd/grpcache.c:407 nscd/hstcache.c:440 nscd/initgrcache.c:411
+ #: nscd/pwdcache.c:383 nscd/servicescache.c:338
+ #, c-format
+ msgid "short write in %s: %s"
+ msgstr "Écriture écourtée dans %s : %s"
+-#: nscd/grpcache.c:435 nscd/initgrcache.c:77
++#: nscd/grpcache.c:452 nscd/initgrcache.c:77
+ #, c-format
+ msgid "Haven't found \"%s\" in group cache!"
+ msgstr "N'a pas trouvé « %s » dans la cache du groupe !"
+-#: nscd/grpcache.c:437 nscd/initgrcache.c:79
++#: nscd/grpcache.c:454 nscd/initgrcache.c:79
+ #, c-format
+ msgid "Reloading \"%s\" in group cache!"
+ msgstr "Recharge « %s » dans le cache groupe !"
+-#: nscd/grpcache.c:516
++#: nscd/grpcache.c:533
+ #, c-format
+ msgid "Invalid numeric gid \"%s\"!"
+ msgstr "gid numérique invalide  « %s » !"
+@@ -4115,7 +4119,7 @@
+ msgid "Name Service Cache Daemon."
+ msgstr "« Daemon » du cache du service de noms."
+-#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:207
++#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:208
+ #, c-format
+ msgid "wrong number of arguments"
+ msgstr "Mauvais nombre d'arguments"
+@@ -4144,32 +4148,32 @@
+ msgid "Could not create log file"
+ msgstr "N'a pu créé le fichier journal"
+-#: nscd/nscd.c:346 nscd/nscd.c:371 nscd/nscd_stat.c:173
++#: nscd/nscd.c:348 nscd/nscd.c:373 nscd/nscd_stat.c:173
+ #, c-format
+ msgid "Only root is allowed to use this option!"
+ msgstr "Seul ROOT est autorisé à utiliser cette option !"
+-#: nscd/nscd.c:386
++#: nscd/nscd.c:388
+ #, c-format
+ msgid "'%s' is not a known database"
+ msgstr "'%s' n'est pas une base de donnée connue"
+-#: nscd/nscd.c:411 nscd/nscd_stat.c:192
++#: nscd/nscd.c:413 nscd/nscd_stat.c:192
+ #, c-format
+ msgid "write incomplete"
+ msgstr "écriture incomplète"
+-#: nscd/nscd.c:422
++#: nscd/nscd.c:424
+ #, c-format
+ msgid "cannot read invalidate ACK"
+ msgstr "ne peut lire les ACK invalidés"
+-#: nscd/nscd.c:428
++#: nscd/nscd.c:430
+ #, c-format
+ msgid "invalidation failed"
+ msgstr "l'invalidation a échoué"
+-#: nscd/nscd.c:438
++#: nscd/nscd.c:440
+ #, c-format
+ msgid "secure services not implemented anymore"
+ msgstr "les services de sécurité ne sont plus implémentés"
+@@ -4504,31 +4508,31 @@
+ msgid "Unknown database: %s\n"
+ msgstr "Base de données inconnue : « %s »\n"
+-#: nss/makedb.c:117
++#: nss/makedb.c:118
+ msgid "Convert key to lower case"
+ msgstr "Conversion des caractères en minuscules"
+-#: nss/makedb.c:120
++#: nss/makedb.c:121
+ msgid "Do not print messages while building database"
+ msgstr "Ne pas afficher de message lors de la génération de la base de données"
+-#: nss/makedb.c:122
++#: nss/makedb.c:123
+ msgid "Print content of database file, one entry a line"
+ msgstr "Afficher le contenu du fichier de base de données, une entrée par ligne"
+-#: nss/makedb.c:123
++#: nss/makedb.c:124
+ msgid "CHAR"
+ msgstr "CHAR"
+-#: nss/makedb.c:124
++#: nss/makedb.c:125
+ msgid "Generated line not part of iteration"
+ msgstr "La ligne générée ne fait pas partie de l'itération"
+-#: nss/makedb.c:129
++#: nss/makedb.c:130
+ msgid "Create simple database from textual input."
+ msgstr "Crée une base de données simple à partir des entrées textuelles."
+-#: nss/makedb.c:132
++#: nss/makedb.c:133
+ msgid ""
+ "INPUT-FILE OUTPUT-FILE\n"
+ "-o OUTPUT-FILE INPUT-FILE\n"
+@@ -4538,66 +4542,66 @@
+ "-o FICHIER_DE_SORTIE FICHIER_D_ENTRÉE\n"
+ "-u FICHIER_D_ENTRÉE"
+-#: nss/makedb.c:228
++#: nss/makedb.c:229
+ #, c-format
+ msgid "cannot open database file `%s'"
+ msgstr "Ne peut ouvrir le fichier de base de données `%s'"
+-#: nss/makedb.c:273
++#: nss/makedb.c:274
+ #, c-format
+ msgid "no entries to be processed"
+ msgstr "pas d'entrée à traiter"
+-#: nss/makedb.c:283
++#: nss/makedb.c:284
+ #, c-format
+ msgid "cannot create temporary file name"
+ msgstr "ne peut créer un nom de fichier temporaire"
+-#: nss/makedb.c:305
++#: nss/makedb.c:306
+ #, c-format
+ msgid "cannot stat newly created file"
+ msgstr "pas de stat pour un fichier nouvellement créé"
+-#: nss/makedb.c:316
++#: nss/makedb.c:317
+ #, c-format
+ msgid "cannot rename temporary file"
+ msgstr "ne peut renommer un fichier temporaire"
+-#: nss/makedb.c:529 nss/makedb.c:552
++#: nss/makedb.c:533 nss/makedb.c:556
+ #, c-format
+ msgid "cannot create search tree"
+ msgstr "ne peut créer un arbre de recherche"
+-#: nss/makedb.c:558
++#: nss/makedb.c:562
+ msgid "duplicate key"
+ msgstr "Duplicité de clé"
+-#: nss/makedb.c:570
++#: nss/makedb.c:574
+ #, c-format
+ msgid "problems while reading `%s'"
+ msgstr "Problème lors de la lecture de `%s'"
+-#: nss/makedb.c:794
++#: nss/makedb.c:801
+ #, c-format
+ msgid "failed to write new database file"
+ msgstr "échec à l'écriture du fichier de database"
+-#: nss/makedb.c:807
++#: nss/makedb.c:814
+ #, c-format
+ msgid "cannot stat database file"
+ msgstr "pas de stat pour le fichier de database"
+-#: nss/makedb.c:812
++#: nss/makedb.c:819
+ #, c-format
+ msgid "cannot map database file"
+ msgstr "Ne peut corréler (mapper) le fichier de database"
+-#: nss/makedb.c:815
++#: nss/makedb.c:822
+ #, c-format
+ msgid "file not a database file"
+ msgstr "le fichier n'est pas un fichier de database"
+-#: nss/makedb.c:866
++#: nss/makedb.c:873
+ #, c-format
+ msgid "cannot set file creation context for `%s'"
+ msgstr "Ne peut établir le contexte de création de fichier pour `%s'"
+@@ -4779,7 +4783,7 @@
+ msgid "No previous regular expression"
+ msgstr "Aucune expression régulière précédente"
+-#: posix/wordexp.c:1829
++#: posix/wordexp.c:1830
+ msgid "parameter null or not set"
+ msgstr "paramètre nul ou non initialisé"
+@@ -5045,8 +5049,8 @@
+ msgstr "Signal inconnu %d"
+ #: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:134
+-#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:171 sunrpc/svc_tcp.c:216
+-#: sunrpc/svc_udp.c:145 sunrpc/svc_unix.c:171 sunrpc/svc_unix.c:212
++#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233
++#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229
+ #: sunrpc/xdr.c:630 sunrpc/xdr.c:790 sunrpc/xdr_array.c:97
+ #: sunrpc/xdr_rec.c:151 sunrpc/xdr_ref.c:76
+ msgid "out of memory\n"
+@@ -5211,242 +5215,249 @@
+ msgid "Cannot receive reply to broadcast"
+ msgstr "Ne peut recevoir l'accusé réception à la requête faite par diffusion"
+-#: sunrpc/rpc_main.c:280
++#: sunrpc/rpc_main.c:277
+ #, c-format
+ msgid "%s: output would overwrite %s\n"
+ msgstr "%s : la sortie écraserait %s\n"
+-#: sunrpc/rpc_main.c:287
++#: sunrpc/rpc_main.c:284
+ #, c-format
+ msgid "%s: unable to open %s: %m\n"
+ msgstr "%s : incapable d'ouvrir %s : %m\n"
+-#: sunrpc/rpc_main.c:299
++#: sunrpc/rpc_main.c:296
+ #, c-format
+ msgid "%s: while writing output %s: %m"
+ msgstr "%s : lors de l'écriture sur la sortie %s : %m"
+-#: sunrpc/rpc_main.c:334
++#: sunrpc/rpc_main.c:332 sunrpc/rpc_main.c:371
+ #, c-format
+-msgid "cannot find C preprocessor: %s \n"
+-msgstr "Ne peut trouver le préprocesseur C : %s\n"
++msgid "cannot find C preprocessor: %s\n"
++msgstr "Ne peut trouver le préprocesseur C : %s\n"
+-#: sunrpc/rpc_main.c:342
+-msgid "cannot find any C preprocessor (cpp)\n"
+-msgstr "Ne peut trouver un préprocesseur C (cpp)\n"
+-
+-#: sunrpc/rpc_main.c:411
++#: sunrpc/rpc_main.c:407
+ #, c-format
+ msgid "%s: C preprocessor failed with signal %d\n"
+ msgstr "%s : échec du préprocesseur C -- code de terminaison : %d\n"
+-#: sunrpc/rpc_main.c:414
++#: sunrpc/rpc_main.c:410
+ #, c-format
+ msgid "%s: C preprocessor failed with exit code %d\n"
+ msgstr "%s : échec du préprocesseur C -- code de terminaison : %d\n"
+-#: sunrpc/rpc_main.c:454
++#: sunrpc/rpc_main.c:450
+ #, c-format
+ msgid "illegal nettype: `%s'\n"
+ msgstr "« nettype » non permis :« %s »\n"
+-#: sunrpc/rpc_main.c:1089
++#: sunrpc/rpc_main.c:1085
+ #, c-format
+ msgid "rpcgen: too many defines\n"
+ msgstr "rpcgen : trop de définitions\n"
+-#: sunrpc/rpc_main.c:1101
++#: sunrpc/rpc_main.c:1097
+ #, c-format
+ msgid "rpcgen: arglist coding error\n"
+ msgstr "rpcgen : erreur dans la liste d'arguments de codage\n"
+ #. TRANS: the file will not be removed; this is an
+ #. TRANS: informative message.
+-#: sunrpc/rpc_main.c:1134
++#: sunrpc/rpc_main.c:1130
+ #, c-format
+ msgid "file `%s' already exists and may be overwritten\n"
+ msgstr "Le fichier « %s » existe déjà et peut avoir été écrasé.\n"
+-#: sunrpc/rpc_main.c:1179
++#: sunrpc/rpc_main.c:1175
+ #, c-format
+ msgid "Cannot specify more than one input file!\n"
+ msgstr "Ne peut spécifier plus d'un fichier d'entrée !\n"
+-#: sunrpc/rpc_main.c:1349
++#: sunrpc/rpc_main.c:1345
+ #, c-format
+ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+ msgstr "Cette implantation ne supporte pas le nouveau style ou le code MT-safe !\n"
+-#: sunrpc/rpc_main.c:1358
++#: sunrpc/rpc_main.c:1354
+ #, c-format
+ msgid "Cannot use netid flag with inetd flag!\n"
+ msgstr "Ne utiliser le sémaphore « netid » avec le sémaphore « inetd » !\n"
+-#: sunrpc/rpc_main.c:1367
++#: sunrpc/rpc_main.c:1363
+ #, c-format
+ msgid "Cannot use netid flag without TIRPC!\n"
+ msgstr "Ne peut utiliser le sémaphore « netid » sans « TIRPC » !\n"
+-#: sunrpc/rpc_main.c:1374
++#: sunrpc/rpc_main.c:1370
+ #, c-format
+ msgid "Cannot use table flags with newstyle!\n"
+ msgstr "Ne peut utiliser la table des sémaphores avec « newstyle » !\n"
+-#: sunrpc/rpc_main.c:1393
++#: sunrpc/rpc_main.c:1389
+ #, c-format
+ msgid "\"infile\" is required for template generation flags.\n"
+ msgstr "« fichier-en-entrée » est requis pour la génération du gabarit des indicateurs.\n"
+-#: sunrpc/rpc_main.c:1398
++#: sunrpc/rpc_main.c:1394
+ #, c-format
+ msgid "Cannot have more than one file generation flag!\n"
+ msgstr "Ne peut avoir plus d'un fichier de génération de sémaphores !\n"
+-#: sunrpc/rpc_main.c:1407
++#: sunrpc/rpc_main.c:1403
+ #, c-format
+ msgid "usage: %s infile\n"
+ msgstr "usage : %s fichier-en-entrée\n"
+-#: sunrpc/rpc_main.c:1408
++#: sunrpc/rpc_main.c:1404
+ #, c-format
+ msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
+ msgstr "\t%s [-abkCLNTM][-Dname[=valeur]] [-i taille] [-I [-K secondes]] [-Y chemin] fichier\n"
+-#: sunrpc/rpc_main.c:1410
++#: sunrpc/rpc_main.c:1406
+ #, c-format
+ msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
+ msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o fichier_de_sortie] [fichier_d_entrée]\n"
+-#: sunrpc/rpc_main.c:1412
++#: sunrpc/rpc_main.c:1408
+ #, c-format
+ msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
+ msgstr "\t%s [-s type_réseau]* [-o fichier_de_sortie] [fichier_d_entrée]\n"
+-#: sunrpc/rpc_main.c:1413
++#: sunrpc/rpc_main.c:1409
+ #, c-format
+ msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
+ msgstr "\t%s [-n id_réseau]* [-o fichier_de_sortie] [fichier_d_entrée]\n"
+-#: sunrpc/rpc_main.c:1421
++#: sunrpc/rpc_main.c:1417
+ #, c-format
+ msgid "options:\n"
+ msgstr "options :\n"
+-#: sunrpc/rpc_main.c:1422
++#: sunrpc/rpc_main.c:1418
+ #, c-format
+ msgid "-a\t\tgenerate all files, including samples\n"
+ msgstr "-a\t\tgénère tout fichiers, y compris exemples\n"
+-#: sunrpc/rpc_main.c:1423
++#: sunrpc/rpc_main.c:1419
+ #, c-format
+ msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"
+ msgstr "-b\t\tmode de compatibilité descendante (génère du code pour Sun0S 4.1)\n"
+-#: sunrpc/rpc_main.c:1424
++#: sunrpc/rpc_main.c:1420
+ #, c-format
+ msgid "-c\t\tgenerate XDR routines\n"
+ msgstr "-c\t\tgénère des routines XDR\n"
+-#: sunrpc/rpc_main.c:1425
++#: sunrpc/rpc_main.c:1421
+ #, c-format
+ msgid "-C\t\tANSI C mode\n"
+ msgstr "-C\t\tmode ANSI C\n"
+-#: sunrpc/rpc_main.c:1426
++#: sunrpc/rpc_main.c:1422
+ #, c-format
+ msgid "-Dname[=value]\tdefine a symbol (same as #define)\n"
+ msgstr "-Dname[=valeur]\tdéfinit un symbole (pareil que #define)\n"
+-#: sunrpc/rpc_main.c:1427
++#: sunrpc/rpc_main.c:1423
+ #, c-format
+ msgid "-h\t\tgenerate header file\n"
+ msgstr "-h\t\tgénère le fichier d'entête\n"
+-#: sunrpc/rpc_main.c:1428
++#: sunrpc/rpc_main.c:1424
+ #, c-format
+ msgid "-i size\t\tsize at which to start generating inline code\n"
+ msgstr "-i size\t\ttaille à laquelle débute la génération du code en ligne\n"
+-#: sunrpc/rpc_main.c:1429
++#: sunrpc/rpc_main.c:1425
+ #, c-format
+ msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n"
+ msgstr "-I\t\tgénère du code pour le support de inetd sur serveur (pour SunOS 4.1)\n"
+-#: sunrpc/rpc_main.c:1430
++#: sunrpc/rpc_main.c:1426
+ #, c-format
+ msgid "-K seconds\tserver exits after K seconds of inactivity\n"
+ msgstr "-K secondes\tserveur quitte après K secondes d'inactivité\n"
+-#: sunrpc/rpc_main.c:1431
++#: sunrpc/rpc_main.c:1427
+ #, c-format
+ msgid "-l\t\tgenerate client side stubs\n"
+ msgstr "-l\t\tgénère des squelettes de code du côté client\n"
+-#: sunrpc/rpc_main.c:1432
++#: sunrpc/rpc_main.c:1428
+ #, c-format
+ msgid "-L\t\tserver errors will be printed to syslog\n"
+ msgstr "-L\t\tles erreurs du serveur seront dirigées vers syslog\n"
+-#: sunrpc/rpc_main.c:1433
++#: sunrpc/rpc_main.c:1429
+ #, c-format
+ msgid "-m\t\tgenerate server side stubs\n"
+ msgstr "-m\t\tgénère des squelettes de code du côté serveur\n"
+-#: sunrpc/rpc_main.c:1434
++#: sunrpc/rpc_main.c:1430
+ #, c-format
+ msgid "-M\t\tgenerate MT-safe code\n"
+ msgstr "-M\t\tgénère le code MT-safe\n"
+-#: sunrpc/rpc_main.c:1435
++#: sunrpc/rpc_main.c:1431
+ #, c-format
+ msgid "-n netid\tgenerate server code that supports named netid\n"
+ msgstr "-n netid\tgénère le code serveur qui supporte netid nommé\n"
+-#: sunrpc/rpc_main.c:1436
++#: sunrpc/rpc_main.c:1432
+ #, c-format
+ msgid "-N\t\tsupports multiple arguments and call-by-value\n"
+ msgstr "-N\t\tsupporte des arguments multiples et call-by-value\n"
+-#: sunrpc/rpc_main.c:1437
++#: sunrpc/rpc_main.c:1433
+ #, c-format
+ msgid "-o outfile\tname of the output file\n"
+ msgstr "-o outfile\tnom du fichier de sortie\n"
+-#: sunrpc/rpc_main.c:1438
++#: sunrpc/rpc_main.c:1434
+ #, c-format
+ msgid "-s nettype\tgenerate server code that supports named nettype\n"
+ msgstr "-s nettype\tgénère le code serveur qui supporte nettype nommé\n"
+-#: sunrpc/rpc_main.c:1439
++#: sunrpc/rpc_main.c:1435
+ #, c-format
+ msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n"
+ msgstr "-Sc\t\tgénère du code échantillon client qui utilise des procédures éloignées\n"
+-#: sunrpc/rpc_main.c:1440
++#: sunrpc/rpc_main.c:1436
+ #, c-format
+ msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n"
+ msgstr "-Ss\t\tgénère du code échantillon serveur qui définit des procédures éloignées\n"
+-#: sunrpc/rpc_main.c:1441
++#: sunrpc/rpc_main.c:1437
+ #, c-format
+ msgid "-Sm \t\tgenerate makefile template \n"
+ msgstr "-Sm \t\tgénère un patron de makefile\n"
+-#: sunrpc/rpc_main.c:1442
++#: sunrpc/rpc_main.c:1438
+ #, c-format
+ msgid "-t\t\tgenerate RPC dispatch table\n"
+ msgstr "-t\t\tgénère la table de distribution RPC\n"
+-#: sunrpc/rpc_main.c:1443
++#: sunrpc/rpc_main.c:1439
+ #, c-format
+ msgid "-T\t\tgenerate code to support RPC dispatch tables\n"
+ msgstr "-T\t\tgénère le code qui supporte les tables de distribution RPC\n"
+-#: sunrpc/rpc_main.c:1444
++#: sunrpc/rpc_main.c:1440
+ #, c-format
+ msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"
+ msgstr "-Y path\t\tnom de répertoire pour trouver un préprocesseur C (cpp)\n"
++#: sunrpc/rpc_main.c:1442
++#, c-format
++msgid ""
++"\n"
++"For bug reporting instructions, please see:\n"
++"%s.\n"
++msgstr ""
++"\n"
++"Pour les instructions de rapport de bug, SVP voyez là : \n"
++"%s.\n"
++
+ #: sunrpc/rpc_scan.c:112
+ msgid "constant or identifier expected"
+ msgstr "Constante ou identificateur attendu"
+@@ -5580,59 +5591,59 @@
+ msgid "never registered prog %d\n"
+ msgstr "Le programme %d n'a jamais été enregistré.\n"
+-#: sunrpc/svc_tcp.c:147
++#: sunrpc/svc_tcp.c:164
+ msgid "svc_tcp.c - tcp socket creation problem"
+ msgstr "svc_tcp.c - problème de création d'un socket TCP"
+-#: sunrpc/svc_tcp.c:162
++#: sunrpc/svc_tcp.c:179
+ msgid "svc_tcp.c - cannot getsockname or listen"
+ msgstr "svc_tcp.c - ne peut repérer le nom du socket par getsockname() ou listen()"
+-#: sunrpc/svc_udp.c:120
++#: sunrpc/svc_udp.c:137
+ msgid "svcudp_create: socket creation problem"
+ msgstr "svcudp_create : problème de création du socket"
+-#: sunrpc/svc_udp.c:134
++#: sunrpc/svc_udp.c:151
+ msgid "svcudp_create - cannot getsockname"
+ msgstr "svcudp_create - ne peut repérer le nom du socket par getsockname()"
+-#: sunrpc/svc_udp.c:166
++#: sunrpc/svc_udp.c:183
+ msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
+ msgstr "svcudp_create : xp_pad est trop petit pour IP_PKTINFO\n"
+-#: sunrpc/svc_udp.c:474
++#: sunrpc/svc_udp.c:495
+ msgid "enablecache: cache already enabled"
+ msgstr "enablecache : cache déjà activée"
+-#: sunrpc/svc_udp.c:480
++#: sunrpc/svc_udp.c:501
+ msgid "enablecache: could not allocate cache"
+ msgstr "enablecache : ne peut allouer une cache"
+-#: sunrpc/svc_udp.c:489
++#: sunrpc/svc_udp.c:510
+ msgid "enablecache: could not allocate cache data"
+ msgstr "enablecache : ne peut allouer une cache de données"
+-#: sunrpc/svc_udp.c:497
++#: sunrpc/svc_udp.c:518
+ msgid "enablecache: could not allocate cache fifo"
+ msgstr "enablecache : ne peut allouer une cache de type fifo"
+-#: sunrpc/svc_udp.c:533
++#: sunrpc/svc_udp.c:554
+ msgid "cache_set: victim not found"
+ msgstr "cache_set : « victim » non repéré"
+-#: sunrpc/svc_udp.c:544
++#: sunrpc/svc_udp.c:565
+ msgid "cache_set: victim alloc failed"
+ msgstr "cache_set : échec d'allocation de « victim »"
+-#: sunrpc/svc_udp.c:551
++#: sunrpc/svc_udp.c:572
+ msgid "cache_set: could not allocate new rpc_buffer"
+ msgstr "cache_set : ne peut allouer une nouveau tampon rpc_buffer"
+-#: sunrpc/svc_unix.c:145
++#: sunrpc/svc_unix.c:162
+ msgid "svc_unix.c - AF_UNIX socket creation problem"
+ msgstr "svc_unix.c - problème de création d'un socket « AF_UNIX »"
+-#: sunrpc/svc_unix.c:161
++#: sunrpc/svc_unix.c:178
+ msgid "svc_unix.c - cannot getsockname or listen"
+ msgstr "svc_unix.c - ne peut repérer le nom du socket par getsockname() ou listen()"
+@@ -5742,41 +5753,41 @@
+ msgstr "Expiration de la minuterie durant l'établissement du profile"
+ #: sysdeps/generic/siglist.h:53
+-msgid "Window changed"
+-msgstr "La fenêtre a changée"
+-
+-#: sysdeps/generic/siglist.h:54
+ msgid "User defined signal 1"
+ msgstr "Signal #1 défini par l'usager"
+-#: sysdeps/generic/siglist.h:55
++#: sysdeps/generic/siglist.h:54
+ msgid "User defined signal 2"
+ msgstr "Signal #2 défini par l'usager"
+-#: sysdeps/generic/siglist.h:59
++#: sysdeps/generic/siglist.h:58
+ msgid "EMT trap"
+ msgstr "Trappe EMT"
+-#: sysdeps/generic/siglist.h:62
++#: sysdeps/generic/siglist.h:61
+ msgid "Bad system call"
+ msgstr "Appel système erroné"
+-#: sysdeps/generic/siglist.h:65
++#: sysdeps/generic/siglist.h:64
+ msgid "Stack fault"
+ msgstr "Erreur sur la pile"
+-#: sysdeps/generic/siglist.h:68
++#: sysdeps/generic/siglist.h:67
+ msgid "Information request"
+ msgstr "Requête d'information"
+-#: sysdeps/generic/siglist.h:70
++#: sysdeps/generic/siglist.h:69
+ msgid "Power failure"
+ msgstr "Panne d'alimentation"
+-#: sysdeps/generic/siglist.h:73
++#: sysdeps/generic/siglist.h:72
+ msgid "Resource lost"
+ msgstr "Ressource perdue"
++#: sysdeps/generic/siglist.h:75
++msgid "Window changed"
++msgstr "La fenêtre a changée"
++
+ #. TRANS Operation not permitted; only the owner of the file (or other resource)
+ #. TRANS or processes with special privileges can perform the operation.
+ #: sysdeps/gnu/errlist.c:25
+@@ -6710,424 +6721,427 @@
+ msgid "cannot read header from `%s'"
+ msgstr "Ne peut lire l'en-tête de « %s »"
+-#: timezone/zdump.c:215
++#: timezone/zdump.c:246
+ msgid "lacks alphabetic at start"
+ msgstr "Il manque un lettre de l'alphabet au début"
+-#: timezone/zdump.c:217
++#: timezone/zdump.c:248
+ msgid "has fewer than 3 alphabetics"
+ msgstr "a moins de 3 lettres alphabétiques"
+-#: timezone/zdump.c:219
++#: timezone/zdump.c:250
+ msgid "has more than 6 alphabetics"
+ msgstr "a plus de 6 lettres alphabétiques"
+-#: timezone/zdump.c:227
++#: timezone/zdump.c:258
+ msgid "differs from POSIX standard"
+ msgstr "diffère du standard POSIX"
+-#: timezone/zdump.c:233
++#: timezone/zdump.c:264
+ #, c-format
+ msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+ msgstr "%s : attention : zone \"%s\" abréviation \"%s\" %s\n"
+-#: timezone/zdump.c:244
++#: timezone/zdump.c:273
+ #, c-format
+ msgid ""
+ "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
+ "\n"
+-"Report bugs to tz@elsie.nci.nih.gov.\n"
++"Report bugs to %s.\n"
+ msgstr ""
+ "%s : usage est %s [ --version ] [ --help ] [ -v ] [ -c [AnnéeBasse,]AnnéeHaute ] nom_fuseau_horaire ...\n"
+ "\n"
+-"Envoyer bugs à tz@elsie.nci.nih.gov.\n"
++"Rapporter les bugs à %s.\n"
+-#: timezone/zdump.c:313
++#: timezone/zdump.c:340
+ #, c-format
+ msgid "%s: wild -c argument %s\n"
+ msgstr "%s : argument -c intempestif %s\n"
+-#: timezone/zdump.c:400
++#: timezone/zdump.c:426
+ msgid "Error writing to standard output"
+ msgstr "Erreur d'écriture sur la sortie standard"
+-#: timezone/zdump.c:423
++#: timezone/zdump.c:439
+ #, c-format
+ msgid "%s: use of -v on system with floating time_t other than float or double\n"
+ msgstr "%s : usage de -v sur un système avec time_t flottant autre que float ou double\n"
+-#: timezone/zic.c:388
++#: timezone/zic.c:361
+ #, c-format
+ msgid "%s: Memory exhausted: %s\n"
+ msgstr "%s : mémoire épuisée : %s\n"
+-#: timezone/zic.c:434
++#: timezone/zic.c:401
+ #, c-format
+ msgid "\"%s\", line %d: %s"
+ msgstr "« %s », ligne %d : %s"
+-#: timezone/zic.c:437
++#: timezone/zic.c:404
+ #, c-format
+ msgid " (rule from \"%s\", line %d)"
+ msgstr " (règles de « %s », ligne %d)"
+-#: timezone/zic.c:449
++#: timezone/zic.c:415
+ msgid "warning: "
+ msgstr "AVERTISSEMENT : "
+-#: timezone/zic.c:459
++#: timezone/zic.c:425
+ #, c-format
+ msgid ""
+ "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+ "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+ "\n"
+-"Report bugs to tz@elsie.nci.nih.gov.\n"
++"Report bugs to %s.\n"
+ msgstr ""
+ "%s : l'usage is %s [ --version ] [ --help ] [ -v ] [ -l temps_local ] [ -p règles_posix ] \\\n"
+ "\t[ -d dossier ] [ -L secondes_écoulées ] [ -y type_année ] [ fichier ... ]\n"
+ "\n"
+-"Envoyer bugs à tz@elsie.nci.nih.gov.\n"
++"Rapporter les bugs à %s.\n"
+-#: timezone/zic.c:496
++#: timezone/zic.c:460
+ msgid "wild compilation-time specification of zic_t"
+ msgstr "spécification approximative de zic_t au moment de la compilation"
+-#: timezone/zic.c:515
++#: timezone/zic.c:479
+ #, c-format
+ msgid "%s: More than one -d option specified\n"
+ msgstr "%s : option -d spécifiée plus d'une fois\n"
+-#: timezone/zic.c:525
++#: timezone/zic.c:489
+ #, c-format
+ msgid "%s: More than one -l option specified\n"
+ msgstr "%s : option -l spécifiée plus d'une fois\n"
+-#: timezone/zic.c:535
++#: timezone/zic.c:499
+ #, c-format
+ msgid "%s: More than one -p option specified\n"
+ msgstr "%s : option -p spécifiée plus d'une fois\n"
+-#: timezone/zic.c:545
++#: timezone/zic.c:509
+ #, c-format
+ msgid "%s: More than one -y option specified\n"
+ msgstr "%s : option -y spécifiée plus d'une fois\n"
+-#: timezone/zic.c:555
++#: timezone/zic.c:519
+ #, c-format
+ msgid "%s: More than one -L option specified\n"
+ msgstr "%s : option -L spécifiée plus d'une fois\n"
+-#: timezone/zic.c:604
++#: timezone/zic.c:566
+ msgid "link to link"
+ msgstr "lien à lien"
+-#: timezone/zic.c:669
++#: timezone/zic.c:629
+ msgid "hard link failed, symbolic link used"
+ msgstr "Échec de création du lien direct, création d'un lien symbolique"
+-#: timezone/zic.c:677
++#: timezone/zic.c:637
+ #, c-format
+ msgid "%s: Can't link from %s to %s: %s\n"
+ msgstr "%s : ne peut établir un lien entre %s et %s : %s\n"
+-#: timezone/zic.c:749 timezone/zic.c:751
++#: timezone/zic.c:697 timezone/zic.c:699
+ msgid "same rule name in multiple files"
+ msgstr "Même nom de règle dans plusieurs fichiers"
+-#: timezone/zic.c:792
++#: timezone/zic.c:740
+ msgid "unruly zone"
+ msgstr "Zone sans règle"
+-#: timezone/zic.c:799
++#: timezone/zic.c:747
+ #, c-format
+ msgid "%s in ruleless zone"
+ msgstr "%s est dans une zone sans règle"
+-#: timezone/zic.c:820
++#: timezone/zic.c:767
+ msgid "standard input"
+ msgstr "entrée standard"
+-#: timezone/zic.c:825
++#: timezone/zic.c:772
+ #, c-format
+ msgid "%s: Can't open %s: %s\n"
+ msgstr "%s : ne peut ouvrir %s : %s\n"
+-#: timezone/zic.c:836
++#: timezone/zic.c:783
+ msgid "line too long"
+ msgstr "Ligne trop longue"
+-#: timezone/zic.c:856
++#: timezone/zic.c:803
+ msgid "input line of unknown type"
+ msgstr "Ligne d'entrée de type inconnu"
+-#: timezone/zic.c:872
++#: timezone/zic.c:819
+ #, c-format
+ msgid "%s: Leap line in non leap seconds file %s\n"
+ msgstr ""
+ "%s : ligne de type « Leap » dans un fichier qui n'a pas\n"
+ "de délai en secondes %s\n"
+-#: timezone/zic.c:879 timezone/zic.c:1316 timezone/zic.c:1338
++#: timezone/zic.c:826 timezone/zic.c:1243 timezone/zic.c:1265
+ #, c-format
+ msgid "%s: panic: Invalid l_value %d\n"
+ msgstr "%s : panique : valeur %d de type « l_value » invalide\n"
+-#: timezone/zic.c:887
++#: timezone/zic.c:834
+ #, c-format
+ msgid "%s: Error reading %s\n"
+ msgstr "%s : erreur de lecture de %s\n"
+-#: timezone/zic.c:894
++#: timezone/zic.c:841
+ #, c-format
+ msgid "%s: Error closing %s: %s\n"
+ msgstr "%s : erreur lors de la fermeture de %s : %s\n"
+-#: timezone/zic.c:899
++#: timezone/zic.c:846
+ msgid "expected continuation line not found"
+ msgstr "ligne de continuation attendue, non repérée"
+-#: timezone/zic.c:943 timezone/zic.c:2541 timezone/zic.c:2560
++#: timezone/zic.c:887 timezone/zic.c:2411 timezone/zic.c:2425
+ msgid "time overflow"
+ msgstr "Débordement du temps alloué"
+-#: timezone/zic.c:947
++#: timezone/zic.c:891
+ msgid "24:00 not handled by pre-1998 versions of zic"
+ msgstr "24 : 00 non pris en charge par les versions de zic antérieures à1998 "
+-#: timezone/zic.c:950
++#: timezone/zic.c:894
+ msgid "values over 24 hours not handled by pre-2007 versions of zic"
+ msgstr "valeurs au-delà de 24 heures non prises en charge par les versions de zic antérieures à 2007"
+-#: timezone/zic.c:963
++#: timezone/zic.c:905
+ msgid "wrong number of fields on Rule line"
+ msgstr "Mauvais nombre de champs sur la ligne de type « Rule »"
+-#: timezone/zic.c:967
++#: timezone/zic.c:909
+ msgid "nameless rule"
+ msgstr "Règle sans nom"
+-#: timezone/zic.c:972
++#: timezone/zic.c:914
+ msgid "invalid saved time"
+ msgstr "Temps sauvegardé invalide"
+-#: timezone/zic.c:993
++#: timezone/zic.c:932
+ msgid "wrong number of fields on Zone line"
+ msgstr "Mauvais nombre de champs sur la ligne de type « Zone »"
+-#: timezone/zic.c:999
++#: timezone/zic.c:938
+ #, c-format
+ msgid "\"Zone %s\" line and -l option are mutually exclusive"
+ msgstr "La ligne \"Zone %s\" et l'option -l sont mutuellement exclusifs"
+-#: timezone/zic.c:1007
++#: timezone/zic.c:946
+ #, c-format
+ msgid "\"Zone %s\" line and -p option are mutually exclusive"
+ msgstr "La ligne « Zone %s » et l'option -p sont mutuellement exclusifs"
+-#: timezone/zic.c:1019
++#: timezone/zic.c:958
+ #, c-format
+ msgid "duplicate zone name %s (file \"%s\", line %d)"
+ msgstr "Double noms de zone  %s (fichier « %s », ligne %d)"
+-#: timezone/zic.c:1035
++#: timezone/zic.c:972
+ msgid "wrong number of fields on Zone continuation line"
+ msgstr "Mauvais nombre de champs sur la ligne de type continuation de « Zone »"
+-#: timezone/zic.c:1075
++#: timezone/zic.c:1009
+ msgid "invalid UTC offset"
+ msgstr "Adressage relatif GMT invalide"
+-#: timezone/zic.c:1078
++#: timezone/zic.c:1012
+ msgid "invalid abbreviation format"
+ msgstr "Format d'abréviation invalide"
+-#: timezone/zic.c:1107
++#: timezone/zic.c:1041
+ msgid "Zone continuation line end time is not after end time of previous line"
+ msgstr ""
+ "Temps final de la ligne de continuation du fuseau horaire est antérieur\n"
+ "au temps final de la ligne précédente"
+-#: timezone/zic.c:1135
++#: timezone/zic.c:1066
+ msgid "wrong number of fields on Leap line"
+ msgstr "Mauvais nombre de champs sur la ligne de type « Leap »"
+-#: timezone/zic.c:1144
++#: timezone/zic.c:1075
+ msgid "invalid leaping year"
+ msgstr "Année bissextile invalide"
+-#: timezone/zic.c:1164 timezone/zic.c:1270
++#: timezone/zic.c:1095 timezone/zic.c:1197
+ msgid "invalid month name"
+ msgstr "Nom de mois invalide"
+-#: timezone/zic.c:1177 timezone/zic.c:1383 timezone/zic.c:1397
++#: timezone/zic.c:1108 timezone/zic.c:1310 timezone/zic.c:1324
+ msgid "invalid day of month"
+ msgstr "Jour du mois invalide"
+ # time/zic.c:1120A
+-#: timezone/zic.c:1182
++#: timezone/zic.c:1113
+ msgid "time before zero"
+ msgstr "Temps défini avant le zéro"
+-#: timezone/zic.c:1186
++#: timezone/zic.c:1117
+ msgid "time too small"
+ msgstr "valeur de temps trop petite"
+-#: timezone/zic.c:1190
++#: timezone/zic.c:1121
+ msgid "time too large"
+ msgstr "valeur de temps trop grande"
+-#: timezone/zic.c:1194 timezone/zic.c:1299
++#: timezone/zic.c:1125 timezone/zic.c:1226
+ msgid "invalid time of day"
+ msgstr "Heure du jour invalide"
+-#: timezone/zic.c:1213
++#: timezone/zic.c:1144
+ msgid "illegal CORRECTION field on Leap line"
+ msgstr "champ CORRECTION non permis dans la ligne de type « Leap »"
+-#: timezone/zic.c:1218
++#: timezone/zic.c:1149
+ msgid "illegal Rolling/Stationary field on Leap line"
+ msgstr "Champ « Rolling/Stationary » non permis sur la ligne de type « Leap »"
+-#: timezone/zic.c:1234
++#: timezone/zic.c:1163
+ msgid "wrong number of fields on Link line"
+ msgstr "Mauvais nombre de champs sur la ligne de type « Link »"
+-#: timezone/zic.c:1238
++#: timezone/zic.c:1167
+ msgid "blank FROM field on Link line"
+ msgstr "Champ « FROM » vide dans la ligne de type « Link »"
+-#: timezone/zic.c:1242
++#: timezone/zic.c:1171
+ msgid "blank TO field on Link line"
+ msgstr "Champ « TO » vide dans la ligne de type « Link »"
+-#: timezone/zic.c:1320
++#: timezone/zic.c:1247
+ msgid "invalid starting year"
+ msgstr "Année initiale invalide"
+-#: timezone/zic.c:1342
++#: timezone/zic.c:1269
+ msgid "invalid ending year"
+ msgstr "Année finale invalide"
+-#: timezone/zic.c:1346
++#: timezone/zic.c:1273
+ msgid "starting year greater than ending year"
+ msgstr "année initiale plus grande que l'année finale"
+-#: timezone/zic.c:1353
++#: timezone/zic.c:1280
+ msgid "typed single year"
+ msgstr "une seule année fournie"
+-#: timezone/zic.c:1388
++#: timezone/zic.c:1315
+ msgid "invalid weekday name"
+ msgstr "Nom du jour de semaine invalide"
+-#: timezone/zic.c:1566
++#: timezone/zic.c:1481
+ #, c-format
+ msgid "%s: Can't remove %s: %s\n"
+ msgstr "%s : ne peut enlever %s : %s\n"
+-#: timezone/zic.c:1576
++#: timezone/zic.c:1491
+ #, c-format
+ msgid "%s: Can't create %s: %s\n"
+ msgstr "%s : ne peut créer %s : %s\n"
+-#: timezone/zic.c:1773
++#: timezone/zic.c:1683
+ #, c-format
+ msgid "%s: Error writing %s\n"
+ msgstr "%s : erreur d'écriture de %s\n"
+-#: timezone/zic.c:2070
++#: timezone/zic.c:1964
+ msgid "no POSIX environment variable for zone"
+ msgstr "pas de variable d'environnement POSIX pour zone"
+-#: timezone/zic.c:2237
++#: timezone/zic.c:2131
+ msgid "can't determine time zone abbreviation to use just after until time"
+ msgstr ""
+ "Ne peut déterminer l'abréviation du fuseau horaire à utiliser\n"
+ "juste après telle date"
+-#: timezone/zic.c:2283
++#: timezone/zic.c:2175
+ msgid "too many transitions?!"
+ msgstr "trop de transitions définies ? !"
+-#: timezone/zic.c:2302
++#: timezone/zic.c:2190
+ msgid "internal error - addtype called with bad isdst"
+ msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « isdst »"
+-#: timezone/zic.c:2306
++#: timezone/zic.c:2194
+ msgid "internal error - addtype called with bad ttisstd"
+ msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « ttisstd »"
+-#: timezone/zic.c:2310
++#: timezone/zic.c:2198
+ msgid "internal error - addtype called with bad ttisgmt"
+ msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « ttisgmt »"
+-#: timezone/zic.c:2329
++#: timezone/zic.c:2217
+ msgid "too many local time types"
+ msgstr "trop de types localisés pour la représentation du temps"
+-#: timezone/zic.c:2333
++#: timezone/zic.c:2221
+ msgid "UTC offset out of range"
+ msgstr "UTC décalage en dehors de la plage"
+-#: timezone/zic.c:2361
++#: timezone/zic.c:2245
+ msgid "too many leap seconds"
+ msgstr "trop de délai en secondes"
+-#: timezone/zic.c:2367
++#: timezone/zic.c:2251
+ msgid "repeated leap second moment"
+ msgstr "Répétition du délai une seconde fois"
+-#: timezone/zic.c:2419
++#: timezone/zic.c:2301
+ msgid "Wild result from command execution"
+ msgstr "Résultat anarchique résultant de l'exécution de la commande"
+-#: timezone/zic.c:2420
++#: timezone/zic.c:2302
+ #, c-format
+ msgid "%s: command was '%s', result was %d\n"
+ msgstr "%s : la commande était « %s », le résultat était %d\n"
+-#: timezone/zic.c:2518
++#: timezone/zic.c:2393
+ msgid "Odd number of quotation marks"
+ msgstr "Nombre impair de caractères apostrophe"
+-#: timezone/zic.c:2607
++#: timezone/zic.c:2470
+ msgid "use of 2/29 in non leap-year"
+ msgstr "Utiliser 2/29 pour les années non-bissextiles"
+-#: timezone/zic.c:2642
++#: timezone/zic.c:2505
+ msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+ msgstr "la règle en dehors de début/fin du mois--ne fonctionnera pas avec les versions de zic antérieures à 2004"
+-#: timezone/zic.c:2674
++#: timezone/zic.c:2536
+ msgid "time zone abbreviation lacks alphabetic at start"
+ msgstr "l'abréviation du nom de fuseau horaire n'a pas de caractère alphabétique au début"
+-#: timezone/zic.c:2676
+-msgid "time zone abbreviation has more than 3 alphabetics"
+-msgstr "l'abréviation du nom de fuseau horaire a plus de 3 caractères alphabétiques"
++#: timezone/zic.c:2538
++msgid "time zone abbreviation has fewer than 3 alphabetics"
++msgstr "l'abréviation du nom de fuseau horaire a moins de 3 caractères alphabétiques"
+-#: timezone/zic.c:2678
++#: timezone/zic.c:2540
+ msgid "time zone abbreviation has too many alphabetics"
+ msgstr "l'abréviation du nom de fuseau horaire a trop de caractères alphabétiques"
+-#: timezone/zic.c:2688
++#: timezone/zic.c:2550
+ msgid "time zone abbreviation differs from POSIX standard"
+ msgstr "l'abréviation du nom de fuseau horaire diffère du standard POSIX"
+-#: timezone/zic.c:2700
++#: timezone/zic.c:2562
+ msgid "too many, or too long, time zone abbreviations"
+ msgstr "trop ou de trop longues abréviations de fuseaux horaires"
+-#: timezone/zic.c:2741
++#: timezone/zic.c:2602
+ #, c-format
+ msgid "%s: Can't create directory %s: %s\n"
+ msgstr "%s : ne peut créer le dossier %s : %s\n"
+-#: timezone/zic.c:2763
++#: timezone/zic.c:2623
+ #, c-format
+ msgid "%s: %d did not sign extend correctly\n"
+ msgstr "%s : %d n'a pas fait correctement l'expansion de la valeur signée\n"
++#~ msgid "cannot find any C preprocessor (cpp)\n"
++#~ msgstr "Ne peut trouver un préprocesseur C (cpp)\n"
++
+ #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n"
+ #~ msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\\n"
+Index: libc/po/ca.po
+===================================================================
+--- libc/po/ca.po      (revision 22177)
++++ libc/po/ca.po      (revision 22178)
+@@ -1,7 +1,7 @@
+ # Catalan messages for GNU libc.
+-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011 Free Software Foundation, Inc.
++# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the glibc package.
+-# Ivan Vilata i Balaguer <ivan@selidor.net>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011.
++# Ivan Vilata i Balaguer <ivan@selidor.net>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013.
+ #
+ # Sóc Ivan, aquestes són les convencions que adopte per a la 2.4:
+ #
+@@ -47,9 +47,9 @@
+ #   bonic, excepte quan quede realment horrend o porte a confusió).
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: libc 2.14\n"
+-"POT-Creation-Date: 2011-05-31 00:06-0400\n"
+-"PO-Revision-Date: 2011-09-30 12:49+0200\n"
++"Project-Id-Version: libc 2.17-pre1\n"
++"POT-Creation-Date: 2012-12-07 15:10-0500\n"
++"PO-Revision-Date: 2013-01-01 14:00+0100\n"
+ "Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n"
+ "Language-Team: Catalan <ca@dodds.net>\n"
+ "Language: ca\n"
+@@ -57,89 +57,89 @@
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-#: argp/argp-help.c:228
++#: argp/argp-help.c:227
+ #, c-format
+ msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+ msgstr "%.*s: el paràmetre ARGP_HELP_FMT necessita un valor"
+-#: argp/argp-help.c:238
++#: argp/argp-help.c:237
+ #, c-format
+ msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+ msgstr "%.*s: el paràmetre d’ARGP_HELP_FMT no és conegut"
+-#: argp/argp-help.c:251
++#: argp/argp-help.c:250
+ #, c-format
+ msgid "Garbage in ARGP_HELP_FMT: %s"
+ msgstr "brossa a ARGP_HELP_FMT: %s"
+-#: argp/argp-help.c:1215
++#: argp/argp-help.c:1214
+ msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+ msgstr "Els arguments obligatoris o opcionals per a les opcions llargues també ho són per a les opcions curtes corresponents."
+-#: argp/argp-help.c:1601
++#: argp/argp-help.c:1600
+ msgid "Usage:"
+ msgstr "Forma d’ús:"
+-#: argp/argp-help.c:1605
++#: argp/argp-help.c:1604
+ msgid "  or: "
+ msgstr "      o bé: "
+-#: argp/argp-help.c:1617
++#: argp/argp-help.c:1616
+ msgid " [OPTION...]"
+ msgstr " [OPCIÓ…]"
+-#: argp/argp-help.c:1644
++#: argp/argp-help.c:1643
+ #, c-format
+ msgid "Try `%s --help' or `%s --usage' for more information.\n"
+ msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\n"
+-#: argp/argp-help.c:1672
++#: argp/argp-help.c:1671
+ #, c-format
+ msgid "Report bugs to %s.\n"
+ msgstr "Informeu dels errors a %s.\n"
+ # Més ajudes.  ivb
+-#: argp/argp-parse.c:102
++#: argp/argp-parse.c:101
+ msgid "Give this help list"
+ msgstr "Mostra aquest llistat d’ajuda."
+-#: argp/argp-parse.c:103
++#: argp/argp-parse.c:102
+ msgid "Give a short usage message"
+ msgstr "Mostra un missatge breu amb la forma d’ús."
+-#: argp/argp-parse.c:104
++#: argp/argp-parse.c:103
+ msgid "Set the program name"
+ msgstr "Estableix el nom del programa."
+ # ivb (2002/10/21)
+ # ivb  La cadena «SECS» no està traduïda en l'estructura d'opcions.
+-#: argp/argp-parse.c:106
++#: argp/argp-parse.c:105
+ msgid "Hang for SECS seconds (default 3600)"
+ msgstr "Espera durant un nombre de segons (3600 per defecte)."
+-#: argp/argp-parse.c:167
++#: argp/argp-parse.c:166
+ msgid "Print program version"
+ msgstr "Mostra la versió del programa."
+-#: argp/argp-parse.c:183
++#: argp/argp-parse.c:182
+ msgid "(PROGRAM ERROR) No version known!?"
+ msgstr "(ERROR DEL PROGRAMA) No es coneix cap versió!?"
+-#: argp/argp-parse.c:623
++#: argp/argp-parse.c:622
+ #, c-format
+ msgid "%s: Too many arguments\n"
+ msgstr "%s: Sobren arguments\n"
+-#: argp/argp-parse.c:766
++#: argp/argp-parse.c:765
+ msgid "(PROGRAM ERROR) Option should have been recognized!?"
+ msgstr "(ERROR DEL PROGRAMA) L’opció hauria d’haver estat reconeguda!?"
+-#: assert/assert-perr.c:37
++#: assert/assert-perr.c:36
+ #, c-format
+ msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+ msgstr "%s%s%s:%u: %s%sError inesperat: %s.\n"
+-#: assert/assert.c:105
++#: assert/assert.c:101
+ #, c-format
+ msgid ""
+ "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
+@@ -148,25 +148,25 @@
+ "%s%s%s:%u: %s%sL’asserció «%s» ha fallat.\n"
+ "%n"
+-#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:100 nss/makedb.c:61
++#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:119
+ msgid "NAME"
+ msgstr "NOM"
+ # Més ajudes.  ivb
+-#: catgets/gencat.c:111
++#: catgets/gencat.c:110
+ msgid "Create C header file NAME containing symbol definitions"
+ msgstr "Crea el fitxer capçalera C NOM que contindrà les definicions de símbols."
+-#: catgets/gencat.c:113
++#: catgets/gencat.c:112
+ msgid "Do not use existing catalog, force new output file"
+ msgstr "No empra el catàleg existent, i crea un nou fitxer d’eixida."
+-#: catgets/gencat.c:114 nss/makedb.c:61
++#: catgets/gencat.c:113 nss/makedb.c:119
+ msgid "Write output to file NAME"
+ msgstr "Escriu l’eixida al fitxer NOM."
+ # FIXME: Don't use \v.
+-#: catgets/gencat.c:119
++#: catgets/gencat.c:118
+ msgid ""
+ "Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input.  If OUTPUT-FILE\n"
+ "is -, output is written to standard output.\n"
+@@ -176,7 +176,7 @@
+ "Si FITXER_ENTRADA és «-», l’entrada es llegirà de l’entrada estàndard.\n"
+ "Si FITXER_EIXIDA és «-», l’eixida s’escriurà a l’eixida estàndard.\n"
+-#: catgets/gencat.c:124
++#: catgets/gencat.c:123
+ msgid ""
+ "-o OUTPUT-FILE [INPUT-FILE]...\n"
+ "[OUTPUT-FILE [INPUT-FILE]...]"
+@@ -184,28 +184,29 @@
+ "-o FITXER_EIXIDA [FITXER_ENTRADA]…\n"
+ "[FITXER_EIXIDA [FITXER_ENTRADA]…]"
+-#: 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/sotruss.ksh:49
+-#: elf/sprof.c:371 iconv/iconv_prog.c:408 iconv/iconvconfig.c:380
+-#: locale/programs/locale.c:278 locale/programs/localedef.c:371
+-#: login/programs/pt_chown.c:92 malloc/memusage.sh:65
+-#: malloc/memusagestat.c:539 nscd/nscd.c:415 nss/getent.c:918 nss/makedb.c:231
+-#: posix/getconf.c:1122 sunrpc/rpc_main.c:1492 sunrpc/rpcinfo.c:691
+-#: sysdeps/unix/sysv/linux/lddlibc4.c:62
++# L’adreça es veu millor així.  ivb
++#: catgets/gencat.c:235 debug/pcprofiledump.c:208 elf/ldconfig.c:302
++#: elf/pldd.c:222 elf/sln.c:85 elf/sprof.c:371 iconv/iconv_prog.c:408
++#: iconv/iconvconfig.c:383 locale/programs/locale.c:279
++#: locale/programs/localedef.c:363 login/programs/pt_chown.c:88
++#: malloc/memusagestat.c:536 nscd/nscd.c:459 nss/getent.c:965 nss/makedb.c:371
++#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691
++#: sysdeps/unix/sysv/linux/lddlibc4.c:61
++#, c-format
+ msgid ""
+ "For bug reporting instructions, please see:\n"
+-"<http://www.gnu.org/software/libc/bugs.html>.\n"
++"%s.\n"
+ msgstr ""
+ "Per a obtenir instruccions sobre com informar d’un error, vegeu\n"
+-"<http://www.gnu.org/software/libc/bugs.html>.\n"
++"<%s>.\n"
+-#: catgets/gencat.c:246 debug/pcprofiledump.c:222 debug/xtrace.sh:66
+-#: elf/ldconfig.c:316 elf/ldd.bash.in:39 elf/sotruss.ksh:76 elf/sprof.c:386
+-#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:395 locale/programs/locale.c:293
+-#: locale/programs/localedef.c:387 login/programs/pt_chown.c:63
+-#: malloc/memusage.sh:73 malloc/memusagestat.c:557 nscd/nscd.c:429
+-#: nss/getent.c:87 nss/makedb.c:245 posix/getconf.c:1104
+-#: sysdeps/unix/sysv/linux/lddlibc4.c:69
++#: catgets/gencat.c:251 debug/pcprofiledump.c:224 debug/xtrace.sh:64
++#: elf/ldconfig.c:318 elf/ldd.bash.in:38 elf/pldd.c:238 elf/sotruss.ksh:75
++#: elf/sprof.c:388 iconv/iconv_prog.c:425 iconv/iconvconfig.c:400
++#: locale/programs/locale.c:296 locale/programs/localedef.c:389
++#: login/programs/pt_chown.c:62 malloc/memusage.sh:71
++#: malloc/memusagestat.c:552 nscd/nscd.c:475 nss/getent.c:86 nss/makedb.c:387
++#: posix/getconf.c:1103 sysdeps/unix/sysv/linux/lddlibc4.c:68
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+@@ -217,35 +218,35 @@
+ "de còpia.  No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n"
+ "ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.\n"
+-#: catgets/gencat.c:251 debug/pcprofiledump.c:227 debug/xtrace.sh:70
+-#: elf/ldconfig.c:321 elf/sprof.c:392 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:562 nscd/nscd.c:434 nss/getent.c:92 nss/makedb.c:250
+-#: posix/getconf.c:1109
++#: catgets/gencat.c:256 debug/pcprofiledump.c:229 debug/xtrace.sh:68
++#: elf/ldconfig.c:323 elf/pldd.c:243 elf/sprof.c:394 iconv/iconv_prog.c:430
++#: iconv/iconvconfig.c:405 locale/programs/locale.c:301
++#: locale/programs/localedef.c:394 malloc/memusage.sh:75
++#: malloc/memusagestat.c:557 nscd/nscd.c:480 nss/getent.c:91 nss/makedb.c:392
++#: posix/getconf.c:1108
+ #, c-format
+ msgid "Written by %s.\n"
+ msgstr "Escrit per %s.\n"
+-#: catgets/gencat.c:282
++#: catgets/gencat.c:287
+ msgid "*standard input*"
+ msgstr "*entrada estàndard*"
+-#: catgets/gencat.c:288 iconv/iconv_charmap.c:170 iconv/iconv_prog.c:294
+-#: nss/makedb.c:170
++#: catgets/gencat.c:293 iconv/iconv_charmap.c:169 iconv/iconv_prog.c:293
++#: nss/makedb.c:248
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "no s’ha pogut obrir el fitxer d’entrada «%s»"
+-#: catgets/gencat.c:417 catgets/gencat.c:494
++#: catgets/gencat.c:422 catgets/gencat.c:497
+ msgid "illegal set number"
+ msgstr "el número de joc de missatges no és vàlid"
+-#: catgets/gencat.c:444
++#: catgets/gencat.c:449
+ msgid "duplicate set definition"
+ msgstr "la definició del joc de missatges és duplicada"
+-#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
++#: catgets/gencat.c:451 catgets/gencat.c:623 catgets/gencat.c:675
+ msgid "this is the first definition"
+ msgstr "aquesta és la primera definició"
+@@ -267,52 +268,52 @@
+ msgid "duplicated message number"
+ msgstr "el número de missatge és duplicat"
+-#: catgets/gencat.c:674
++#: catgets/gencat.c:672
+ msgid "duplicated message identifier"
+ msgstr "l’identificador de missatge és duplicat"
+-#: catgets/gencat.c:731
++#: catgets/gencat.c:729
+ msgid "invalid character: message ignored"
+ msgstr "el caràcter no és vàlid: es descarta el missatge"
+-#: catgets/gencat.c:774
++#: catgets/gencat.c:772
+ msgid "invalid line"
+ msgstr "la línia no és vàlida"
+-#: catgets/gencat.c:828
++#: catgets/gencat.c:826
+ msgid "malformed line ignored"
+ msgstr "es descarta la línia en mal estat"
+-#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183
++#: catgets/gencat.c:990 catgets/gencat.c:1031
+ #, c-format
+ msgid "cannot open output file `%s'"
+ msgstr "no s’ha pogut obrir el fitxer d’eixida «%s»"
+-#: catgets/gencat.c:1195 locale/programs/linereader.c:560
++#: catgets/gencat.c:1193 locale/programs/linereader.c:559
+ msgid "invalid escape sequence"
+ msgstr "la seqüència d’escapada no és vàlida"
+-#: catgets/gencat.c:1217
++#: catgets/gencat.c:1215
+ msgid "unterminated message"
+ msgstr "el missatge no està acabat"
+-#: catgets/gencat.c:1241
++#: catgets/gencat.c:1239
+ #, c-format
+ msgid "while opening old catalog file"
+ msgstr "en obrir el fitxer antic de catàleg"
+-#: catgets/gencat.c:1332
++#: catgets/gencat.c:1330
+ #, c-format
+ msgid "conversion modules not available"
+ msgstr "els mòduls de conversió no es troben disponibles"
+-#: catgets/gencat.c:1358
++#: catgets/gencat.c:1356
+ #, c-format
+ msgid "cannot determine escape character"
+ msgstr "no s’ha pogut determinar el caràcter d’escapada"
+ # Més ajudes.  ivb
+-#: debug/pcprofiledump.c:53
++#: debug/pcprofiledump.c:52
+ msgid "Don't buffer output"
+ msgstr "No empra memòria intermèdia per a l’eixida."
+@@ -324,42 +325,43 @@
+ # ivb  tot i que el codi del programa cada volta que fa referència a «pc»
+ # ivb  o «PC» parla del «lowpc» i del «highpc», sempre en referència al
+ # ivb  segment de text (codi) del programa.
+-#: debug/pcprofiledump.c:58
++#: debug/pcprofiledump.c:57
+ msgid "Dump information generated by PC profiling."
+ msgstr "Bolca la informació generada en perfilar el comptador de programa."
+-#: debug/pcprofiledump.c:61
++#: debug/pcprofiledump.c:60
+ msgid "[FILE]"
+ msgstr "[FITXER]"
+-#: debug/pcprofiledump.c:108
++#: debug/pcprofiledump.c:107
+ #, c-format
+ msgid "cannot open input file"
+ msgstr "no s’ha pogut obrir el fitxer d’entrada"
+-#: debug/pcprofiledump.c:115
++#: debug/pcprofiledump.c:114
+ #, c-format
+ msgid "cannot read header"
+ msgstr "no s’ha pogut llegir la capçalera"
+-#: debug/pcprofiledump.c:179
++#: debug/pcprofiledump.c:178
+ #, c-format
+ msgid "invalid pointer size"
+ msgstr "la mida del punter no és vàlida"
+-#: debug/xtrace.sh:27 debug/xtrace.sh:45
++#: debug/xtrace.sh:26 debug/xtrace.sh:44
+ msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+ msgstr "Forma d’ús: xtrace [OPCIÓ]… PROGRAMA [OPCIÓ_DE_PROGRAMA]…\\n"
+-#: debug/xtrace.sh:33 malloc/memusage.sh:27
+-msgid "Try \\`%s --help' or `%s --usage' for more information.\\n"
++#: debug/xtrace.sh:32 elf/sotruss.ksh:56 elf/sotruss.ksh:67
++#: elf/sotruss.ksh:135 malloc/memusage.sh:26
++msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
+ msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\\n"
+-#: debug/xtrace.sh:39
++#: debug/xtrace.sh:38
+ msgid "%s: option '%s' requires an argument.\\n"
+ msgstr "%s: l’opció «%s» necessita un argument\\n"
+-#: debug/xtrace.sh:46
++#: debug/xtrace.sh:45
+ msgid ""
+ "Trace execution of program by printing currently executed function.\n"
+ "\n"
+@@ -387,163 +389,173 @@
+ "opcions curtes corresponents.\n"
+ "\n"
+-#: debug/xtrace.sh:127
++# L’adreça es veu millor així.  ivb
++#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.ksh:49
++#: malloc/memusage.sh:64
++msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n"
++msgstr "Per a obtenir instruccions sobre com informar d’un error, vegeu\\\\n<%s>.\\\\n"
++
++#: debug/xtrace.sh:125
+ msgid "xtrace: unrecognized option \\`$1'\\n"
+ msgstr "xtrace: l’opció «$1» no és reconeguda\\n"
+-#: debug/xtrace.sh:140
++#: debug/xtrace.sh:138
+ msgid "No program name given\\n"
+ msgstr "no s’ha indicat un nom de programa\\n"
+-#: debug/xtrace.sh:148
++#: debug/xtrace.sh:146
+ #, sh-format
+ msgid "executable \\`$program' not found\\n"
+ msgstr "no s’ha trobat l’executable «$program»\\n"
+-#: debug/xtrace.sh:152
++#: debug/xtrace.sh:150
+ #, sh-format
+ msgid "\\`$program' is no executable\\n"
+ msgstr "«$program» no és executable\\n"
+-#: dlfcn/dlinfo.c:64
++#: dlfcn/dlinfo.c:63
+ msgid "RTLD_SELF used in code not dynamically loaded"
+ msgstr "S’ha emprat RTLD_SELF en un codi no carregat dinàmicament"
+-#: dlfcn/dlinfo.c:73
++#: dlfcn/dlinfo.c:72
+ msgid "unsupported dlinfo request"
+ msgstr "dlinfo() no permet l’ús d’aquesta petició"
+-#: dlfcn/dlmopen.c:64
++#: dlfcn/dlmopen.c:63
+ msgid "invalid namespace"
+ msgstr "l’espai de noms no és vàlid"
+-#: dlfcn/dlmopen.c:69
++#: dlfcn/dlmopen.c:68
+ msgid "invalid mode"
+ msgstr "el mode no és vàlid"
+-#: dlfcn/dlopen.c:65
++#: dlfcn/dlopen.c:64
+ msgid "invalid mode parameter"
+ msgstr "el paràmetre de mode no és vàlid"
+ # ivb (2001/11/01)
+ # ivb  Es refereix al tipus de la biblioteca (libc{4,5,6}) -> masculí.
+-#: elf/cache.c:69
++#: elf/cache.c:68
+ msgid "unknown"
+ msgstr "desconegut"
+ # ivb (2001/11/06)
+ # ivb  Cal mantenir-ho curt...
+-#: elf/cache.c:112
++#: elf/cache.c:121
+ msgid "Unknown OS"
+ msgstr "SO desconegut"
+ # ivb (2001/11/06)
+ # ivb  Cal mantenir-ho curt...
+-#: elf/cache.c:117
++#: elf/cache.c:126
+ #, c-format
+ msgid ", OS ABI: %s %d.%d.%d"
+ msgstr ", ABI del SO: %s %d.%d.%d"
+-#: elf/cache.c:134 elf/ldconfig.c:1305
++#: elf/cache.c:143 elf/ldconfig.c:1309
+ #, c-format
+ msgid "Can't open cache file %s\n"
+ msgstr "no s’ha pogut obrir el fitxer «%s» de memòria cau\n"
+-#: elf/cache.c:148
++#: elf/cache.c:157
+ #, c-format
+ msgid "mmap of cache file failed.\n"
+ msgstr "ha fallat mmap() sobre el fitxer de memòria cau\n"
+-#: elf/cache.c:152 elf/cache.c:166
++#: elf/cache.c:161 elf/cache.c:175
+ #, c-format
+ msgid "File is not a cache file.\n"
+ msgstr "el fitxer no és un fitxer de memòria cau\n"
+ # No és un error.  ivb
+-#: elf/cache.c:199 elf/cache.c:209
++#: elf/cache.c:208 elf/cache.c:218
+ #, c-format
+ msgid "%d libs found in cache `%s'\n"
+ msgstr "S’han trobat %d biblioteques a la memòria cau «%s».\n"
+-#: elf/cache.c:403
++#: elf/cache.c:412
+ #, c-format
+ msgid "Can't create temporary cache file %s"
+ msgstr "no s’ha pogut crear el fitxer temporal de memòria cau «%s»"
+-#: elf/cache.c:411 elf/cache.c:421 elf/cache.c:425 elf/cache.c:430
++#: elf/cache.c:420 elf/cache.c:430 elf/cache.c:434 elf/cache.c:439
+ #, c-format
+ msgid "Writing of cache data failed"
+ msgstr "no s’han pogut escriure les dades de la memòria cau"
+-#: elf/cache.c:435
++#: elf/cache.c:444
+ #, c-format
+ msgid "Changing access rights of %s to %#o failed"
+ msgstr "no s’ha pogut canviar els drets d’accés de «%s» a %#o"
+-#: elf/cache.c:440
++#: elf/cache.c:449
+ #, c-format
+ msgid "Renaming of %s to %s failed"
+ msgstr "no s’ha pogut reanomenar «%s» a «%s»"
+-#: elf/dl-close.c:387 elf/dl-open.c:397
++#: elf/dl-close.c:378 elf/dl-open.c:474
+ msgid "cannot create scope list"
+ msgstr "no s’ha pogut crear la llista d’àmbits"
+-#: elf/dl-close.c:767
++#: elf/dl-close.c:771
+ msgid "shared object not open"
+ msgstr "l’objecte compartit no és obert"
+ # ivb (2001/11/05)
+ # ivb  DST = Dynamic String Token (component cadena dinàmica)
+-#: elf/dl-deps.c:114
++#: elf/dl-deps.c:112
+ msgid "DST not allowed in SUID/SGID programs"
+ msgstr "no es permeten components cadena dinàmica (DST) en programes SUID/SGID"
+-#: elf/dl-deps.c:127
++#: elf/dl-deps.c:125
+ msgid "empty dynamic string token substitution"
+ msgstr "la substitució del component cadena dinàmica és buida"
+ # ivb (2002/10/21)
+ # ivb  Es refereix a _objectes_ auxiliars, segons el codi.
+-#: elf/dl-deps.c:133
++#: elf/dl-deps.c:131
+ #, c-format
+ msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+ msgstr "no s’ha pogut carregar l’objecte auxiliar «%s» perquè la substitució del component cadena dinàmica és buida\n"
+-#: elf/dl-deps.c:474
++#: elf/dl-deps.c:483
+ msgid "cannot allocate dependency list"
+ msgstr "no s’ha pogut reservar la llista de dependències"
+-#: elf/dl-deps.c:514 elf/dl-deps.c:574
++#: elf/dl-deps.c:520 elf/dl-deps.c:580
+ msgid "cannot allocate symbol search list"
+ msgstr "no s’ha pogut reservar la llista de cerca de símbols"
+ # ivb (2002/10/21)
+ # ivb  LD_TRACE_PRELINKING és una variable d'entorn, no és part del filtre.
+-#: elf/dl-deps.c:554
++#: elf/dl-deps.c:560
+ msgid "Filters not supported with LD_TRACE_PRELINKING"
+ msgstr "LD_TRACE_PRELINKING no permet l’ús de filtres"
+-#: elf/dl-error.c:77
++#: elf/dl-error.c:76
+ msgid "DYNAMIC LINKER BUG!!!"
+ msgstr "ERROR A L’ENLLAÇADOR DINÀMIC!!!"
+-#: elf/dl-error.c:124
++#: elf/dl-error.c:123
+ msgid "error while loading shared libraries"
+ msgstr "error en carregar les biblioteques dinàmiques"
+-#: elf/dl-fptr.c:88
++#: elf/dl-fptr.c:87 ports/sysdeps/hppa/dl-fptr.c:93
+ msgid "cannot map pages for fdesc table"
+ msgstr "no s’han pogut mapar pàgines per a la taula «fdesc»"
+-#: elf/dl-fptr.c:192
++#: elf/dl-fptr.c:191 ports/sysdeps/hppa/dl-fptr.c:206
+ msgid "cannot map pages for fptr table"
+ msgstr "no s’han pogut mapar pàgines per a la taula «fptr»"
+-#: elf/dl-fptr.c:221
++#: elf/dl-fptr.c:220 ports/sysdeps/hppa/dl-fptr.c:235
+ msgid "internal error: symidx out of range of fptr table"
+ msgstr "error intern: «symidx» és fora de rang respecte la taula «fptr»"
++#: elf/dl-hwcaps.c:173 elf/dl-hwcaps.c:185
++msgid "cannot create capability list"
++msgstr "no s’ha pogut crear la llista de capacitats"
++
+ #: elf/dl-load.c:471
+ msgid "cannot allocate name record"
+ msgstr "no s’ha pogut reservar el registre de nom"
+@@ -560,181 +572,181 @@
+ msgid "cannot create search path array"
+ msgstr "no s’ha pogut crear el vector de camins de cerca"
+-#: elf/dl-load.c:931
++#: elf/dl-load.c:934
+ msgid "cannot stat shared object"
+ msgstr "ha fallat stat() sobre l’objecte compartit"
+ # ivb (2001/10/28)
+ # ivb  Es refereix a /dev/zero .
+-#: elf/dl-load.c:1009
++#: elf/dl-load.c:1012
+ msgid "cannot open zero fill device"
+ msgstr "no s’ha pogut obrir el dispositiu de zeros"
+-#: elf/dl-load.c:1055 elf/dl-load.c:2313
++#: elf/dl-load.c:1059 elf/dl-load.c:2339
+ msgid "cannot create shared object descriptor"
+ msgstr "no s’ha pogut crear el descriptor d’objecte compartit"
+-#: elf/dl-load.c:1074 elf/dl-load.c:1730 elf/dl-load.c:1833
++#: elf/dl-load.c:1078 elf/dl-load.c:1751 elf/dl-load.c:1854
+ msgid "cannot read file data"
+ msgstr "no s’han pogut llegir les dades del fitxer"
+-#: elf/dl-load.c:1120
++#: elf/dl-load.c:1124
+ msgid "ELF load command alignment not page-aligned"
+ msgstr "l’alineament de l’ordre ELF de càrrega no està alineada amb la pàgina"
+-#: elf/dl-load.c:1127
++#: elf/dl-load.c:1131
+ msgid "ELF load command address/offset not properly aligned"
+ msgstr "l’adreça o desplaçament de l’ordre ELF de càrrega no està correctament alineada"
+-#: elf/dl-load.c:1210
++#: elf/dl-load.c:1216
+ msgid "cannot allocate TLS data structures for initial thread"
+ msgstr "no s’han pogut reservar les estructures de dades TLS per al fil inicial"
+-#: elf/dl-load.c:1233
++#: elf/dl-load.c:1239
+ msgid "cannot handle TLS data"
+ msgstr "no es pot tractar amb dades TLS"
+-#: elf/dl-load.c:1252
++#: elf/dl-load.c:1258
+ msgid "object file has no loadable segments"
+ msgstr "el fitxer objecte no té segments carregables"
+-#: elf/dl-load.c:1288
++#: elf/dl-load.c:1294
+ msgid "failed to map segment from shared object"
+ msgstr "no s’ha pogut mapar un segment de l’objecte compartit"
+-#: elf/dl-load.c:1314
++#: elf/dl-load.c:1320
+ msgid "cannot dynamically load executable"
+ msgstr "no s’ha pogut carregar dinàmicament l’executable"
+-#: elf/dl-load.c:1376
++#: elf/dl-load.c:1383
+ msgid "cannot change memory protections"
+ msgstr "no s’han pogut canviar les proteccions de memòria"
+-#: elf/dl-load.c:1395
++#: elf/dl-load.c:1402
+ msgid "cannot map zero-fill pages"
+ msgstr "no s’han pogut mapar les pàgines plenes de zeros"
+-#: elf/dl-load.c:1409
++#: elf/dl-load.c:1416
+ msgid "object file has no dynamic section"
+ msgstr "el fitxer objecte no té secció dinàmica"
+-#: elf/dl-load.c:1432
++#: elf/dl-load.c:1439
+ msgid "shared object cannot be dlopen()ed"
+ msgstr "ha fallat dlopen() sobre l’objecte compartit"
+-#: elf/dl-load.c:1445
++#: elf/dl-load.c:1452
+ msgid "cannot allocate memory for program header"
+ msgstr "no s’ha pogut reservar memòria per a la capçalera del programa"
+-#: elf/dl-load.c:1462 elf/dl-open.c:180
++#: elf/dl-load.c:1469 elf/dl-open.c:180
+ msgid "invalid caller"
+ msgstr "la biblioteca que ha fet la crida no és vàlida"
+-#: elf/dl-load.c:1501
++#: elf/dl-load.c:1508
+ msgid "cannot enable executable stack as shared object requires"
+ msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit"
+-#: elf/dl-load.c:1514
++#: elf/dl-load.c:1521
+ msgid "cannot close file descriptor"
+ msgstr "no s’ha pogut tancar un descriptor de fitxer"
+-#: elf/dl-load.c:1730
++#: elf/dl-load.c:1751
+ msgid "file too short"
+ msgstr "el fitxer és massa curt"
+-#: elf/dl-load.c:1766
++#: elf/dl-load.c:1787
+ msgid "invalid ELF header"
+ msgstr "la capçalera ELF no és vàlida"
+-#: elf/dl-load.c:1778
++#: elf/dl-load.c:1799
+ msgid "ELF file data encoding not big-endian"
+ msgstr "la codificació de les dades del fitxer ELF no és big‐endian"
+-#: elf/dl-load.c:1780
++#: elf/dl-load.c:1801
+ msgid "ELF file data encoding not little-endian"
+ msgstr "la codificació de les dades del fitxer ELF no és little‐endian"
+-#: elf/dl-load.c:1784
++#: elf/dl-load.c:1805
+ msgid "ELF file version ident does not match current one"
+ msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual"
+ # ivb (2001/11(06)
+ # ivb  ABI = Application Binary Interface (interfície binària d'aplicació)
+-#: elf/dl-load.c:1788
++#: elf/dl-load.c:1809
+ msgid "ELF file OS ABI invalid"
+ msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida"
+-#: elf/dl-load.c:1791
++#: elf/dl-load.c:1812
+ msgid "ELF file ABI version invalid"
+ msgstr "la versió de l’ABI del fitxer ELF no és vàlida"
+-#: elf/dl-load.c:1794
++#: elf/dl-load.c:1815
+ msgid "nonzero padding in e_ident"
+ msgstr "el replè d’«e_ident» no conté només zeros"
+-#: elf/dl-load.c:1797
++#: elf/dl-load.c:1818
+ msgid "internal error"
+ msgstr "error intern"
+-#: elf/dl-load.c:1804
++#: elf/dl-load.c:1825
+ msgid "ELF file version does not match current one"
+ msgstr "la versió del fitxer ELF no concorda amb l’actual"
+-#: elf/dl-load.c:1812
++#: elf/dl-load.c:1833
+ msgid "only ET_DYN and ET_EXEC can be loaded"
+ msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC"
+ # ivb (2001/11/01)
+ # ivb  La traducció completa de «phentsize» vindria a ser: mida d'entrada
+ # ivb  de taula de la capçalera de programa.
+-#: elf/dl-load.c:1818
++#: elf/dl-load.c:1839
+ msgid "ELF file's phentsize not the expected size"
+ msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat"
+-#: elf/dl-load.c:2332
++#: elf/dl-load.c:2358
+ msgid "wrong ELF class: ELFCLASS64"
+ msgstr "la classe ELF no és vàlida: ELFCLASS64"
+-#: elf/dl-load.c:2333
++#: elf/dl-load.c:2359
+ msgid "wrong ELF class: ELFCLASS32"
+ msgstr "la classe ELF no és vàlida: ELFCLASS32"
+-#: elf/dl-load.c:2336
++#: elf/dl-load.c:2362
+ msgid "cannot open shared object file"
+ msgstr "no s’ha pogut obrir el fitxer objecte compartit"
+-#: elf/dl-lookup.c:757
++#: elf/dl-lookup.c:757 ports/sysdeps/mips/dl-lookup.c:774
+ msgid "relocation error"
+ msgstr "error de reubicació"
+-#: elf/dl-lookup.c:785
++#: elf/dl-lookup.c:786 ports/sysdeps/mips/dl-lookup.c:803
+ msgid "symbol lookup error"
+ msgstr "error en cercar el símbol"
+-#: elf/dl-open.c:115
++#: elf/dl-open.c:110
+ msgid "cannot extend global scope"
+ msgstr "no s’ha pogut estendre l’àmbit global"
+ # ivb (2002/10/29)
+ # ivb  TLS = Thread Local Storage
+-#: elf/dl-open.c:440
++#: elf/dl-open.c:524
+ msgid "TLS generation counter wrapped!  Please report this."
+ msgstr "El comptador de generació de TLS s’ha esgotat!  Per favor, informeu d’açò."
+ # Cas general.  ivb
+-#: elf/dl-open.c:462
++#: elf/dl-open.c:546
+ msgid "cannot load any more object with static TLS"
+ msgstr "no es poden carregar més objectes amb el TLS estàtic"
+-#: elf/dl-open.c:511
++#: elf/dl-open.c:599
+ msgid "invalid mode for dlopen()"
+ msgstr "el mode de dlopen() no és vàlid"
+-#: elf/dl-open.c:528
++#: elf/dl-open.c:616
+ msgid "no more namespaces available for dlmopen()"
+ msgstr "no resten espais de noms disponibles per a dlmopen()"
+-#: elf/dl-open.c:547
++#: elf/dl-open.c:634
+ msgid "invalid target namespace in dlmopen()"
+ msgstr "l’espai de noms destí de dlmopen() no és vàlid"
+@@ -742,280 +754,276 @@
+ msgid "cannot allocate memory in static TLS block"
+ msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic"
+-#: elf/dl-reloc.c:212
++#: elf/dl-reloc.c:213
+ msgid "cannot make segment writable for relocation"
+ msgstr "no s’ha pogut fer escrivible el segment per a reubicar‐lo"
+ # ivb (2002/10/21)
+ # ivb  PLT = Procedure Linkage Table, Taula d'Enllaçat de Procediments
+ # ivb  PLTREL = tipus de reubicació usada per la PLT
+-#: elf/dl-reloc.c:275
++#: elf/dl-reloc.c:276
+ #, c-format
+ msgid "%s: no PLTREL found in object %s\n"
+ msgstr "%s: no s’ha trobat el PLTREL de l’objecte «%s»\n"
+-#: elf/dl-reloc.c:286
++#: elf/dl-reloc.c:287
+ #, c-format
+ msgid "%s: out of memory to store relocation results for %s\n"
+ msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n"
+-#: elf/dl-reloc.c:302
++#: elf/dl-reloc.c:303
+ msgid "cannot restore segment prot after reloc"
+ msgstr "no s’ha pogut restaurar la protecció del segment després de reubicar‐lo"
+-#: elf/dl-reloc.c:331
++#: elf/dl-reloc.c:332
+ msgid "cannot apply additional memory protection after relocation"
+ msgstr "no s’ha pogut protegir la memòria després de reubicar"
+-#: elf/dl-sym.c:162
++#: elf/dl-sym.c:163
+ msgid "RTLD_NEXT used in code not dynamically loaded"
+ msgstr "s’ha emprat RTLD_NEXT en un codi no carregat dinàmicament"
+-#: elf/dl-sysdep.c:488 elf/dl-sysdep.c:500
+-msgid "cannot create capability list"
+-msgstr "no s’ha pogut crear la llista de capacitats"
+-
+-#: elf/dl-tls.c:861
++#: elf/dl-tls.c:875
+ msgid "cannot create TLS data structures"
+ msgstr "no s’han pogut crear les estructures de dades TLS"
+-#: elf/dl-version.c:172
++#: elf/dl-version.c:166
+ msgid "version lookup error"
+ msgstr "error en cercar la versió"
+-#: elf/dl-version.c:303
++#: elf/dl-version.c:297
+ msgid "cannot allocate version reference table"
+ msgstr "no s’ha pogut reservar la taula de referències de versions"
+ # Més ajudes.  ivb
+-#: elf/ldconfig.c:141
++#: elf/ldconfig.c:140
+ msgid "Print cache"
+ msgstr "Mostra la memòria cau."
+-#: elf/ldconfig.c:142
++#: elf/ldconfig.c:141
+ msgid "Generate verbose messages"
+ msgstr "Genera missatges detallats."
+-#: elf/ldconfig.c:143
++#: elf/ldconfig.c:142
+ msgid "Don't build cache"
+ msgstr "No construeix la memòria cau."
+-#: elf/ldconfig.c:144
++#: elf/ldconfig.c:143
+ msgid "Don't generate links"
+ msgstr "No genera enllaços."
+-#: elf/ldconfig.c:145
++#: elf/ldconfig.c:144
+ msgid "Change to and use ROOT as root directory"
+ msgstr "Canvia a i empra ARREL com a directori arrel."
+-#: elf/ldconfig.c:145
++#: elf/ldconfig.c:144
+ msgid "ROOT"
+ msgstr "ARREL"
+-#: elf/ldconfig.c:146
++#: elf/ldconfig.c:145
+ msgid "CACHE"
+ msgstr "CACHE"
+-#: elf/ldconfig.c:146
++#: elf/ldconfig.c:145
+ msgid "Use CACHE as cache file"
+ msgstr "Empra CACHE com a fitxer de memòria cau."
+-#: elf/ldconfig.c:147
++#: elf/ldconfig.c:146
+ msgid "CONF"
+ msgstr "CONF"
+-#: elf/ldconfig.c:147
++#: elf/ldconfig.c:146
+ msgid "Use CONF as configuration file"
+ msgstr "Empra CONF com a fitxer de configuració."
+-#: elf/ldconfig.c:148
++#: elf/ldconfig.c:147
+ msgid "Only process directories specified on the command line.  Don't build cache."
+ msgstr "Només processa els directoris especificats a la línia d’ordres.  No construeix la memòria cau."
+-#: elf/ldconfig.c:149
++#: elf/ldconfig.c:148
+ msgid "Manually link individual libraries."
+ msgstr "Per a enllaçar les biblioteques manualment."
+-#: elf/ldconfig.c:150
++#: elf/ldconfig.c:149
+ msgid "FORMAT"
+ msgstr "FORMAT"
+-#: elf/ldconfig.c:150
++#: elf/ldconfig.c:149
+ msgid "Format to use: new, old or compat (default)"
+ msgstr "FORMAT a emprar: «new» (nou), «old» (antic) o «compat» (compatible, per defecte)."
+-#: elf/ldconfig.c:151
++#: elf/ldconfig.c:150
+ msgid "Ignore auxiliary cache file"
+ msgstr "No té en compte el fitxer de memòria cau auxilar."
+-#: elf/ldconfig.c:159
++#: elf/ldconfig.c:158
+ msgid "Configure Dynamic Linker Run Time Bindings."
+ msgstr "Configura els vincles en temps d’execució de l’enllaçador dinàmic."
+-#: elf/ldconfig.c:339
++#: elf/ldconfig.c:341
+ #, c-format
+ msgid "Path `%s' given more than once"
+ msgstr "s’ha indicat el camí «%s» més d’una volta"
+-#: elf/ldconfig.c:379
++#: elf/ldconfig.c:381
+ #, c-format
+ msgid "%s is not a known library type"
+ msgstr "«%s» no és un tipus conegut de biblioteca"
+-#: elf/ldconfig.c:407
++#: elf/ldconfig.c:409
+ #, c-format
+ msgid "Can't stat %s"
+ msgstr "ha fallat stat() sobre «%s»"
+-#: elf/ldconfig.c:481
++#: elf/ldconfig.c:483
+ #, c-format
+ msgid "Can't stat %s\n"
+ msgstr "ha fallat stat() sobre «%s»\n"
+-#: elf/ldconfig.c:491
++#: elf/ldconfig.c:493
+ #, c-format
+ msgid "%s is not a symbolic link\n"
+ msgstr "«%s» no és un enllaç simbòlic\n"
+-#: elf/ldconfig.c:510
++#: elf/ldconfig.c:512
+ #, c-format
+ msgid "Can't unlink %s"
+ msgstr "no s’ha pogut desenllaçar «%s»"
+-#: elf/ldconfig.c:516
++#: elf/ldconfig.c:518
+ #, c-format
+ msgid "Can't link %s to %s"
+ msgstr "no s’ha pogut crear un enllaç des de «%s» cap a «%s»"
+ # ivb (2001/10/28)
+ # ivb  Es refereix a un enllaç -> masculí.
+-#: elf/ldconfig.c:522
++#: elf/ldconfig.c:524
+ msgid " (changed)\n"
+ msgstr " (canviat)\n"
+ # ivb (2001/10/28)
+ # ivb  Es refereix a fer o no l'enllaç, no importa el gènere.
+-#: elf/ldconfig.c:524
++#: elf/ldconfig.c:526
+ msgid " (SKIPPED)\n"
+ msgstr " (SALTAT)\n"
+-#: elf/ldconfig.c:579
++#: elf/ldconfig.c:581
+ #, c-format
+ msgid "Can't find %s"
+ msgstr "no s’ha pogut trobar «%s»"
+-#: elf/ldconfig.c:595 elf/ldconfig.c:768 elf/ldconfig.c:827 elf/ldconfig.c:861
++#: elf/ldconfig.c:597 elf/ldconfig.c:770 elf/ldconfig.c:829 elf/ldconfig.c:863
+ #, c-format
+ msgid "Cannot lstat %s"
+ msgstr "ha fallat lstat() sobre «%s»"
+-#: elf/ldconfig.c:602
++#: elf/ldconfig.c:604
+ #, c-format
+ msgid "Ignored file %s since it is not a regular file."
+ msgstr "es descarta el fitxer «%s» que no és un fitxer ordinari"
+-#: elf/ldconfig.c:611
++#: elf/ldconfig.c:613
+ #, c-format
+ msgid "No link created since soname could not be found for %s"
+ msgstr "no s’ha creat l’enllaç perquè no s’ha trobat el nom d’objecte compartit de «%s»"
+-#: elf/ldconfig.c:694
++#: elf/ldconfig.c:696
+ #, c-format
+ msgid "Can't open directory %s"
+ msgstr "no s’ha pogut obrir el directori «%s»"
+-#: elf/ldconfig.c:786 elf/ldconfig.c:848 elf/readlib.c:91
++#: elf/ldconfig.c:788 elf/ldconfig.c:850 elf/readlib.c:90
+ #, c-format
+ msgid "Input file %s not found.\n"
+ msgstr "no s’ha trobat el fitxer d’entrada «%s»\n"
+-#: elf/ldconfig.c:793
++#: elf/ldconfig.c:795
+ #, c-format
+ msgid "Cannot stat %s"
+ msgstr "ha fallat stat() sobre «%s»"
+-#: elf/ldconfig.c:922
++#: elf/ldconfig.c:924
+ #, c-format
+ msgid "libc5 library %s in wrong directory"
+ msgstr "la biblioteca «%s» per a libc5 es troba en un directori incorrecte"
+-#: elf/ldconfig.c:925
++#: elf/ldconfig.c:927
+ #, c-format
+ msgid "libc6 library %s in wrong directory"
+ msgstr "la biblioteca «%s» per a libc6 es troba en un directori incorrecte"
+-#: elf/ldconfig.c:928
++#: elf/ldconfig.c:930
+ #, c-format
+ msgid "libc4 library %s in wrong directory"
+ msgstr "la biblioteca «%s» per a libc4 es troba en un directori incorrecte"
+-#: elf/ldconfig.c:956
++#: elf/ldconfig.c:958
+ #, c-format
+ msgid "libraries %s and %s in directory %s have same soname but different type."
+ msgstr "les biblioteques «%s» i «%s» del directori «%s» tenen el mateix nom d’objecte compartit però diferent tipus."
+-#: elf/ldconfig.c:1065
++#: elf/ldconfig.c:1067
+ #, c-format
+-msgid "Can't open configuration file %s"
+-msgstr "no s’ha pogut obrir el fitxer «%s» de configuració"
++msgid "Warning: ignoring configuration file that cannot be opened: %s"
++msgstr "avís: es descarta el fitxer de configuració que no s’ha pogut obrir: %s"
+-#: elf/ldconfig.c:1129
++#: elf/ldconfig.c:1133
+ #, c-format
+ msgid "%s:%u: bad syntax in hwcap line"
+ msgstr "%s:%u: la sintaxi de la línia «hwcap» no és vàlida"
+-#: elf/ldconfig.c:1135
++#: elf/ldconfig.c:1139
+ #, c-format
+ msgid "%s:%u: hwcap index %lu above maximum %u"
+ msgstr "%s:%u: la «hwcap» amb índex %lu està sobre el màxim %u"
+ # La substitució final és per un nom.  ivb
+-#: elf/ldconfig.c:1142 elf/ldconfig.c:1150
++#: elf/ldconfig.c:1146 elf/ldconfig.c:1154
+ #, c-format
+ msgid "%s:%u: hwcap index %lu already defined as %s"
+ msgstr "%s:%u: la «hwcap» amb índex %lu ja ha estat definida com a «%s»"
+-#: elf/ldconfig.c:1153
++#: elf/ldconfig.c:1157
+ #, c-format
+ msgid "%s:%u: duplicate hwcap %lu %s"
+ msgstr "%s:%u: la «hwcap» %lu amb nom «%s» està duplicada"
+-#: elf/ldconfig.c:1175
++#: elf/ldconfig.c:1179
+ #, c-format
+ msgid "need absolute file name for configuration file when using -r"
+ msgstr "cal indicar el camí absolut del fitxer de configuració en emprar «-r»"
+-#: elf/ldconfig.c:1182 locale/programs/xmalloc.c:70 malloc/obstack.c:434
+-#: malloc/obstack.c:436 posix/getconf.c:1077 posix/getconf.c:1297
++#: elf/ldconfig.c:1186 locale/programs/xmalloc.c:65 malloc/obstack.c:433
++#: malloc/obstack.c:435 posix/getconf.c:1076 posix/getconf.c:1296
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "la memòria s’ha exhaurit"
+-#: elf/ldconfig.c:1214
++#: elf/ldconfig.c:1218
+ #, c-format
+ msgid "%s:%u: cannot read directory %s"
+ msgstr "%s:%u: no s’ha pogut llegir el directori «%s»"
+-#: elf/ldconfig.c:1258
++#: elf/ldconfig.c:1262
+ #, c-format
+ msgid "relative path `%s' used to build cache"
+ msgstr "s’ha indicat el camí relatiu «%s» per a construir la memòria cau"
+-#: elf/ldconfig.c:1284
++#: elf/ldconfig.c:1288
+ #, c-format
+ msgid "Can't chdir to /"
+ msgstr "no s’ha pogut canviar al directori arrel"
+-#: elf/ldconfig.c:1325
++#: elf/ldconfig.c:1329
+ #, c-format
+ msgid "Can't open cache file directory %s\n"
+ msgstr "no s’ha pogut obrir el directori «%s» de fitxers de memòria cau\n"
+-#: elf/ldd.bash.in:43
++#: elf/ldd.bash.in:42
+ msgid "Written by %s and %s.\n"
+ msgstr "Escrit per %s i %s.\n"
+-#: elf/ldd.bash.in:48
++#: elf/ldd.bash.in:47
+ msgid ""
+ "Usage: ldd [OPTION]... FILE...\n"
+ "      --help              print this help and exit\n"
+@@ -1035,110 +1043,203 @@
+ "      --version        Mostra informació sobre la versió i ix.\n"
+ "\n"
+-#: elf/ldd.bash.in:82
++#: elf/ldd.bash.in:80
+ msgid "ldd: option \\`$1' is ambiguous"
+ msgstr "ldd: l’opció «$1» és ambígua"
+-#: elf/ldd.bash.in:89
++#: elf/ldd.bash.in:87
+ msgid "unrecognized option"
+ msgstr "l’opció no és reconeguda"
+-#: elf/ldd.bash.in:90 elf/ldd.bash.in:128
++#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+ msgid "Try \\`ldd --help' for more information."
+ msgstr "Proveu «ldd --help» per a obtenir més informació."
+-#: elf/ldd.bash.in:127
++#: elf/ldd.bash.in:125
+ msgid "missing file arguments"
+ msgstr "manquen arguments fitxer"
+ #. 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:150 sysdeps/gnu/errlist.c:36
++#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36
+ msgid "No such file or directory"
+ msgstr "El fitxer o directori no existeix"
+ # ivb (2001/10/31)
+ # ivb  Cal tenir en compte que «ordinary» a l'anglés és cosa pler diferent ;)
+-#: elf/ldd.bash.in:153 inet/rcmd.c:488
++#: elf/ldd.bash.in:151 inet/rcmd.c:488
+ msgid "not regular file"
+ msgstr "no és un fitxer ordinari"
+ # Darrere va el nom de fitxer, no puc canviar les cometes. :(  ivb
+-#: elf/ldd.bash.in:156
++#: elf/ldd.bash.in:154
+ msgid "warning: you do not have execution permission for"
+ msgstr "avís: no teniu permís d’execució per a"
+-#: elf/ldd.bash.in:185
++#: elf/ldd.bash.in:183
+ msgid "\tnot a dynamic executable"
+ msgstr "\tno és un executable dinàmic"
+ # Davant va el nom de fitxer, no puc canviar les cometes. :(  ivb
+-#: elf/ldd.bash.in:193
++#: elf/ldd.bash.in:191
+ msgid "exited with unknown exit code"
+ msgstr "ha finalitzat amb un codi d’eixida desconegut"
+ # Darrere va el nom de fitxer, no puc canviar les cometes. :(  ivb
+-#: elf/ldd.bash.in:198
++#: elf/ldd.bash.in:196
+ msgid "error: you do not have read permission for"
+ msgstr "error: no teniu permís de lectura per a"
+-#: elf/readelflib.c:35
++#: elf/pldd-xx.c:105
+ #, c-format
++msgid "cannot find program header of process"
++msgstr "no s’ha trobat la capçalera de programa del procés"
++
++#: elf/pldd-xx.c:110
++#, c-format
++msgid "cannot read program header"
++msgstr "no s’ha pogut llegir la capçalera de programa"
++
++#: elf/pldd-xx.c:135
++#, c-format
++msgid "cannot read dynamic section"
++msgstr "no s’ha pogut llegir la secció dinàmica"
++
++#: elf/pldd-xx.c:147
++#, c-format
++msgid "cannot read r_debug"
++msgstr "no s’ha pogut llegir «r_debug»"
++
++#: elf/pldd-xx.c:167
++#, c-format
++msgid "cannot read program interpreter"
++msgstr "no s’ha pogut llegir l’intèrpret del programa"
++
++#: elf/pldd-xx.c:196
++#, c-format
++msgid "cannot read link map"
++msgstr "no s’ha pogut llegir el mapa d’enllaçat"
++
++#: elf/pldd-xx.c:207
++#, c-format
++msgid "cannot read object name"
++msgstr "no s’ha pogut llegir el nom de l’objecte"
++
++# Descripció del programa.  ivb
++#: elf/pldd.c:65
++msgid "List dynamic shared objects loaded into process."
++msgstr "Llista els objectes compatits dinàmics carregats en un procés."
++
++# Crec que el terme és suficient conegut.  ivb
++#: elf/pldd.c:69
++msgid "PID"
++msgstr "PID"
++
++#: elf/pldd.c:100
++#, c-format
++msgid "Exactly one parameter with process ID required.\n"
++msgstr "cal exactament un paràmetre amb l’identificador de procés\n"
++
++#: elf/pldd.c:112
++#, c-format
++msgid "invalid process ID '%s'"
++msgstr "l’identificador de procés «%s» no és vàlid"
++
++# No usa quote().  ivb
++#: elf/pldd.c:120
++#, c-format
++msgid "cannot open %s"
++msgstr "no s’ha pogut obrir «%s»"
++
++# No usa quote.  ivb
++#: elf/pldd.c:145
++#, c-format
++msgid "cannot open %s/task"
++msgstr "no s’ha pogut obrir «%s/task»"
++
++# No usa quote().  ivb
++#: elf/pldd.c:148
++#, c-format
++msgid "cannot prepare reading %s/task"
++msgstr "no s’ha pogut preparar la lectura de «%s/task»"
++
++#: elf/pldd.c:161
++#, c-format
++msgid "invalid thread ID '%s'"
++msgstr "l’identificador de fil «%s» no és vàlid"
++
++#: elf/pldd.c:172
++#, c-format
++msgid "cannot attach to process %lu"
++msgstr "no s’ha pogut associar al procés %lu"
++
++#: elf/pldd.c:264
++#, c-format
++msgid "cannot get information about process %lu"
++msgstr "no s’ha pogut obtenir informació sobre el procés %lu"
++
++#: elf/pldd.c:277
++#, c-format
++msgid "process %lu is no ELF program"
++msgstr "el procés %lu no pertany a un programa ELF"
++
++#: elf/readelflib.c:34
++#, c-format
+ msgid "file %s is truncated\n"
+ msgstr "el fitxer «%s» està truncat\n"
+-#: elf/readelflib.c:67
++#: elf/readelflib.c:66
+ #, c-format
+ msgid "%s is a 32 bit ELF file.\n"
+ msgstr "«%s» és un fitxer ELF de 32 bits\n"
+-#: elf/readelflib.c:69
++#: elf/readelflib.c:68
+ #, c-format
+ msgid "%s is a 64 bit ELF file.\n"
+ msgstr "«%s» és un fitxer ELF de 64 bits\n"
+-#: elf/readelflib.c:71
++#: elf/readelflib.c:70
+ #, c-format
+ msgid "Unknown ELFCLASS in file %s.\n"
+ msgstr "la classe ELF del fitxer «%s» no és coneguda\n"
+-#: elf/readelflib.c:78
++#: elf/readelflib.c:77
+ #, c-format
+ msgid "%s is not a shared object file (Type: %d).\n"
+ msgstr "«%s» no és un fitxer objecte compartit (tipus: %d)\n"
+-#: elf/readelflib.c:109
++#: elf/readelflib.c:108
+ #, c-format
+ msgid "more than one dynamic segment\n"
+ msgstr "hi ha més d’un segment dinàmic\n"
+-#: elf/readlib.c:97
++#: elf/readlib.c:96
+ #, c-format
+ msgid "Cannot fstat file %s.\n"
+ msgstr "ha fallat fstat() sobre el fitxer «%s»\n"
+-#: elf/readlib.c:108
++#: elf/readlib.c:107
+ #, c-format
+ msgid "File %s is empty, not checked."
+ msgstr "el fitxer «%s» és buit, no es comprova"
+-#: elf/readlib.c:114
++#: elf/readlib.c:113
+ #, c-format
+ msgid "File %s is too small, not checked."
+ msgstr "el fitxer «%s» és massa menut, no es comprova"
+-#: elf/readlib.c:124
++#: elf/readlib.c:123
+ #, c-format
+ msgid "Cannot mmap file %s.\n"
+ msgstr "ha fallat mmap() sobre el fitxer «%s»\n"
+-#: elf/readlib.c:162
++#: elf/readlib.c:161
+ #, c-format
+ msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
+ msgstr "«%s» no és un fitxer ELF: els octets màgics del començament no són correctes\n"
+-#: elf/sln.c:85
++#: elf/sln.c:84
+ #, c-format
+ msgid ""
+ "Usage: sln src dest|file\n"
+@@ -1147,50 +1248,51 @@
+ "Forma d’ús: sln ORIGEN DESTÍ|FITXER\n"
+ "\n"
+-#: elf/sln.c:110
++#: elf/sln.c:109
+ #, c-format
+ msgid "%s: file open error: %m\n"
+ msgstr "%s: error en obrir el fitxer: %m\n"
+-#: elf/sln.c:147
++#: elf/sln.c:146
+ #, c-format
+ msgid "No target in line %d\n"
+ msgstr "manca un destí a la línia %d\n"
+-#: elf/sln.c:179
++#: elf/sln.c:178
+ #, c-format
+ msgid "%s: destination must not be a directory\n"
+ msgstr "%s: el destí no ha de ser un directori\n"
+-#: elf/sln.c:185
++#: elf/sln.c:184
+ #, c-format
+ msgid "%s: failed to remove the old destination\n"
+ msgstr "%s: no s’ha pogut esborrar el destí antic\n"
+-#: elf/sln.c:193
++#: elf/sln.c:192
+ #, c-format
+ msgid "%s: invalid destination: %s\n"
+ msgstr "%s: el destí no és vàlid: %s\n"
+-#: elf/sln.c:208 elf/sln.c:217
++#: elf/sln.c:207 elf/sln.c:216
+ #, c-format
+ msgid "Invalid link from \"%s\" to \"%s\": %s\n"
+ msgstr "l’enllaç des de «%s» cap a «%s» no és vàlid: %s\n"
+-#: elf/sotruss.ksh:33
++#: elf/sotruss.ksh:32
+ #, sh-format
+ msgid ""
+ "Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]\n"
+-"  -F, --from FROMLIST     trace calls from objects on FORMLIST\n"
+-"  -T, --to TOLIST         trace calls to objects on TOLIST\n"
++"  -F, --from FROMLIST     Trace calls from objects on FROMLIST\n"
++"  -T, --to TOLIST         Trace calls to objects on TOLIST\n"
+ "\n"
+-"  -e, --exit              also show exits from the function calls\n"
+-"  -f, --follow            trace child processes\n"
+-"  -o, --output FILENAME   write output to FILENAME (or FILENAME.$PID in case\n"
++"  -e, --exit              Also show exits from the function calls\n"
++"  -f, --follow            Trace child processes\n"
++"  -o, --output FILENAME   Write output to FILENAME (or FILENAME.$PID in case\n"
+ "\t\t\t  -f is also used) instead of standard error\n"
+ "\n"
+-"      --help              print this help and exit\n"
+-"      --version           print version information and exit"
++"  -?, --help              Give this help list\n"
++"      --usage             Give a short usage message\n"
++"      --version           Print program version"
+ msgstr ""
+ "Forma d’ús: sotruss [OPCIÓ…] [--] EXECUTABLE [OPCIÓ_EXECUTABLE…]\n"
+ "\n"
+@@ -1202,288 +1304,289 @@
+ "  -o, --output FITXER    Escriu l’eixida al FITXER (o a FITXER.$PID si s’empra\n"
+ "                       l’opció «-f») en lloc de l’eixida estàndard d’errors.\n"
+ "\n"
+-"      --help           Mostra aquesta ajuda i surt.\n"
++"  -?, --help           Mostra aquesta ajuda i surt.\n"
++"      --usage          Mostra un missatge breu amb la forma d’ús.\n"
+ "      --version        Mostra informació sobre la versió i surt."
+ #: elf/sotruss.ksh:46
+ msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n"
+ msgstr "Els arguments obligatoris o opcionals per a les opcions llargues també ho són\\nper a les opcions curtes corresponents.\\n"
+-#: elf/sotruss.ksh:56
++#: elf/sotruss.ksh:55
+ msgid "%s: option requires an argument -- '%s'\\n"
+ msgstr "%s: l’opció «%c» necessita un argument\\n"
+-#: elf/sotruss.ksh:57 elf/sotruss.ksh:68 elf/sotruss.ksh:134
+-msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
+-msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\\n"
+-
+-#: elf/sotruss.ksh:62
++#: elf/sotruss.ksh:61
+ msgid "%s: option is ambiguous; possibilities:"
+ msgstr "%s: l’opció és ambígua; possibilitats:"
+-#: elf/sotruss.ksh:80
++#: elf/sotruss.ksh:79
+ msgid "Written by %s.\\n"
+ msgstr "Escrit per %s.\\n"
+-#: elf/sotruss.ksh:87
++#: elf/sotruss.ksh:86
+ msgid ""
+ "Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n"
+-"\t    [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\\n"
++"\t    [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n"
++"\t    [--help] [--usage] [--version] [--]\n"
++"\t    EXECUTABLE [EXECUTABLE-OPTION...]\\n"
+ msgstr ""
+ "Forma d’ús: %s [-ef] [-F LLISTA_DE] [-o FITXER] [-T LLISTA_A]\n"
+ "                [--exit] [--follow]\n"
+-"                [--from LLISTA_DE] [--output FITXER] [--to LLISTA_A]\\n"
++"                [--from LLISTA_DE] [--output FITXER] [--to LLISTA_A]\n"
++"                [--help] [--usage] [--version] [--]\n"
++"                EXECUTABLE [OPCIÓ_EXECUTABLE…]\\n"
+-#: elf/sotruss.ksh:133
++#: elf/sotruss.ksh:134
+ msgid "%s: unrecognized option '%c%s'\\n"
+ msgstr "%s: l’opció «%c%s» no és reconeguda\\n"
+ # Més ajudes.  ivb
+-#: elf/sprof.c:77
++#: elf/sprof.c:76
+ msgid "Output selection:"
+ msgstr "Selecció de l’eixida:"
+-#: elf/sprof.c:79
++#: elf/sprof.c:78
+ msgid "print list of count paths and their number of use"
+ msgstr "Mostra una llista de camins de recompte i les voltes que han estat emprats."
+-#: elf/sprof.c:81
++#: elf/sprof.c:80
+ msgid "generate flat profile with counts and ticks"
+ msgstr "Genera un perfil pla amb recomptes i unitats de temps."
+-#: elf/sprof.c:82
++#: elf/sprof.c:81
+ msgid "generate call graph"
+ msgstr "Genera un gràfic de crides."
+-#: elf/sprof.c:89
++#: elf/sprof.c:88
+ msgid "Read and display shared object profiling data."
+ msgstr "Llig i mostra les dades de perfilat d’un objecte compartit."
+-#: elf/sprof.c:94
++#: elf/sprof.c:93
+ msgid "SHOBJ [PROFDATA]"
+ msgstr "OBJECTE_COMPARTIT [DADES_PERFILAT]"
+-#: elf/sprof.c:431
++#: elf/sprof.c:432
+ #, c-format
+ msgid "failed to load shared object `%s'"
+ msgstr "no s’ha pogut carregar l’objecte compartit «%s»"
+-#: elf/sprof.c:440
++#: elf/sprof.c:441
+ #, c-format
+ msgid "cannot create internal descriptors"
+ msgstr "no s’han pogut crear els descriptors interns"
+-#: elf/sprof.c:559
++#: elf/sprof.c:553
+ #, c-format
+ msgid "Reopening shared object `%s' failed"
+ msgstr "no s’ha pogut reobrir l’objecte compartit «%s»"
+-#: elf/sprof.c:566 elf/sprof.c:660
++#: elf/sprof.c:560 elf/sprof.c:655
+ #, c-format
+ msgid "reading of section headers failed"
+ msgstr "la lectura de les capçaleres de secció ha fallat"
+-#: elf/sprof.c:574 elf/sprof.c:668
++#: elf/sprof.c:568 elf/sprof.c:663
+ #, c-format
+ msgid "reading of section header string table failed"
+ msgstr "la lectura de la taula de cadenes de capçalera de secció ha fallat"
+-#: elf/sprof.c:600
++#: elf/sprof.c:594
+ #, c-format
+ msgid "*** Cannot read debuginfo file name: %m\n"
+ msgstr "*** No s’ha pogut llegir el nom del fitxer d’informació de depuració: %m\n"
+-#: elf/sprof.c:620
++#: elf/sprof.c:615
+ #, c-format
+ msgid "cannot determine file name"
+ msgstr "no s’ha pogut determinar un nom de fitxer"
+-#: elf/sprof.c:653
++#: elf/sprof.c:648
+ #, c-format
+ msgid "reading of ELF header failed"
+ msgstr "la lectura de la capçalera ELF ha fallat"
+-#: elf/sprof.c:689
++#: elf/sprof.c:684
+ #, c-format
+ msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
+ msgstr "*** El fitxer «%s» no conté símbols: no és possible l’anàlisi detallada\n"
+-#: elf/sprof.c:719
++#: elf/sprof.c:714
+ #, c-format
+ msgid "failed to load symbol data"
+ msgstr "no s’han pogut carregar les dades simbòliques"
+-#: elf/sprof.c:784
++#: elf/sprof.c:779
+ #, c-format
+ msgid "cannot load profiling data"
+ msgstr "no s’han pogut carregar les dades de perfilat"
+-#: elf/sprof.c:793
++#: elf/sprof.c:788
+ #, c-format
+ msgid "while stat'ing profiling data file"
+ msgstr "en cridar stat() sobre el fitxer de dades de perfilat"
+-#: elf/sprof.c:801
++#: elf/sprof.c:796
+ #, c-format
+ msgid "profiling data file `%s' does not match shared object `%s'"
+ msgstr "el fitxer «%s» de dades de perfilat no correspon a l’objecte compartit «%s»"
+-#: elf/sprof.c:812
++#: elf/sprof.c:807
+ #, c-format
+ msgid "failed to mmap the profiling data file"
+ msgstr "ha fallat mmap() sobre el fitxer de dades de perfilat"
+-#: elf/sprof.c:820
++#: elf/sprof.c:815
+ #, c-format
+ msgid "error while closing the profiling data file"
+ msgstr "error en tancar el fitxer de dades de perfilat"
+-#: elf/sprof.c:829 elf/sprof.c:927
++#: elf/sprof.c:824 elf/sprof.c:922
+ #, c-format
+ msgid "cannot create internal descriptor"
+ msgstr "no s’ha pogut crear un descriptor intern"
+-#: elf/sprof.c:903
++#: elf/sprof.c:898
+ #, c-format
+ msgid "`%s' is no correct profile data file for `%s'"
+ msgstr "«%s» no és un fitxer vàlid de perfilat de «%s»"
+-#: elf/sprof.c:1084 elf/sprof.c:1142
++#: elf/sprof.c:1079 elf/sprof.c:1137
+ #, c-format
+ msgid "cannot allocate symbol data"
+ msgstr "no s’han pogut reservar les dades de símbols"
+-#: iconv/iconv_charmap.c:142 iconv/iconv_prog.c:446
++#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:448
+ #, c-format
+ msgid "cannot open output file"
+ msgstr "no s’ha pogut obrir el fitxer d’eixida"
+-#: iconv/iconv_charmap.c:188 iconv/iconv_prog.c:312
++#: iconv/iconv_charmap.c:189 iconv/iconv_prog.c:311
+ #, c-format
+ msgid "error while closing input `%s'"
+ msgstr "error en tancar l’entrada «%s»"
+-#: iconv/iconv_charmap.c:462
++#: iconv/iconv_charmap.c:463
+ #, c-format
+ msgid "illegal input sequence at position %Zd"
+ msgstr "hi ha una seqüència d’entrada no vàlida a la posició %Zd"
+-#: iconv/iconv_charmap.c:481 iconv/iconv_prog.c:537
++#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:539
+ #, c-format
+ msgid "incomplete character or shift sequence at end of buffer"
+ msgstr "hi ha un caràcter o seqüència de desplaçament incompleta al final de la memòria intermèdia"
+-#: iconv/iconv_charmap.c:526 iconv/iconv_charmap.c:562 iconv/iconv_prog.c:580
+-#: iconv/iconv_prog.c:616
++#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:582
++#: iconv/iconv_prog.c:618
+ #, c-format
+ msgid "error while reading the input"
+ msgstr "error en llegir l’entrada"
+-#: iconv/iconv_charmap.c:544 iconv/iconv_prog.c:598
++#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:600
+ #, c-format
+ msgid "unable to allocate buffer for input"
+ msgstr "no s’ha pogut reservar memòria intermèdia per a l’entrada"
+-#: iconv/iconv_prog.c:60
++#: iconv/iconv_prog.c:59
+ msgid "Input/Output format specification:"
+ msgstr "Especificació de format de l’entrada/eixida:"
+ # Els següents són missatges d'ajuda.  ivb
+-#: iconv/iconv_prog.c:61
++#: iconv/iconv_prog.c:60
+ msgid "encoding of original text"
+ msgstr "Codificació del text original."
+-#: iconv/iconv_prog.c:62
++#: iconv/iconv_prog.c:61
+ msgid "encoding for output"
+ msgstr "Codificació de l’eixida."
+-#: iconv/iconv_prog.c:63
++#: iconv/iconv_prog.c:62
+ msgid "Information:"
+ msgstr "Informació:"
+-#: iconv/iconv_prog.c:64
++#: iconv/iconv_prog.c:63
+ msgid "list all known coded character sets"
+ msgstr "Llista tots els jocs de caràcters codificats coneguts."
+-#: iconv/iconv_prog.c:65 locale/programs/localedef.c:127
++#: iconv/iconv_prog.c:64 locale/programs/localedef.c:126
+ msgid "Output control:"
+ msgstr "Control de l’eixida:"
+-#: iconv/iconv_prog.c:66
++#: iconv/iconv_prog.c:65
+ msgid "omit invalid characters from output"
+ msgstr "Omet a l’eixida els caràcters no vàlids."
+-#: iconv/iconv_prog.c:67
++#: iconv/iconv_prog.c:66
+ msgid "output file"
+ msgstr "Fitxer d’eixida."
+-#: iconv/iconv_prog.c:68
++#: iconv/iconv_prog.c:67
+ msgid "suppress warnings"
+ msgstr "Elimina els avisos."
+-#: iconv/iconv_prog.c:69
++#: iconv/iconv_prog.c:68
+ msgid "print progress information"
+ msgstr "Mostra informació del progrés."
+-#: iconv/iconv_prog.c:74
++#: iconv/iconv_prog.c:73
+ msgid "Convert encoding of given files from one encoding to another."
+ msgstr "Converteix els fitxers especificats d’una codificació a una altra."
+-#: iconv/iconv_prog.c:78
++#: iconv/iconv_prog.c:77
+ msgid "[FILE...]"
+ msgstr "[FITXER…]"
+-#: iconv/iconv_prog.c:234
++#: iconv/iconv_prog.c:233
+ #, c-format
+ msgid "conversions from `%s' and to `%s' are not supported"
+ msgstr "les conversions de «%s» i a «%s» no estan implementades"
+-#: iconv/iconv_prog.c:239
++#: iconv/iconv_prog.c:238
+ #, c-format
+ msgid "conversion from `%s' is not supported"
+ msgstr "la conversió de «%s» no està implementada"
+-#: iconv/iconv_prog.c:246
++#: iconv/iconv_prog.c:245
+ #, c-format
+ msgid "conversion to `%s' is not supported"
+ msgstr "la conversió a «%s» no està implementada"
+-#: iconv/iconv_prog.c:250
++#: iconv/iconv_prog.c:249
+ #, c-format
+ msgid "conversion from `%s' to `%s' is not supported"
+ msgstr "la conversió de «%s» a «%s» no està implementada"
+-#: iconv/iconv_prog.c:260
++#: iconv/iconv_prog.c:259
+ #, c-format
+ msgid "failed to start conversion processing"
+ msgstr "no s’ha pogut començar a processar la conversió"
+-#: iconv/iconv_prog.c:358
++#: iconv/iconv_prog.c:357
+ #, c-format
+ msgid "error while closing output file"
+ msgstr "error en tancar el fitxer d’eixida"
+-#: iconv/iconv_prog.c:456
++#: iconv/iconv_prog.c:458
+ #, c-format
+ msgid "conversion stopped due to problem in writing the output"
+ msgstr "la conversió s’ha detingut a causa d’un problema en escriure l’eixida"
+-#: iconv/iconv_prog.c:533
++#: iconv/iconv_prog.c:535
+ #, c-format
+ msgid "illegal input sequence at position %ld"
+ msgstr "hi ha una seqüència d’entrada no vàlida a la posició %ld"
+-#: iconv/iconv_prog.c:541
++#: iconv/iconv_prog.c:543
+ #, c-format
+ msgid "internal error (illegal descriptor)"
+ msgstr "error intern (el descriptor no és vàlid)"
+-#: iconv/iconv_prog.c:544
++#: iconv/iconv_prog.c:546
+ #, c-format
+ msgid "unknown iconv() error %d"
+ msgstr "error desconegut %d a iconv()"
+-#: iconv/iconv_prog.c:790
++#: iconv/iconv_prog.c:791
+ msgid ""
+ "The following list contain all the coded character sets known.  This does\n"
+ "not necessarily mean that all combinations of these names can be used for\n"
+@@ -1501,43 +1604,43 @@
+ # ivb (2001/10/28)
+ # ivb  Ostres, açò pareix una frase del M-x spook!
+-#: iconv/iconvconfig.c:110
++#: iconv/iconvconfig.c:109
+ msgid "Create fastloading iconv module configuration file."
+ msgstr "Crea un fitxer de configuració de càrrega ràpida per al mòdul iconv."
+-#: iconv/iconvconfig.c:114
++#: iconv/iconvconfig.c:113
+ msgid "[DIR...]"
+ msgstr " [DIRECTORI…]"
+ # És un missatge d'ajuda.  ivb
+-#: iconv/iconvconfig.c:127
++#: iconv/iconvconfig.c:126
+ msgid "Prefix used for all file accesses"
+ msgstr "Prefix a emprar per a tots els accessos a fitxer."
+-#: iconv/iconvconfig.c:128
++#: iconv/iconvconfig.c:127
+ msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
+ msgstr "Desa l’eixida en el FITXER en lloc de la ubicació d’instaŀlació («--prefix» no s’aplica al FITXER)."
+-#: iconv/iconvconfig.c:132
++#: iconv/iconvconfig.c:131
+ msgid "Do not search standard directories, only those on the command line"
+ msgstr "No cerca en els directoris estàndard, només en els indicats a la línia d’ordres."
+-#: iconv/iconvconfig.c:301
++#: iconv/iconvconfig.c:303
+ #, c-format
+ msgid "Directory arguments required when using --nostdlib"
+ msgstr "Cal proporcionar arguments directori en emprar «--nostdlib»."
+-#: iconv/iconvconfig.c:343 locale/programs/localedef.c:291
++#: iconv/iconvconfig.c:345 locale/programs/localedef.c:287
+ #, c-format
+ msgid "no output file produced because warnings were issued"
+ msgstr "no s’ha generat el fitxer d’eixida perquè s’han produït avisos"
+-#: iconv/iconvconfig.c:429
++#: iconv/iconvconfig.c:434
+ #, c-format
+ msgid "while inserting in search tree"
+ msgstr "en inserir a l’arbre de cerca"
+-#: iconv/iconvconfig.c:1238
++#: iconv/iconvconfig.c:1243
+ #, c-format
+ msgid "cannot generate output file"
+ msgstr "no s’ha pogut generar el fitxer d’eixida"
+@@ -1624,217 +1727,217 @@
+ msgid "Unknown .netrc keyword %s"
+ msgstr "la paraula clau «%s» de «.netrc» no és coneguda"
+-#: libidn/nfkc.c:464
++#: libidn/nfkc.c:462
+ msgid "Character out of range for UTF-8"
+ msgstr "el caràcter és fora de rang respecte UTF-8"
+-#: locale/programs/charmap-dir.c:59
++#: locale/programs/charmap-dir.c:58
+ #, c-format
+ msgid "cannot read character map directory `%s'"
+ msgstr "no s’ha pogut llegir el directori «%s» de taules de caràcters"
+-#: locale/programs/charmap.c:138
++#: locale/programs/charmap.c:137
+ #, c-format
+ msgid "character map file `%s' not found"
+ msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters"
+-#: locale/programs/charmap.c:195
++#: locale/programs/charmap.c:194
+ #, c-format
+ msgid "default character map file `%s' not found"
+ msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters per defecte"
+-#: locale/programs/charmap.c:258
++#: locale/programs/charmap.c:257
+ #, c-format
+ msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
+ msgstr "el mapa de caràcters «%s» no és compatible amb ASCII, el locale no és conforme amb ISO C\n"
+ # La variable porta els símbols inclosos.  ivb
+-#: locale/programs/charmap.c:337
++#: locale/programs/charmap.c:336
+ #, c-format
+ msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+ msgstr "%s: <mb_cur_max> ha de ser major que <mb_cur_min>\n"
+-#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+-#: locale/programs/repertoire.c:174
++#: locale/programs/charmap.c:356 locale/programs/charmap.c:373
++#: locale/programs/repertoire.c:173
+ #, c-format
+ msgid "syntax error in prolog: %s"
+ msgstr "error de sintaxi al pròleg: %s"
+-#: locale/programs/charmap.c:358
++#: locale/programs/charmap.c:357
+ msgid "invalid definition"
+ msgstr "la definició no és vàlida"
+-#: locale/programs/charmap.c:375 locale/programs/locfile.c:126
+-#: locale/programs/locfile.c:153 locale/programs/repertoire.c:175
++#: locale/programs/charmap.c:374 locale/programs/locfile.c:125
++#: locale/programs/locfile.c:152 locale/programs/repertoire.c:174
+ msgid "bad argument"
+ msgstr "l’argument no és vàlid"
+ # Les variables inclouen els símbols «<>».  ivb
+-#: locale/programs/charmap.c:403
++#: locale/programs/charmap.c:402
+ #, c-format
+ msgid "duplicate definition of <%s>"
+ msgstr "la definició de <%s> és duplicada"
+-#: locale/programs/charmap.c:410
++#: locale/programs/charmap.c:409
+ #, c-format
+ msgid "value for <%s> must be 1 or greater"
+ msgstr "el valor de <%s> ha de ser 1 o major"
+-#: locale/programs/charmap.c:422
++#: locale/programs/charmap.c:421
+ #, c-format
+ msgid "value of <%s> must be greater or equal than the value of <%s>"
+ msgstr "el valor de «%s» ha de ser major o igual que el de «%s»"
+-#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183
++#: locale/programs/charmap.c:444 locale/programs/repertoire.c:182
+ #, c-format
+ msgid "argument to <%s> must be a single character"
+ msgstr "l’argument de «%s» ha de ser un sol caràcter"
+-#: locale/programs/charmap.c:471
++#: locale/programs/charmap.c:470
+ msgid "character sets with locking states are not supported"
+ msgstr "l’ús de jocs de caràcters amb estats blocadors no està implementat"
+ # El primer és el nom d'una variable (en majúscules).  ivb
+-#: locale/programs/charmap.c:498 locale/programs/charmap.c:552
+-#: locale/programs/charmap.c:584 locale/programs/charmap.c:678
+-#: locale/programs/charmap.c:733 locale/programs/charmap.c:774
+-#: locale/programs/charmap.c:815
++#: locale/programs/charmap.c:497 locale/programs/charmap.c:551
++#: locale/programs/charmap.c:583 locale/programs/charmap.c:677
++#: locale/programs/charmap.c:732 locale/programs/charmap.c:773
++#: locale/programs/charmap.c:814
+ #, c-format
+ msgid "syntax error in %s definition: %s"
+ msgstr "error de sintaxi a la definició %s: %s"
+-#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+-#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230
++#: locale/programs/charmap.c:498 locale/programs/charmap.c:678
++#: locale/programs/charmap.c:774 locale/programs/repertoire.c:229
+ msgid "no symbolic name given"
+ msgstr "no s’ha indicat un nom simbòlic"
+-#: locale/programs/charmap.c:553
++#: locale/programs/charmap.c:552
+ msgid "invalid encoding given"
+ msgstr "la codificació especificada no és vàlida"
+-#: locale/programs/charmap.c:562
++#: locale/programs/charmap.c:561
+ msgid "too few bytes in character encoding"
+ msgstr "manquen octets a la codificació del caràcter"
+-#: locale/programs/charmap.c:564
++#: locale/programs/charmap.c:563
+ msgid "too many bytes in character encoding"
+ msgstr "sobren octets a la codificació del caràcter"
+-#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+-#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296
++#: locale/programs/charmap.c:585 locale/programs/charmap.c:733
++#: locale/programs/charmap.c:816 locale/programs/repertoire.c:295
+ msgid "no symbolic name given for end of range"
+ msgstr "no s’ha indicat un nom simbòlic per a la fi del rang"
+-#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602
+-#: locale/programs/ld-collate.c:2769 locale/programs/ld-collate.c:3927
+-#: locale/programs/ld-ctype.c:2257 locale/programs/ld-ctype.c:3009
+-#: locale/programs/ld-identification.c:452
+-#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
+-#: locale/programs/ld-monetary.c:943 locale/programs/ld-name.c:307
+-#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241
+-#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221
+-#: locale/programs/repertoire.c:313
++#: locale/programs/charmap.c:609 locale/programs/ld-address.c:601
++#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:3924
++#: locale/programs/ld-ctype.c:2255 locale/programs/ld-ctype.c:3006
++#: locale/programs/ld-identification.c:451
++#: locale/programs/ld-measurement.c:237 locale/programs/ld-messages.c:331
++#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:306
++#: locale/programs/ld-numeric.c:367 locale/programs/ld-paper.c:240
++#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1220
++#: locale/programs/repertoire.c:312
+ #, c-format
+ msgid "%1$s: definition does not end with `END %1$s'"
+ msgstr "%1$s: la definició no acaba en «END %1$s»"
+-#: locale/programs/charmap.c:643
++#: locale/programs/charmap.c:642
+ msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+ msgstr "només es permeten definicions WIDTH després de la definició CHARMAP"
+ # El primer és el nom d'una variable (en majúscules).  ivb
+-#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
++#: locale/programs/charmap.c:650 locale/programs/charmap.c:713
+ #, c-format
+ msgid "value for %s must be an integer"
+ msgstr "el valor de %s ha de ser un enter"
+-#: locale/programs/charmap.c:842
++#: locale/programs/charmap.c:841
+ #, c-format
+ msgid "%s: error in state machine"
+ msgstr "%s: error a la màquina d’estats"
+-#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618
+-#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:4120
+-#: locale/programs/ld-ctype.c:2254 locale/programs/ld-ctype.c:3026
+-#: locale/programs/ld-identification.c:468
+-#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
+-#: locale/programs/ld-monetary.c:959 locale/programs/ld-name.c:323
+-#: 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
++#: locale/programs/charmap.c:849 locale/programs/ld-address.c:617
++#: locale/programs/ld-collate.c:2763 locale/programs/ld-collate.c:4117
++#: locale/programs/ld-ctype.c:2252 locale/programs/ld-ctype.c:3023
++#: locale/programs/ld-identification.c:467
++#: locale/programs/ld-measurement.c:253 locale/programs/ld-messages.c:347
++#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:322
++#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:256
++#: locale/programs/ld-telephone.c:328 locale/programs/ld-time.c:1236
++#: locale/programs/locfile.c:825 locale/programs/repertoire.c:323
+ #, c-format
+ msgid "%s: premature end of file"
+ msgstr "%s: final prematur del fitxer"
+-#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
++#: locale/programs/charmap.c:868 locale/programs/charmap.c:879
+ #, c-format
+ msgid "unknown character `%s'"
+ msgstr "el caràcter «%s» no és conegut"
+-#: locale/programs/charmap.c:888
++#: locale/programs/charmap.c:887
+ #, c-format
+ msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
+ msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d"
+-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3046
+-#: locale/programs/repertoire.c:419
++#: locale/programs/charmap.c:992 locale/programs/ld-collate.c:3043
++#: locale/programs/repertoire.c:418
+ msgid "invalid names for character range"
+ msgstr "els noms del rang de caràcters no són vàlids"
+ # ivb (2001/11/05)
+ # ivb  El rang també pot contenir dígits.  El text original pot fer pensar
+ # ivb  que _només_ s'accepten lletres majúscules.
+-#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431
++#: locale/programs/charmap.c:1004 locale/programs/repertoire.c:430
+ msgid "hexadecimal range format should use only capital characters"
+ msgstr "les lletres emprades en un rang amb format hexadecimal han de ser majúscules"
+-#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449
++#: locale/programs/charmap.c:1022 locale/programs/repertoire.c:448
+ #, c-format
+ msgid "<%s> and <%s> are invalid names for range"
+ msgstr "<%s> i <%s> no són noms de rang vàlids"
+-#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456
++#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:455
+ msgid "upper limit in range is smaller than lower limit"
+ msgstr "el límit superior del rang és menor que l’inferior"
+-#: locale/programs/charmap.c:1087
++#: locale/programs/charmap.c:1086
+ msgid "resulting bytes for range not representable."
+ msgstr "els octets resultants del rang no són representables"
+-#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1558
+-#: locale/programs/ld-ctype.c:421 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
+-#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91
+-#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159
++#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1557
++#: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:132
++#: locale/programs/ld-measurement.c:93 locale/programs/ld-messages.c:96
++#: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:93
++#: locale/programs/ld-numeric.c:97 locale/programs/ld-paper.c:90
++#: locale/programs/ld-telephone.c:93 locale/programs/ld-time.c:158
+ #, c-format
+ msgid "No definition for %s category found"
+ msgstr "no s’ha trobat cap definició de la categoria «%s»"
+-#: 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
+-#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112
+-#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102
+-#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105
+-#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175
+-#: locale/programs/ld-time.c:196
++#: locale/programs/ld-address.c:145 locale/programs/ld-address.c:183
++#: locale/programs/ld-address.c:201 locale/programs/ld-address.c:230
++#: locale/programs/ld-address.c:302 locale/programs/ld-address.c:321
++#: locale/programs/ld-address.c:334 locale/programs/ld-identification.c:145
++#: locale/programs/ld-measurement.c:104 locale/programs/ld-monetary.c:205
++#: locale/programs/ld-monetary.c:249 locale/programs/ld-monetary.c:265
++#: locale/programs/ld-monetary.c:277 locale/programs/ld-name.c:104
++#: locale/programs/ld-name.c:141 locale/programs/ld-numeric.c:111
++#: locale/programs/ld-numeric.c:125 locale/programs/ld-paper.c:101
++#: locale/programs/ld-paper.c:110 locale/programs/ld-telephone.c:104
++#: locale/programs/ld-telephone.c:161 locale/programs/ld-time.c:174
++#: locale/programs/ld-time.c:195
+ #, c-format
+ msgid "%s: field `%s' not defined"
+ msgstr "%s: no s’ha definit el camp «%s»"
+-#: 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
++#: locale/programs/ld-address.c:157 locale/programs/ld-address.c:209
++#: locale/programs/ld-address.c:239 locale/programs/ld-address.c:277
++#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:116
+ #, c-format
+ msgid "%s: field `%s' must not be empty"
+ msgstr "%s: el camp «%s» no ha d’estar buit"
+-#: locale/programs/ld-address.c:170
++#: locale/programs/ld-address.c:169
+ #, c-format
+ msgid "%s: invalid escape `%%%c' sequence in field `%s'"
+ msgstr "%s: la seqüència d’escapada «%%%c» del camp «%s» no és vàlida"
+@@ -1843,744 +1946,744 @@
+ # ivb  Pel que sembla hi ha un codi terminològic de llengua i un
+ # ivb  codi bibliogràfic de llengua.
+ # ivb  http://anubis.dkuug.dk/i18n/iso-639-2-dis.txt
+-#: locale/programs/ld-address.c:221
++#: locale/programs/ld-address.c:220
+ #, c-format
+ msgid "%s: terminology language code `%s' not defined"
+ msgstr "%s: no s’ha definit el codi terminològic de llengua «%s»"
+-#: locale/programs/ld-address.c:246
++#: locale/programs/ld-address.c:245
+ #, c-format
+ msgid "%s: field `%s' must not be defined"
+ msgstr "%s: no s’ha de definir el camp «%s»"
+-#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289
++#: locale/programs/ld-address.c:259 locale/programs/ld-address.c:288
+ #, c-format
+ msgid "%s: language abbreviation `%s' not defined"
+ msgstr "%s: no s’ha definit l’abreviatura de llengua «%s»"
+-#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295
+-#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341
++#: locale/programs/ld-address.c:266 locale/programs/ld-address.c:294
++#: locale/programs/ld-address.c:328 locale/programs/ld-address.c:340
+ #, c-format
+ msgid "%s: `%s' value does not match `%s' value"
+ msgstr "%s: el valor de «%s» no concorda amb el valor de «%s»"
+-#: locale/programs/ld-address.c:314
++#: locale/programs/ld-address.c:313
+ #, c-format
+ msgid "%s: numeric country code `%d' not valid"
+ msgstr "%s: el codi numèric de país «%d» no és vàlid"
+-#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547
+-#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2633
+-#: 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
+-#: locale/programs/ld-monetary.c:777 locale/programs/ld-name.c:280
+-#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224
+-#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126
+-#: locale/programs/ld-time.c:1168
++#: locale/programs/ld-address.c:509 locale/programs/ld-address.c:546
++#: locale/programs/ld-address.c:584 locale/programs/ld-ctype.c:2630
++#: locale/programs/ld-identification.c:363
++#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:300
++#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735
++#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:279
++#: locale/programs/ld-numeric.c:262 locale/programs/ld-paper.c:223
++#: locale/programs/ld-telephone.c:287 locale/programs/ld-time.c:1125
++#: locale/programs/ld-time.c:1167
+ #, c-format
+ msgid "%s: field `%s' declared more than once"
+ msgstr "%s: el camp «%s» ha estat declarat més d’una volta"
+-#: 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
+-#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020
+-#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131
++#: locale/programs/ld-address.c:513 locale/programs/ld-address.c:551
++#: locale/programs/ld-identification.c:367 locale/programs/ld-messages.c:310
++#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739
++#: locale/programs/ld-name.c:283 locale/programs/ld-numeric.c:266
++#: locale/programs/ld-telephone.c:291 locale/programs/ld-time.c:1019
++#: locale/programs/ld-time.c:1088 locale/programs/ld-time.c:1130
+ #, c-format
+ msgid "%s: unknown character in field `%s'"
+ msgstr "%s: el camp «%s» conté un caràcter desconegut"
+-#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3925
+-#: locale/programs/ld-ctype.c:3006 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
+-#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239
+-#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219
++#: locale/programs/ld-address.c:598 locale/programs/ld-collate.c:3922
++#: locale/programs/ld-ctype.c:3003 locale/programs/ld-identification.c:448
++#: locale/programs/ld-measurement.c:234 locale/programs/ld-messages.c:329
++#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:304
++#: locale/programs/ld-numeric.c:365 locale/programs/ld-paper.c:238
++#: locale/programs/ld-telephone.c:310 locale/programs/ld-time.c:1218
+ #, c-format
+ msgid "%s: incomplete `END' line"
+ msgstr "%s: la línia «END» és incompleta"
+-#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:544
+-#: locale/programs/ld-collate.c:596 locale/programs/ld-collate.c:892
+-#: locale/programs/ld-collate.c:905 locale/programs/ld-collate.c:2735
+-#: locale/programs/ld-collate.c:2756 locale/programs/ld-collate.c:4110
+-#: locale/programs/ld-ctype.c:1985 locale/programs/ld-ctype.c:2244
+-#: locale/programs/ld-ctype.c:2831 locale/programs/ld-ctype.c:3017
+-#: locale/programs/ld-identification.c:459
+-#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339
+-#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:314
+-#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248
+-#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228
++#: locale/programs/ld-address.c:608 locale/programs/ld-collate.c:543
++#: locale/programs/ld-collate.c:595 locale/programs/ld-collate.c:891
++#: locale/programs/ld-collate.c:904 locale/programs/ld-collate.c:2732
++#: locale/programs/ld-collate.c:2753 locale/programs/ld-collate.c:4107
++#: locale/programs/ld-ctype.c:1984 locale/programs/ld-ctype.c:2242
++#: locale/programs/ld-ctype.c:2828 locale/programs/ld-ctype.c:3014
++#: locale/programs/ld-identification.c:458
++#: locale/programs/ld-measurement.c:244 locale/programs/ld-messages.c:338
++#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:313
++#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:247
++#: locale/programs/ld-telephone.c:319 locale/programs/ld-time.c:1227
+ #, c-format
+ msgid "%s: syntax error"
+ msgstr "%s: error de sintaxi"
+-#: locale/programs/ld-collate.c:419
++#: locale/programs/ld-collate.c:418
+ #, c-format
+ msgid "`%.*s' already defined in charmap"
+ msgstr "«%.*s» ja ha estat definit al mapa de caràcters"
+-#: locale/programs/ld-collate.c:428
++#: locale/programs/ld-collate.c:427
+ #, c-format
+ msgid "`%.*s' already defined in repertoire"
+ msgstr "«%.*s» ja ha estat definit al repertori"
+-#: locale/programs/ld-collate.c:435
++#: locale/programs/ld-collate.c:434
+ #, c-format
+ msgid "`%.*s' already defined as collating symbol"
+ msgstr "«%.*s» ja ha estat definit com a símbol d’ordenació"
+-#: locale/programs/ld-collate.c:442
++#: locale/programs/ld-collate.c:441
+ #, c-format
+ msgid "`%.*s' already defined as collating element"
+ msgstr "«%.*s» ja ha estat definit com a element d’ordenació"
+-#: locale/programs/ld-collate.c:473 locale/programs/ld-collate.c:499
++#: locale/programs/ld-collate.c:472 locale/programs/ld-collate.c:498
+ #, c-format
+ msgid "%s: `forward' and `backward' are mutually excluding each other"
+ msgstr "%s: «forward» i «backward» són mútuament excloents"
+-#: locale/programs/ld-collate.c:483 locale/programs/ld-collate.c:509
+-#: locale/programs/ld-collate.c:525
++#: locale/programs/ld-collate.c:482 locale/programs/ld-collate.c:508
++#: locale/programs/ld-collate.c:524
+ #, c-format
+ msgid "%s: `%s' mentioned more than once in definition of weight %d"
+ msgstr "%s: s’ha mencionat «%s» més d’una volta a la definició de pes %d"
+-#: locale/programs/ld-collate.c:581
++#: locale/programs/ld-collate.c:580
+ #, c-format
+ msgid "%s: too many rules; first entry only had %d"
+ msgstr "%s: sobren regles; la primera entrada només en tenia %d"
+-#: locale/programs/ld-collate.c:617
++#: locale/programs/ld-collate.c:616
+ #, c-format
+ msgid "%s: not enough sorting rules"
+ msgstr "%s: no hi ha suficients regles d’ordenació"
+-#: locale/programs/ld-collate.c:782
++#: locale/programs/ld-collate.c:781
+ #, c-format
+ msgid "%s: empty weight string not allowed"
+ msgstr "%s: no es permet la cadena buida com a nom de pes"
+-#: locale/programs/ld-collate.c:877
++#: locale/programs/ld-collate.c:876
+ #, c-format
+ msgid "%s: weights must use the same ellipsis symbol as the name"
+ msgstr "%s: els pesos han d’emprar el mateix símbol d’eŀlipsi que el nom"
+-#: locale/programs/ld-collate.c:933
++#: locale/programs/ld-collate.c:932
+ #, c-format
+ msgid "%s: too many values"
+ msgstr "%s: sobren valors"
+-#: locale/programs/ld-collate.c:1053 locale/programs/ld-collate.c:1228
++#: locale/programs/ld-collate.c:1052 locale/programs/ld-collate.c:1227
+ #, c-format
+ msgid "order for `%.*s' already defined at %s:%Zu"
+ msgstr "l’ordre de «%.*s» ja ha estat definit a %s:%Zu"
+-#: locale/programs/ld-collate.c:1103
++#: locale/programs/ld-collate.c:1102
+ #, c-format
+ msgid "%s: the start and the end symbol of a range must stand for characters"
+ msgstr "%s: els símbols inicial i final d’un rang han de representar caràcters"
+-#: locale/programs/ld-collate.c:1130
++#: locale/programs/ld-collate.c:1129
+ #, c-format
+ msgid "%s: byte sequences of first and last character must have the same length"
+ msgstr "%s: les seqüències d’octets del primer i darrer caràcter han de tenir la mateixa longitud"
+-#: locale/programs/ld-collate.c:1172
++#: locale/programs/ld-collate.c:1171
+ #, c-format
+ msgid "%s: byte sequence of first character of range is not lower than that of the last character"
+ msgstr "%s: la seqüència d’octets del primer caràcter del rang no és menor que la del darrer caràcter"
+-#: locale/programs/ld-collate.c:1297
++#: locale/programs/ld-collate.c:1296
+ #, c-format
+ msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
+ msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just darrere d’«order_start»"
+-#: locale/programs/ld-collate.c:1301
++#: locale/programs/ld-collate.c:1300
+ #, c-format
+ msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
+ msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just davant d’«order_end»"
+-#: locale/programs/ld-collate.c:1321 locale/programs/ld-ctype.c:1502
++#: locale/programs/ld-collate.c:1320 locale/programs/ld-ctype.c:1501
+ #, c-format
+ msgid "`%s' and `%.*s' are not valid names for symbolic range"
+ msgstr "«%s» i «%.*s» no són noms vàlids de rangs simbòlics"
+-#: locale/programs/ld-collate.c:1371 locale/programs/ld-collate.c:3861
++#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:3858
+ #, c-format
+ msgid "%s: order for `%.*s' already defined at %s:%Zu"
+ msgstr "%s: l’ordre de «%.*s» ja ha estat definit a %s:%Zu"
+-#: locale/programs/ld-collate.c:1380
++#: locale/programs/ld-collate.c:1379
+ #, c-format
+ msgid "%s: `%s' must be a character"
+ msgstr "%s: «%s» ha de ser un caràcter"
+-#: locale/programs/ld-collate.c:1575
++#: locale/programs/ld-collate.c:1574
+ #, c-format
+ msgid "%s: `position' must be used for a specific level in all sections or none"
+ msgstr "%s: cal emprar «position» per a un nivell específic a totes les seccions o a cap"
+-#: locale/programs/ld-collate.c:1600
++#: locale/programs/ld-collate.c:1599
+ #, c-format
+ msgid "symbol `%s' not defined"
+ msgstr "el símbol «%s» no ha estat definit"
+-#: locale/programs/ld-collate.c:1676 locale/programs/ld-collate.c:1782
++#: locale/programs/ld-collate.c:1675 locale/programs/ld-collate.c:1781
+ #, c-format
+ msgid "symbol `%s' has the same encoding as"
+ msgstr "el símbol «%s» té la mateixa codificació que"
+-#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1786
++#: locale/programs/ld-collate.c:1679 locale/programs/ld-collate.c:1785
+ #, c-format
+ msgid "symbol `%s'"
+ msgstr "el símbol «%s»"
+-#: locale/programs/ld-collate.c:1828
++#: locale/programs/ld-collate.c:1827
+ #, c-format
+ msgid "no definition of `UNDEFINED'"
+ msgstr "no s’ha definit «UNDEFINED»"
+-#: locale/programs/ld-collate.c:1857
++#: locale/programs/ld-collate.c:1856
+ #, c-format
+ msgid "too many errors; giving up"
+ msgstr "hi ha massa errors: s’abandona"
+-#: locale/programs/ld-collate.c:2661 locale/programs/ld-collate.c:4049
++#: locale/programs/ld-collate.c:2658 locale/programs/ld-collate.c:4046
+ #, c-format
+ msgid "%s: nested conditionals not supported"
+ msgstr "%s: no es permeten els condicionals niats"
+-#: locale/programs/ld-collate.c:2679
++#: locale/programs/ld-collate.c:2676
+ #, c-format
+ msgid "%s: more then one 'else'"
+ msgstr "%s: hi ha més d’una clàusula «else»"
+-#: locale/programs/ld-collate.c:2854
++#: locale/programs/ld-collate.c:2851
+ #, c-format
+ msgid "%s: duplicate definition of `%s'"
+ msgstr "%s: la definició de «%s» és duplicada"
+-#: locale/programs/ld-collate.c:2890
++#: locale/programs/ld-collate.c:2887
+ #, c-format
+ msgid "%s: duplicate declaration of section `%s'"
+ msgstr "%s: la declaració de la secció «%s» és duplicada"
+-#: locale/programs/ld-collate.c:3026
++#: locale/programs/ld-collate.c:3023
+ #, c-format
+ msgid "%s: unknown character in collating symbol name"
+ msgstr "%s: el nom del símbol d’ordenació conté un caràcter desconegut"
+-#: locale/programs/ld-collate.c:3155
++#: locale/programs/ld-collate.c:3152
+ #, c-format
+ msgid "%s: unknown character in equivalent definition name"
+ msgstr "%s: el nom de la definició equivalent conté un caràcter desconegut"
+-#: locale/programs/ld-collate.c:3166
++#: locale/programs/ld-collate.c:3163
+ #, c-format
+ msgid "%s: unknown character in equivalent definition value"
+ msgstr "%s: el valor de la definició equivalent conté un caràcter desconegut"
+-#: locale/programs/ld-collate.c:3176
++#: locale/programs/ld-collate.c:3173
+ #, c-format
+ msgid "%s: unknown symbol `%s' in equivalent definition"
+ msgstr "%s: la definició equivalent conté el símbol desconegut «%s»"
+-#: locale/programs/ld-collate.c:3185
++#: locale/programs/ld-collate.c:3182
+ msgid "error while adding equivalent collating symbol"
+ msgstr "error en afegir un símbol d’ordenació equivalent"
+-#: locale/programs/ld-collate.c:3223
++#: locale/programs/ld-collate.c:3220
+ #, c-format
+ msgid "duplicate definition of script `%s'"
+ msgstr "la definició de l’escriptura «%s» és duplicada"
+-#: locale/programs/ld-collate.c:3271
++#: locale/programs/ld-collate.c:3268
+ #, c-format
+ msgid "%s: unknown section name `%.*s'"
+ msgstr "%s: el nom de secció «%.*s» no és conegut"
+-#: locale/programs/ld-collate.c:3300
++#: locale/programs/ld-collate.c:3297
+ #, c-format
+ msgid "%s: multiple order definitions for section `%s'"
+ msgstr "%s: hi ha múltiples definicions d’ordre de la secció «%s»"
+-#: locale/programs/ld-collate.c:3328
++#: locale/programs/ld-collate.c:3325
+ #, c-format
+ msgid "%s: invalid number of sorting rules"
+ msgstr "%s: el nombre de regles d’ordenació no és vàlid"
+-#: locale/programs/ld-collate.c:3355
++#: locale/programs/ld-collate.c:3352
+ #, c-format
+ msgid "%s: multiple order definitions for unnamed section"
+ msgstr "%s: hi ha múltiples definicions d’ordre a la secció sense nom"
+-#: locale/programs/ld-collate.c:3410 locale/programs/ld-collate.c:3540
+-#: locale/programs/ld-collate.c:3903
++#: 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 "%s: manca la paraula clau «order_end»"
+-#: locale/programs/ld-collate.c:3473
++#: locale/programs/ld-collate.c:3470
+ #, c-format
+ msgid "%s: order for collating symbol %.*s not yet defined"
+ msgstr "%s: l’ordre del símbol d’ordenació «%.*s» encara no ha estat definit"
+-#: locale/programs/ld-collate.c:3491
++#: locale/programs/ld-collate.c:3488
+ #, c-format
+ msgid "%s: order for collating element %.*s not yet defined"
+ msgstr "%s: l’ordre de l’element d’ordenació «%.*s» encara no ha estat definit"
+-#: locale/programs/ld-collate.c:3502
++#: locale/programs/ld-collate.c:3499
+ #, c-format
+ msgid "%s: cannot reorder after %.*s: symbol not known"
+ msgstr "%s: no s’ha pogut reordenar després de «%.*s»: el símbol no és conegut"
+-#: locale/programs/ld-collate.c:3554 locale/programs/ld-collate.c:3915
++#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912
+ #, c-format
+ msgid "%s: missing `reorder-end' keyword"
+ msgstr "%s: manca la paraula clau «reorder-end»"
+-#: locale/programs/ld-collate.c:3588 locale/programs/ld-collate.c:3786
++#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783
+ #, c-format
+ msgid "%s: section `%.*s' not known"
+ msgstr "%s: la secció «%.*s» no és coneguda"
+-#: locale/programs/ld-collate.c:3653
++#: locale/programs/ld-collate.c:3650
+ #, c-format
+ msgid "%s: bad symbol <%.*s>"
+ msgstr "%s: el símbol <%.*s> no és vàlid"
+-#: locale/programs/ld-collate.c:3849
++#: locale/programs/ld-collate.c:3846
+ #, c-format
+ msgid "%s: cannot have `%s' as end of ellipsis range"
+ msgstr "%s: «%s» no es pot trobar al final d’un rang amb eŀlipsi"
+-#: locale/programs/ld-collate.c:3899
++#: locale/programs/ld-collate.c:3896
+ #, c-format
+ msgid "%s: empty category description not allowed"
+ msgstr "%s: no es permet una descripció buida de la categoria"
+-#: locale/programs/ld-collate.c:3918
++#: locale/programs/ld-collate.c:3915
+ #, c-format
+ msgid "%s: missing `reorder-sections-end' keyword"
+ msgstr "%s: manca la paraula clau «reorder-sections-end»"
+-#: locale/programs/ld-collate.c:4082
++#: locale/programs/ld-collate.c:4079
+ #, c-format
+ msgid "%s: '%s' without matching 'ifdef' or 'ifndef'"
+ msgstr "%s: s’ha trobat un «%s» sense el corresponent «ifdef» o «ifndef»"
+-#: locale/programs/ld-collate.c:4100
++#: locale/programs/ld-collate.c:4097
+ #, c-format
+ msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'"
+ msgstr "%s: s’ha trobat un «endif» sense el corresponent «ifdef» o «ifndef»"
+-#: locale/programs/ld-ctype.c:440
++#: locale/programs/ld-ctype.c:439
+ #, c-format
+ msgid "No character set name specified in charmap"
+ msgstr "no s’ha indicat cap nom de joc de caràcters al mapa de caràcters"
+-#: locale/programs/ld-ctype.c:469
++#: locale/programs/ld-ctype.c:468
+ #, c-format
+ msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
+ msgstr "el caràcter L«\\u%0*x» de la classe «%s» ha de ser a la classe «%s»"
+-#: locale/programs/ld-ctype.c:484
++#: locale/programs/ld-ctype.c:483
+ #, c-format
+ msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
+ msgstr "el caràcter L«\\u%0*x» de la classe «%s» no ha de ser a la classe «%s»"
+-#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556
++#: locale/programs/ld-ctype.c:497 locale/programs/ld-ctype.c:555
+ #, c-format
+ msgid "internal error in %s, line %u"
+ msgstr "error intern a «%s», línia %u"
+-#: locale/programs/ld-ctype.c:527
++#: locale/programs/ld-ctype.c:526
+ #, c-format
+ msgid "character '%s' in class `%s' must be in class `%s'"
+ msgstr "el caràcter «%s» de la classe «%s» ha de ser a la classe «%s»"
+-#: locale/programs/ld-ctype.c:543
++#: locale/programs/ld-ctype.c:542
+ #, c-format
+ msgid "character '%s' in class `%s' must not be in class `%s'"
+ msgstr "el caràcter «%s» de la classe «%s» no ha de ser a la classe «%s»"
+-#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611
++#: locale/programs/ld-ctype.c:572 locale/programs/ld-ctype.c:610
+ #, c-format
+ msgid "<SP> character not in class `%s'"
+ msgstr "el caràcter <SP> no és a la classe «%s»"
+-#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622
++#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621
+ #, c-format
+ msgid "<SP> character must not be in class `%s'"
+ msgstr "el caràcter <SP> no ha de ser a la classe «%s»"
+-#: locale/programs/ld-ctype.c:600
++#: locale/programs/ld-ctype.c:599
+ #, c-format
+ msgid "character <SP> not defined in character map"
+ msgstr "el caràcter <SP> no ha estat definit a la taula de caràcters"
+-#: locale/programs/ld-ctype.c:736
++#: locale/programs/ld-ctype.c:735
+ #, c-format
+ msgid "`digit' category has not entries in groups of ten"
+ msgstr "les entrades de la categoria «digit» no estan agrupades de deu en deu"
+-#: locale/programs/ld-ctype.c:785
++#: locale/programs/ld-ctype.c:784
+ #, c-format
+ msgid "no input digits defined and none of the standard names in the charmap"
+ msgstr "no s’han definit dígits d’entrada i cap dels noms estàndard es troba al mapa de caràcters"
+-#: locale/programs/ld-ctype.c:850
++#: locale/programs/ld-ctype.c:849
+ #, c-format
+ msgid "not all characters used in `outdigit' are available in the charmap"
+ msgstr "no tots els caràcters emprats a «outdigit» es troben al mapa de caràcters"
+-#: locale/programs/ld-ctype.c:867
++#: locale/programs/ld-ctype.c:866
+ #, c-format
+ msgid "not all characters used in `outdigit' are available in the repertoire"
+ msgstr "no tots els caràcters emprats a «outdigit» es troben al repertori"
+-#: locale/programs/ld-ctype.c:1270
++#: locale/programs/ld-ctype.c:1269
+ #, c-format
+ msgid "character class `%s' already defined"
+ msgstr "la classe de caràcters «%s» ja ha estat definida"
+-#: locale/programs/ld-ctype.c:1276
++#: locale/programs/ld-ctype.c:1275
+ #, c-format
+ msgid "implementation limit: no more than %Zd character classes allowed"
+ msgstr "límit d’implementació: no es permeten més de %Zd classes de caràcters"
+-#: locale/programs/ld-ctype.c:1302
++#: locale/programs/ld-ctype.c:1301
+ #, c-format
+ msgid "character map `%s' already defined"
+ msgstr "el mapa de caràcters «%s» ja ha estat definit"
+-#: locale/programs/ld-ctype.c:1308
++#: locale/programs/ld-ctype.c:1307
+ #, c-format
+ msgid "implementation limit: no more than %d character maps allowed"
+ msgstr "límit d’implementació: no es permeten més de %d taules de caràcters"
+-#: locale/programs/ld-ctype.c:1573 locale/programs/ld-ctype.c:1698
+-#: locale/programs/ld-ctype.c:1804 locale/programs/ld-ctype.c:2496
+-#: locale/programs/ld-ctype.c:3492
++#: locale/programs/ld-ctype.c:1572 locale/programs/ld-ctype.c:1697
++#: locale/programs/ld-ctype.c:1803 locale/programs/ld-ctype.c:2493
++#: locale/programs/ld-ctype.c:3489
+ #, c-format
+ msgid "%s: field `%s' does not contain exactly ten entries"
+ msgstr "%s: el camp «%s» no conté deu entrades exactament"
+-#: locale/programs/ld-ctype.c:1601 locale/programs/ld-ctype.c:2175
++#: locale/programs/ld-ctype.c:1600 locale/programs/ld-ctype.c:2174
+ #, c-format
+ msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
+ msgstr "el valor final <U%0*X> del rang és menor que l’inicial <U%0*X>"
+-#: locale/programs/ld-ctype.c:1728
++#: locale/programs/ld-ctype.c:1727
+ msgid "start and end character sequence of range must have the same length"
+ msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud"
+-#: locale/programs/ld-ctype.c:1735
++#: locale/programs/ld-ctype.c:1734
+ msgid "to-value character sequence is smaller than from-value sequence"
+ msgstr "la seqüència de caràcters final és menor que la seqüència inicial"
+-#: locale/programs/ld-ctype.c:2095 locale/programs/ld-ctype.c:2146
++#: locale/programs/ld-ctype.c:2094 locale/programs/ld-ctype.c:2145
+ msgid "premature end of `translit_ignore' definition"
+ msgstr "fi prematura de la definició «translit_ignore»"
+-#: locale/programs/ld-ctype.c:2101 locale/programs/ld-ctype.c:2152
+-#: locale/programs/ld-ctype.c:2194
++#: locale/programs/ld-ctype.c:2100 locale/programs/ld-ctype.c:2151
++#: locale/programs/ld-ctype.c:2193
+ msgid "syntax error"
+ msgstr "error de sintaxi"
+-#: locale/programs/ld-ctype.c:2328
++#: locale/programs/ld-ctype.c:2326
+ #, c-format
+ msgid "%s: syntax error in definition of new character class"
+ msgstr "%s: error de sintaxi a la definició de nova classe de caràcters"
+-#: locale/programs/ld-ctype.c:2343
++#: locale/programs/ld-ctype.c:2341
+ #, c-format
+ msgid "%s: syntax error in definition of new character map"
+ msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters"
+-#: locale/programs/ld-ctype.c:2518
++#: locale/programs/ld-ctype.c:2515
+ msgid "ellipsis range must be marked by two operands of same type"
+ msgstr "el rang amb eŀlipsi ha d’estar marcat per dos operands del mateix tipus"
+-#: locale/programs/ld-ctype.c:2527
++#: locale/programs/ld-ctype.c:2524
+ msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
+ msgstr "no s’ha d’emprar l’eŀlipsi absoluta «...» amb els valors de rang de noms simbòlics"
+-#: locale/programs/ld-ctype.c:2542
++#: locale/programs/ld-ctype.c:2539
+ msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
+ msgstr "cal emprar l’eŀlipsi simbòlica hexadecimal «..» amb els valors de rang UCS"
+-#: locale/programs/ld-ctype.c:2556
++#: locale/programs/ld-ctype.c:2553
+ msgid "with character code range values one must use the absolute ellipsis `...'"
+ msgstr "cal emprar l’eŀlispi absoluta «...» amb els valors de rang de codis de caràcters"
+-#: locale/programs/ld-ctype.c:2707
++#: locale/programs/ld-ctype.c:2704
+ #, c-format
+ msgid "duplicated definition for mapping `%s'"
+ msgstr "la definició del mapa «%s» és duplicada"
+-#: locale/programs/ld-ctype.c:2793 locale/programs/ld-ctype.c:2937
++#: locale/programs/ld-ctype.c:2790 locale/programs/ld-ctype.c:2934
+ #, c-format
+ msgid "%s: `translit_start' section does not end with `translit_end'"
+ msgstr "%s: la secció «translit_start» no acaba amb «translit_end»"
+-#: locale/programs/ld-ctype.c:2888
++#: locale/programs/ld-ctype.c:2885
+ #, c-format
+ msgid "%s: duplicate `default_missing' definition"
+ msgstr "%s: la definició de «default_missing» és duplicada"
+-#: locale/programs/ld-ctype.c:2893
++#: locale/programs/ld-ctype.c:2890
+ msgid "previous definition was here"
+ msgstr "la definició prèvia es troba ací"
+-#: locale/programs/ld-ctype.c:2915
++#: locale/programs/ld-ctype.c:2912
+ #, c-format
+ msgid "%s: no representable `default_missing' definition found"
+ msgstr "%s: no s’ha trobat cap definició representable de «default_missing»"
+-#: locale/programs/ld-ctype.c:3068 locale/programs/ld-ctype.c:3152
+-#: locale/programs/ld-ctype.c:3172 locale/programs/ld-ctype.c:3193
+-#: locale/programs/ld-ctype.c:3214 locale/programs/ld-ctype.c:3235
+-#: locale/programs/ld-ctype.c:3256 locale/programs/ld-ctype.c:3296
+-#: locale/programs/ld-ctype.c:3317 locale/programs/ld-ctype.c:3384
+-#: locale/programs/ld-ctype.c:3426 locale/programs/ld-ctype.c:3451
++#: locale/programs/ld-ctype.c:3065 locale/programs/ld-ctype.c:3149
++#: locale/programs/ld-ctype.c:3169 locale/programs/ld-ctype.c:3190
++#: locale/programs/ld-ctype.c:3211 locale/programs/ld-ctype.c:3232
++#: locale/programs/ld-ctype.c:3253 locale/programs/ld-ctype.c:3293
++#: locale/programs/ld-ctype.c:3314 locale/programs/ld-ctype.c:3381
++#: locale/programs/ld-ctype.c:3423 locale/programs/ld-ctype.c:3448
+ #, c-format
+ msgid "%s: character `%s' not defined while needed as default value"
+ msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit"
+-#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3157
+-#: locale/programs/ld-ctype.c:3177 locale/programs/ld-ctype.c:3198
+-#: locale/programs/ld-ctype.c:3219 locale/programs/ld-ctype.c:3240
+-#: locale/programs/ld-ctype.c:3261 locale/programs/ld-ctype.c:3301
+-#: locale/programs/ld-ctype.c:3322 locale/programs/ld-ctype.c:3389
++#: locale/programs/ld-ctype.c:3070 locale/programs/ld-ctype.c:3154
++#: locale/programs/ld-ctype.c:3174 locale/programs/ld-ctype.c:3195
++#: locale/programs/ld-ctype.c:3216 locale/programs/ld-ctype.c:3237
++#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3298
++#: locale/programs/ld-ctype.c:3319 locale/programs/ld-ctype.c:3386
+ #, c-format
+ msgid "%s: character `%s' in charmap not representable with one byte"
+ msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet"
+-#: locale/programs/ld-ctype.c:3433 locale/programs/ld-ctype.c:3458
++#: locale/programs/ld-ctype.c:3430 locale/programs/ld-ctype.c:3455
+ #, c-format
+ msgid "%s: character `%s' needed as default value not representable with one byte"
+ msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet"
+-#: locale/programs/ld-ctype.c:3514
++#: locale/programs/ld-ctype.c:3511
+ #, c-format
+ msgid "no output digits defined and none of the standard names in the charmap"
+ msgstr "no s’han definit dígits d’eixida i cap del noms estàndard es troba al mapa de caràcters"
+-#: locale/programs/ld-ctype.c:3805
++#: locale/programs/ld-ctype.c:3802
+ #, c-format
+ msgid "%s: transliteration data from locale `%s' not available"
+ msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles"
+-#: locale/programs/ld-ctype.c:3906
++#: locale/programs/ld-ctype.c:3903
+ #, c-format
+ msgid "%s: table for class \"%s\": %lu bytes\n"
+ msgstr "%s: taula de la classe «%s»: %lu octets\n"
+-#: locale/programs/ld-ctype.c:3975
++#: locale/programs/ld-ctype.c:3972
+ #, c-format
+ msgid "%s: table for map \"%s\": %lu bytes\n"
+ msgstr "%s: taula del mapa «%s»: %lu octets\n"
+-#: locale/programs/ld-ctype.c:4108
++#: locale/programs/ld-ctype.c:4105
+ #, c-format
+ msgid "%s: table for width: %lu bytes\n"
+ msgstr "%s: taula d’amplada: %lu bytes\n"
+-#: locale/programs/ld-identification.c:170
++#: locale/programs/ld-identification.c:169
+ #, c-format
+ msgid "%s: no identification for category `%s'"
+ msgstr "%s: no hi ha cap identificació per a la categoria «%s»"
+-#: locale/programs/ld-identification.c:435
++#: locale/programs/ld-identification.c:434
+ #, c-format
+ msgid "%s: duplicate category version definition"
+ msgstr "%s: la definició de versió de categoria és duplicada"
+-#: locale/programs/ld-measurement.c:113
++#: locale/programs/ld-measurement.c:112
+ #, c-format
+ msgid "%s: invalid value for field `%s'"
+ msgstr "%s: el valor del camp «%s» no és vàlid"
+-#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
++#: locale/programs/ld-messages.c:113 locale/programs/ld-messages.c:147
+ #, c-format
+ msgid "%s: field `%s' undefined"
+ msgstr "%s: no s’ha definit el camp «%s»"
+-#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155
+-#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118
++#: locale/programs/ld-messages.c:120 locale/programs/ld-messages.c:154
++#: locale/programs/ld-monetary.c:255 locale/programs/ld-numeric.c:117
+ #, c-format
+ msgid "%s: value for field `%s' must not be an empty string"
+ msgstr "%s: el valor del camp «%s» no ha de ser la cadena buida"
+-#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171
++#: locale/programs/ld-messages.c:136 locale/programs/ld-messages.c:170
+ #, c-format
+ msgid "%s: no correct regular expression for field `%s': %s"
+ msgstr "%s: no hi ha cap expressió regular correcta per al camp «%s»: %s"
+-#: locale/programs/ld-monetary.c:224
++#: locale/programs/ld-monetary.c:223
+ #, c-format
+ msgid "%s: value of field `int_curr_symbol' has wrong length"
+ msgstr "%s: el valor del camp «int_curr_symbol» té una longitud incorrecta"
+-#: locale/programs/ld-monetary.c:237
++#: locale/programs/ld-monetary.c:236
+ #, c-format
+ msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
+ msgstr "%s: el valor del camp «int_curr_symbol» no és un nom vàlid de l’estàndard ISO 4217"
+-#: locale/programs/ld-monetary.c:285 locale/programs/ld-monetary.c:315
++#: locale/programs/ld-monetary.c:284 locale/programs/ld-monetary.c:314
+ #, c-format
+ msgid "%s: value for field `%s' must be in range %d...%d"
+ msgstr "%s: el valor del camp «%s» ha d’estar dins el rang %d...%d"
+-#: locale/programs/ld-monetary.c:747 locale/programs/ld-numeric.c:274
++#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:273
+ #, c-format
+ msgid "%s: value for field `%s' must be a single character"
+ msgstr "%s: el valor del camp «%s» ha de ser un sol caràcter"
+-#: locale/programs/ld-monetary.c:844 locale/programs/ld-numeric.c:318
++#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:317
+ #, c-format
+ msgid "%s: `-1' must be last entry in `%s' field"
+ msgstr "%s: «-1» ha de ser la darrera entrada del camp «%s»"
+-#: locale/programs/ld-monetary.c:866 locale/programs/ld-numeric.c:335
++#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:334
+ #, c-format
+ msgid "%s: values for field `%s' must be smaller than 127"
+ msgstr "%s: els valors del camp «%s» han de ser menors que 127"
+-#: locale/programs/ld-monetary.c:909
++#: locale/programs/ld-monetary.c:908
+ msgid "conversion rate value cannot be zero"
+ msgstr "el valor de la taxa de conversió no pot ser zero"
+-#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+-#: locale/programs/ld-telephone.c:149
++#: locale/programs/ld-name.c:128 locale/programs/ld-telephone.c:125
++#: locale/programs/ld-telephone.c:148
+ #, c-format
+ msgid "%s: invalid escape sequence in field `%s'"
+ msgstr "%s: la seqüència d’escapada del camp «%s» no és vàlida"
+-#: locale/programs/ld-time.c:247
++#: locale/programs/ld-time.c:246
+ #, c-format
+ msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
+ msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és ni «+» ni «-»"
+-#: locale/programs/ld-time.c:258
++#: locale/programs/ld-time.c:257
+ #, c-format
+ msgid "%s: direction flag in string %Zd in `era' field is not a single character"
+ msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és un sol caràcter"
+-#: locale/programs/ld-time.c:271
++#: locale/programs/ld-time.c:270
+ #, c-format
+ msgid "%s: invalid number for offset in string %Zd in `era' field"
+ msgstr "%s: el número de desplaçament de la cadena %Zd del camp «era» no és vàlid"
+-#: locale/programs/ld-time.c:279
++#: locale/programs/ld-time.c:278
+ #, c-format
+ msgid "%s: garbage at end of offset value in string %Zd in `era' field"
+ msgstr "%s: brossa al final del valor de desplaçament de la cadena %Zd del camp «era»"
+-#: locale/programs/ld-time.c:330
++#: locale/programs/ld-time.c:329
+ #, c-format
+ msgid "%s: invalid starting date in string %Zd in `era' field"
+ msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida"
+-#: locale/programs/ld-time.c:339
++#: locale/programs/ld-time.c:338
+ #, c-format
+ msgid "%s: garbage at end of starting date in string %Zd in `era' field "
+ msgstr "%s: brossa al final de la data de començament de la cadena %Zd del camp «era» "
+-#: locale/programs/ld-time.c:358
++#: locale/programs/ld-time.c:357
+ #, c-format
+ msgid "%s: starting date is invalid in string %Zd in `era' field"
+ msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida"
+-#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435
++#: locale/programs/ld-time.c:406 locale/programs/ld-time.c:434
+ #, c-format
+ msgid "%s: invalid stopping date in string %Zd in `era' field"
+ msgstr "%s: la data d’acabament de la cadena %Zd del camp «era» no és vàlida"
+-#: locale/programs/ld-time.c:416
++#: locale/programs/ld-time.c:415
+ #, c-format
+ msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
+ msgstr "%s: brossa al final de la data d’acabament de la cadena %Zd del camp «era»"
+-#: locale/programs/ld-time.c:444
++#: locale/programs/ld-time.c:443
+ #, c-format
+ msgid "%s: missing era name in string %Zd in `era' field"
+ msgstr "%s: manca el nom de l’era a la cadena %Zd del camp «era»"
+-#: locale/programs/ld-time.c:456
++#: locale/programs/ld-time.c:455
+ #, c-format
+ msgid "%s: missing era format in string %Zd in `era' field"
+ msgstr "%s: manca el format de l’era a la cadena %Zd del camp «era»"
+-#: locale/programs/ld-time.c:497
++#: locale/programs/ld-time.c:496
+ #, c-format
+ msgid "%s: third operand for value of field `%s' must not be larger than %d"
+ msgstr "%s: el tercer operand del valor del camp «%s» no ha de ser major que %d"
+-#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+-#: locale/programs/ld-time.c:521
++#: locale/programs/ld-time.c:504 locale/programs/ld-time.c:512
++#: locale/programs/ld-time.c:520
+ #, c-format
+ msgid "%s: values for field `%s' must not be larger than %d"
+ msgstr "%s: els valors del camp «%s» no han de ser majors que %d"
+-#: locale/programs/ld-time.c:1004
++#: locale/programs/ld-time.c:1003
+ #, c-format
+ msgid "%s: too few values for field `%s'"
+ msgstr "%s: manquen valors al camp «%s»"
+-#: locale/programs/ld-time.c:1049
++#: locale/programs/ld-time.c:1048
+ msgid "extra trailing semicolon"
+ msgstr "hi ha un punt i coma sobrant al final"
+-#: locale/programs/ld-time.c:1052
++#: locale/programs/ld-time.c:1051
+ #, c-format
+ msgid "%s: too many values for field `%s'"
+ msgstr "%s: sobren valors al camp «%s»"
+-#: locale/programs/linereader.c:130
++#: locale/programs/linereader.c:129
+ msgid "trailing garbage at end of line"
+ msgstr "brossa al final de la línia"
+-#: locale/programs/linereader.c:298
++#: locale/programs/linereader.c:297
+ msgid "garbage at end of number"
+ msgstr "brossa al final del número"
+-#: locale/programs/linereader.c:410
++#: locale/programs/linereader.c:409
+ msgid "garbage at end of character code specification"
+ msgstr "brossa al final de l’especificació de codi de caràcter"
+-#: locale/programs/linereader.c:496
++#: locale/programs/linereader.c:495
+ msgid "unterminated symbolic name"
+ msgstr "el nom simbòlic no està acabat"
+-#: locale/programs/linereader.c:623
++#: locale/programs/linereader.c:622
+ msgid "illegal escape sequence at end of string"
+ msgstr "hi ha una seqüència d’escapada no permesa al final de la cadena"
+-#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
++#: locale/programs/linereader.c:626 locale/programs/linereader.c:854
+ msgid "unterminated string"
+ msgstr "la cadena no està acabada"
+-#: locale/programs/linereader.c:669
++#: locale/programs/linereader.c:668
+ msgid "non-symbolic character value should not be used"
+ msgstr "no s’han d’emprar valors de caràcters no simbòlics"
+-#: locale/programs/linereader.c:816
++#: locale/programs/linereader.c:815
+ #, c-format
+ msgid "symbol `%.*s' not in charmap"
+ msgstr "el símbol «%.*s» no es troba al mapa de caràcters"
+-#: locale/programs/linereader.c:837
++#: locale/programs/linereader.c:836
+ #, c-format
+ msgid "symbol `%.*s' not in repertoire map"
+ msgstr "el símbol «%.*s» no es troba al mapa de repertori"
+-#: locale/programs/locale-spec.c:131
++#: locale/programs/locale-spec.c:130
+ #, c-format
+ msgid "unknown name \"%s\""
+ msgstr "el nom «%s» no és conegut"
+@@ -2648,33 +2751,33 @@
+ msgid "Cannot set LC_ALL to default locale"
+ msgstr "no s’ha pogut establir LC_ALL al locale per defecte"
+-#: locale/programs/locale.c:518
++#: locale/programs/locale.c:521
+ #, c-format
+ msgid "while preparing output"
+ msgstr "en preparar l’eixida"
+ # Més ajudes.  ivb
+-#: locale/programs/localedef.c:120
++#: locale/programs/localedef.c:119
+ msgid "Input Files:"
+ msgstr "Fitxers d’entrada:"
+-#: locale/programs/localedef.c:122
++#: locale/programs/localedef.c:121
+ msgid "Symbolic character names defined in FILE"
+ msgstr "Els noms simbòlics dels caràcters es defineixen al FITXER."
+-#: locale/programs/localedef.c:123
++#: locale/programs/localedef.c:122
+ msgid "Source definitions are found in FILE"
+ msgstr "Les definicions font es troben al FITXER."
+-#: locale/programs/localedef.c:125
++#: locale/programs/localedef.c:124
+ msgid "FILE contains mapping from symbolic names to UCS4 values"
+ msgstr "El FITXER conté un mapa de noms simbòlics a valors UCS4."
+-#: locale/programs/localedef.c:129
++#: locale/programs/localedef.c:128
+ msgid "Create output even if warning messages were issued"
+ msgstr "Crea fitxers d’eixida encara que s’hagen emès missatges d’avís."
+-#: locale/programs/localedef.c:130
++#: locale/programs/localedef.c:129
+ msgid "Create old-style tables"
+ msgstr "Crea taules de l’estil antic."
+@@ -2682,57 +2785,57 @@
+ # ivb  Localedef crea diversos fitxers en un directori: és plural.
+ # ivb  Però, el prefix és un prefix d'un camí, com «/usr/local» en
+ # ivb  «/usr/local/share/doc».
+-#: locale/programs/localedef.c:131
++#: locale/programs/localedef.c:130
+ msgid "Optional output file prefix"
+ msgstr "Prefix opcional dels fitxers d’eixida."
+-#: locale/programs/localedef.c:132
++#: locale/programs/localedef.c:131
+ msgid "Be strictly POSIX conform"
+ msgstr "S’ajusta estrictament a POSIX."
+-#: locale/programs/localedef.c:134
++#: locale/programs/localedef.c:133
+ msgid "Suppress warnings and information messages"
+ msgstr "Descarta els avisos i els missatges informatius."
+-#: locale/programs/localedef.c:135
++#: locale/programs/localedef.c:134
+ msgid "Print more messages"
+ msgstr "Mostra més missatges."
+-#: locale/programs/localedef.c:136
++#: locale/programs/localedef.c:135
+ msgid "Archive control:"
+ msgstr "Control d’arxius:"
+-#: locale/programs/localedef.c:138
++#: locale/programs/localedef.c:137
+ msgid "Don't add new data to archive"
+ msgstr "No afegeix dades noves a l’arxiu."
+-#: locale/programs/localedef.c:140
++#: locale/programs/localedef.c:139
+ msgid "Add locales named by parameters to archive"
+ msgstr "Afegeix a l’arxiu els locales esmentats pels paràmetres."
+-#: locale/programs/localedef.c:141
++#: locale/programs/localedef.c:140
+ msgid "Replace existing archive content"
+ msgstr "Reemplaça el contingut existent a l’arxiu."
+-#: locale/programs/localedef.c:143
++#: locale/programs/localedef.c:142
+ msgid "Remove locales named by parameters from archive"
+ msgstr "Elimina de l’arxiu els locales esmentats pels paràmetres."
+-#: locale/programs/localedef.c:144
++#: locale/programs/localedef.c:143
+ msgid "List content of archive"
+ msgstr "Llista el contingut de l’arxiu."
+-#: locale/programs/localedef.c:146
++#: locale/programs/localedef.c:145
+ msgid "locale.alias file to consult when making archive"
+ msgstr "Fitxer «locale.alias» a consultar en crear l’arxiu."
+ # ivb (2001/10/28)
+ # ivb  Pose el punt final pq és la descripció curta de l'ordre.
+-#: locale/programs/localedef.c:151
++#: locale/programs/localedef.c:150
+ msgid "Compile locale specification"
+ msgstr "Compiŀla una especificació de locale."
+-#: locale/programs/localedef.c:154
++#: locale/programs/localedef.c:153
+ msgid ""
+ "NAME\n"
+ "[--add-to-archive|--delete-from-archive] FILE...\n"
+@@ -2742,28 +2845,28 @@
+ "[--add-to-archive | --delete-from-archive] FITXER…\n"
+ "--list-archive [FITXER]"
+-#: locale/programs/localedef.c:232
++#: locale/programs/localedef.c:228
+ #, c-format
+ msgid "cannot create directory for output files"
+ msgstr "no s’ha pogut crear el directori per als fitxers d’eixida"
+-#: locale/programs/localedef.c:243
++#: locale/programs/localedef.c:239
+ #, c-format
+ msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+ msgstr "FATAL: el sistema no defineix «_POSIX2_LOCALEDEF»"
+-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
+-#: locale/programs/localedef.c:599 locale/programs/localedef.c:619
++#: locale/programs/localedef.c:253 locale/programs/localedef.c:269
++#: locale/programs/localedef.c:601 locale/programs/localedef.c:621
+ #, c-format
+ msgid "cannot open locale definition file `%s'"
+ msgstr "no s’ha pogut obrir el fitxer «%s» de definició del locale"
+-#: locale/programs/localedef.c:285
++#: locale/programs/localedef.c:281
+ #, c-format
+ msgid "cannot write output files to `%s'"
+ msgstr "no s’han pogut escriure els fitxers d’eixida a «%s»"
+-#: locale/programs/localedef.c:366
++#: locale/programs/localedef.c:367
+ #, c-format
+ msgid ""
+ "System's directory for character maps : %s\n"
+@@ -2776,214 +2879,215 @@
+ "                         camí als locales  : %s\n"
+ "%s"
+-#: locale/programs/localedef.c:567
++#: locale/programs/localedef.c:569
+ #, c-format
+ msgid "circular dependencies between locale definitions"
+ msgstr "hi ha dependències circulars entre les definicions dels locales"
+-#: locale/programs/localedef.c:573
++#: locale/programs/localedef.c:575
+ #, c-format
+ msgid "cannot add already read locale `%s' a second time"
+ msgstr "no es pot afegir una altra volta el locale ja llegit «%s»"
+-#: locale/programs/locarchive.c:92 locale/programs/locarchive.c:338
++#: locale/programs/locarchive.c:113 locale/programs/locarchive.c:347
++#: nss/makedb.c:290
+ #, c-format
+ msgid "cannot create temporary file"
+ msgstr "no s’ha pogut crear un fitxer temporal"
+-#: locale/programs/locarchive.c:122 locale/programs/locarchive.c:384
++#: locale/programs/locarchive.c:143 locale/programs/locarchive.c:393
+ #, c-format
+ msgid "cannot initialize archive file"
+ msgstr "no s’ha pogut iniciar el fitxer arxiu"
+-#: locale/programs/locarchive.c:129 locale/programs/locarchive.c:391
++#: locale/programs/locarchive.c:150 locale/programs/locarchive.c:400
+ #, c-format
+ msgid "cannot resize archive file"
+ msgstr "no s’ha pogut redimensionar el fitxer arxiu"
+-#: locale/programs/locarchive.c:152 locale/programs/locarchive.c:414
+-#: locale/programs/locarchive.c:633
++#: locale/programs/locarchive.c:163 locale/programs/locarchive.c:413
++#: locale/programs/locarchive.c:619
+ #, c-format
+ msgid "cannot map archive header"
+ msgstr "no s’ha pogut mapar la capçalera de l’arxiu"
+ # ivb (2002/10/21)
+ # ivb  Un «locale archive» conté diversos locales -> «arxiu de locales».
+-#: locale/programs/locarchive.c:174
++#: locale/programs/locarchive.c:185
+ #, c-format
+ msgid "failed to create new locale archive"
+ msgstr "no s’ha pogut crear el nou arxiu de locales"
+-#: locale/programs/locarchive.c:186
++#: locale/programs/locarchive.c:197
+ #, c-format
+ msgid "cannot change mode of new locale archive"
+ msgstr "no s’ha pogut canviar el mode del nou arxiu de locales"
+-#: locale/programs/locarchive.c:285
++#: locale/programs/locarchive.c:296
+ #, c-format
+ msgid "cannot read data from locale archive"
+ msgstr "no s’han pogut llegir les dades de l’arxiu de locales"
+-#: locale/programs/locarchive.c:318
++#: locale/programs/locarchive.c:327
+ #, c-format
+ msgid "cannot map locale archive file"
+ msgstr "no s’ha pogut mapar el fitxer arxiu de locales"
+-#: locale/programs/locarchive.c:422
++#: locale/programs/locarchive.c:421
+ #, c-format
+ msgid "cannot lock new archive"
+ msgstr "no s’ha pogut blocar el nou arxiu"
+-#: locale/programs/locarchive.c:488
++#: locale/programs/locarchive.c:485
+ #, c-format
+ msgid "cannot extend locale archive file"
+ msgstr "no s’ha pogut estendre el fitxer arxiu de locales"
+-#: locale/programs/locarchive.c:497
++#: locale/programs/locarchive.c:494
+ #, c-format
+ msgid "cannot change mode of resized locale archive"
+ msgstr "no s’ha pogut canviar el mode de l’arxiu de locales redimensionat"
+-#: locale/programs/locarchive.c:505
++#: locale/programs/locarchive.c:502
+ #, c-format
+ msgid "cannot rename new archive"
+ msgstr "no s’ha pogut reanomenar el nou arxiu"
+-#: locale/programs/locarchive.c:558
++#: locale/programs/locarchive.c:555
+ #, c-format
+ msgid "cannot open locale archive \"%s\""
+ msgstr "no s’ha pogut obrir l’arxiu «%s» de locales"
+-#: locale/programs/locarchive.c:563
++#: locale/programs/locarchive.c:560
+ #, c-format
+ msgid "cannot stat locale archive \"%s\""
+ msgstr "ha fallat stat() sobre l’arxiu «%s» de locales"
+-#: locale/programs/locarchive.c:582
++#: locale/programs/locarchive.c:579
+ #, c-format
+ msgid "cannot lock locale archive \"%s\""
+ msgstr "no s’ha pogut blocar l’arxiu «%s» de locales"
+-#: locale/programs/locarchive.c:605
++#: locale/programs/locarchive.c:602
+ #, c-format
+ msgid "cannot read archive header"
+ msgstr "no s’ha pogut llegir la capçalera de l’arxiu"
+-#: locale/programs/locarchive.c:680
++#: locale/programs/locarchive.c:666
+ #, c-format
+ msgid "locale '%s' already exists"
+ msgstr "el locale «%s» ja existeix"
+-#: locale/programs/locarchive.c:942 locale/programs/locarchive.c:957
+-#: locale/programs/locarchive.c:969 locale/programs/locarchive.c:981
+-#: locale/programs/locfile.c:344
++#: locale/programs/locarchive.c:928 locale/programs/locarchive.c:943
++#: locale/programs/locarchive.c:955 locale/programs/locarchive.c:967
++#: locale/programs/locfile.c:343
+ #, c-format
+ msgid "cannot add to locale archive"
+ msgstr "no s’ha pogut afegir a l’arxiu de locales"
+ # ivb (2002/10/21)
+ # ivb  El fitxer conté àlies de diversos locales (locale.alias).
+-#: locale/programs/locarchive.c:1139
++#: locale/programs/locarchive.c:1125
+ #, c-format
+ msgid "locale alias file `%s' not found"
+ msgstr "no s’ha trobat el fitxer «%s» d’àlies de locales"
+ # ivb (2002/10/21)
+ # ivb  És un missatge, no un error.
+-#: locale/programs/locarchive.c:1289
++#: locale/programs/locarchive.c:1275
+ #, c-format
+ msgid "Adding %s\n"
+ msgstr "S’està afegint «%s»\n"
+-#: locale/programs/locarchive.c:1295
++#: locale/programs/locarchive.c:1281
+ #, c-format
+ msgid "stat of \"%s\" failed: %s: ignored"
+ msgstr "ha fallat stat() sobre «%s»: %s: es descarta"
+-#: locale/programs/locarchive.c:1301
++#: locale/programs/locarchive.c:1287
+ #, c-format
+ msgid "\"%s\" is no directory; ignored"
+ msgstr "«%s» no és un directori: es descarta"
+-#: locale/programs/locarchive.c:1308
++#: locale/programs/locarchive.c:1294
+ #, c-format
+ msgid "cannot open directory \"%s\": %s: ignored"
+ msgstr "no s’ha pogut obrir el directori «%s»: %s: es descarta"
+-#: locale/programs/locarchive.c:1380
++#: locale/programs/locarchive.c:1366
+ #, c-format
+ msgid "incomplete set of locale files in \"%s\""
+ msgstr "el joc de fitxers de locale a «%s» no és complet"
+-#: locale/programs/locarchive.c:1444
++#: locale/programs/locarchive.c:1430
+ #, c-format
+ msgid "cannot read all files in \"%s\": ignored"
+ msgstr "no s’han pogut llegir tots els fitxers de «%s»: es descarta"
+-#: locale/programs/locarchive.c:1514
++#: locale/programs/locarchive.c:1500
+ #, c-format
+ msgid "locale \"%s\" not in archive"
+ msgstr "el locale «%s» no es troba a l’arxiu"
+-#: locale/programs/locfile.c:132
++#: locale/programs/locfile.c:131
+ #, c-format
+ msgid "argument to `%s' must be a single character"
+ msgstr "l’argument de «%s» ha de ser un sol caràcter"
+-#: locale/programs/locfile.c:252
++#: locale/programs/locfile.c:251
+ msgid "syntax error: not inside a locale definition section"
+ msgstr "error de sintaxi: no és a dins d’una secció de definició de locale"
+-#: locale/programs/locfile.c:626
++#: locale/programs/locfile.c:625
+ #, c-format
+ msgid "cannot open output file `%s' for category `%s'"
+ msgstr "no s’ha pogut obrir el fitxer d’eixida «%s» de la categoria «%s»"
+-#: locale/programs/locfile.c:650
++#: locale/programs/locfile.c:649
+ #, c-format
+ msgid "failure while writing data for category `%s'"
+ msgstr "no s’han pogut escriure les dades de la categoria «%s»"
+-#: locale/programs/locfile.c:746
++#: locale/programs/locfile.c:745
+ #, c-format
+ msgid "cannot create output file `%s' for category `%s'"
+ msgstr "no s’ha pogut crear el fitxer d’eixida «%s» de la categoria «%s»"
+-#: locale/programs/locfile.c:782
++#: locale/programs/locfile.c:781
+ msgid "expecting string argument for `copy'"
+ msgstr "cal una cadena com a argument de «copy»"
+-#: locale/programs/locfile.c:786
++#: locale/programs/locfile.c:785
+ msgid "locale name should consist only of portable characters"
+ msgstr "el nom del locale només ha de contenir caràcters portables"
+-#: locale/programs/locfile.c:805
++#: locale/programs/locfile.c:804
+ msgid "no other keyword shall be specified when `copy' is used"
+ msgstr "no s’ha d’indicar cap altra paraula clau quan s’empre «copy»"
+-#: locale/programs/locfile.c:819
++#: locale/programs/locfile.c:818
+ #, c-format
+ msgid "`%1$s' definition does not end with `END %1$s'"
+ msgstr "la definició «%1$s» no acaba en «END %1$s»"
+-#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270
+-#: locale/programs/repertoire.c:295
++#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269
++#: locale/programs/repertoire.c:294
+ #, c-format
+ msgid "syntax error in repertoire map definition: %s"
+ msgstr "error de sintaxi a la definició del mapa de repertori: %s"
+-#: locale/programs/repertoire.c:271
++#: locale/programs/repertoire.c:270
+ msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
+ msgstr "no s’ha especificat un valor <Uxxxx> o <Uxxxxxxxx>"
+ # ivb (2001/11/05)
+ # ivb  Apareix quan no es troba el repertori en un arbre de repertoris.
+-#: locale/programs/repertoire.c:331
++#: locale/programs/repertoire.c:330
+ #, c-format
+ msgid "cannot save new repertoire map"
+ msgstr "no s’ha pogut afegir el nou mapa de repertori"
+-#: locale/programs/repertoire.c:342
++#: locale/programs/repertoire.c:341
+ #, c-format
+ msgid "repertoire map file `%s' not found"
+ msgstr "no s’ha trobat el fitxer «%s» de mapa de repertori"
+@@ -2993,7 +3097,7 @@
+ msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'.  This is the helper program for the `grantpt' function.  It is not intended to be run directly from the command line.\n"
+ msgstr "Estableix el propietari, grup i permissos d’accés del pseudo‐terminal esclau corresponent al pseudo‐terminal mestre passat en el descriptor de fitxer %d.  Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n"
+-#: login/programs/pt_chown.c:88
++#: login/programs/pt_chown.c:92
+ #, c-format
+ msgid ""
+ "The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n"
+@@ -3004,41 +3108,41 @@
+ "\n"
+ "%s"
+-#: login/programs/pt_chown.c:192
++#: login/programs/pt_chown.c:198
+ #, c-format
+ msgid "too many arguments"
+ msgstr "sobren arguments"
+-#: login/programs/pt_chown.c:200
++#: login/programs/pt_chown.c:206
+ #, c-format
+ msgid "needs to be installed setuid `root'"
+ msgstr "ha d’estar instaŀlat amb setuid a «root»"
+-#: malloc/mcheck.c:350
++#: malloc/mcheck.c:348
+ msgid "memory is consistent, library is buggy\n"
+ msgstr "la memòria és consistent; la biblioteca té errors\n"
+-#: malloc/mcheck.c:353
++#: malloc/mcheck.c:351
+ msgid "memory clobbered before allocated block\n"
+ msgstr "s’ha sobreescrit la memòria d’abans del bloc reservat\n"
+-#: malloc/mcheck.c:356
++#: malloc/mcheck.c:354
+ msgid "memory clobbered past end of allocated block\n"
+ msgstr "s’ha sobreescrit la memòria de després del bloc reservat\n"
+-#: malloc/mcheck.c:359
++#: malloc/mcheck.c:357
+ msgid "block freed twice\n"
+ msgstr "s’ha alliberat el bloc dues voltes\n"
+-#: malloc/mcheck.c:362
++#: malloc/mcheck.c:360
+ msgid "bogus mcheck_status, library is buggy\n"
+ msgstr "el valor d’«mcheck_status» és estrany; la biblioteca té errors\n"
+-#: malloc/memusage.sh:33
++#: malloc/memusage.sh:32
+ msgid "%s: option '%s' requires an argument\\n"
+ msgstr "%s: l’opció «%s» necessita un argument\\n"
+-#: malloc/memusage.sh:39
++#: malloc/memusage.sh:38
+ msgid ""
+ "Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n"
+ "Profile memory usage of PROGRAM.\n"
+@@ -3093,7 +3197,7 @@
+ "opcions curtes corresponents.\n"
+ "\n"
+-#: malloc/memusage.sh:101
++#: malloc/memusage.sh:99
+ msgid ""
+ "Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n"
+ "\t    [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n"
+@@ -3105,60 +3209,60 @@
+ "                [--total] [--title=CADENA] [--x-size=MIDA] [--y-size=MIDA]\n"
+ "                PROGRAMA [OPCIÓ_DE_PROGRAMA]…"
+-#: malloc/memusage.sh:193
++#: malloc/memusage.sh:191
+ msgid "memusage: option \\`${1##*=}' is ambiguous"
+ msgstr "memusage: l’opció «${1##*=}» és ambígua"
+-#: malloc/memusage.sh:202
++#: malloc/memusage.sh:200
+ msgid "memusage: unrecognized option \\`$1'"
+ msgstr "memusage: l’opció «$1» no és reconeguda"
+-#: malloc/memusage.sh:215
++#: malloc/memusage.sh:213
+ msgid "No program name given"
+ msgstr "No s’ha indicat un nom de programa"
+ # Més ajudes.  ivb
+-#: malloc/memusagestat.c:57
++#: malloc/memusagestat.c:55
+ msgid "Name output file"
+ msgstr "Especifica el fitxer d’eixida."
+-#: malloc/memusagestat.c:58
++#: malloc/memusagestat.c:56
+ msgid "Title string used in output graphic"
+ msgstr "Cadena amb el títol a emprar al gràfic d’eixida."
+-#: malloc/memusagestat.c:59
++#: malloc/memusagestat.c:57
+ msgid "Generate output linear to time (default is linear to number of function calls)"
+ msgstr "Genera una eixida lineal respecte el temps (per defecte és lineal respecte el nombre de crides a funció)."
+-#: malloc/memusagestat.c:61
++#: malloc/memusagestat.c:59
+ msgid "Also draw graph for total memory consumption"
+ msgstr "També mostra un gràfic del consum total de memòria."
+-#: malloc/memusagestat.c:62
++#: malloc/memusagestat.c:60
+ msgid "Make output graphic VALUE pixels wide"
+ msgstr "Fa el gràfic d’eixida de VALOR píxels d’amplada."
+-#: malloc/memusagestat.c:63
++#: malloc/memusagestat.c:61
+ msgid "Make output graphic VALUE pixels high"
+ msgstr "Fa el gràfic d’eixida de VALOR píxels d’altura."
+-#: malloc/memusagestat.c:68
++#: malloc/memusagestat.c:66
+ msgid "Generate graphic from memory profiling data"
+ msgstr "Genera un gràfic amb les dades de perfilat de memòria."
+-#: malloc/memusagestat.c:71
++#: malloc/memusagestat.c:69
+ msgid "DATAFILE [OUTFILE]"
+ msgstr "FITXER_DADES [FITXER_EIXIDA]"
+-#: misc/error.c:118
++#: misc/error.c:117
+ msgid "Unknown system error"
+ msgstr "error desconegut del sistema"
+-#: nis/nis_callback.c:189
++#: nis/nis_callback.c:188
+ msgid "unable to free arguments"
+ msgstr "no s’han pogut alliberar els arguments"
+-#: nis/nis_error.h:1 nis/ypclnt.c:833 nis/ypclnt.c:921 posix/regcomp.c:132
++#: nis/nis_error.h:1 nis/ypclnt.c:832 nis/ypclnt.c:920 posix/regcomp.c:131
+ #: sysdeps/gnu/errlist.c:20
+ msgid "Success"
+ msgstr "Èxit"
+@@ -3200,7 +3304,7 @@
+ msgstr "S’ha trencat la cadena de primer/següent"
+ #. TRANS Permission denied; the file permissions do not allow the attempted operation.
+-#: nis/nis_error.h:11 nis/ypclnt.c:878 sysdeps/gnu/errlist.c:157
++#: nis/nis_error.h:11 nis/ypclnt.c:877 sysdeps/gnu/errlist.c:157
+ msgid "Permission denied"
+ msgstr "S’ha denegat el permís"
+@@ -3356,138 +3460,138 @@
+ msgid "Master server busy, full dump rescheduled."
+ msgstr "El servidor mestre es troba ocupat, es replanifica el bolcat complet"
+-#: nis/nis_local_names.c:122
++#: nis/nis_local_names.c:121
+ #, c-format
+ msgid "LOCAL entry for UID %d in directory %s not unique\n"
+ msgstr "L’entrada LOCAL de l’UID %d al directori «%s» no és única\n"
+ # ivb (2001/10/30)
+ # ivb  Crec que es refereix a un tipus de servei de noms -> masculí.
+-#: nis/nis_print.c:51
++#: nis/nis_print.c:50
+ msgid "UNKNOWN"
+ msgstr "DESCONEGUT"
+ # ivb (2001/11/01)
+ # ivb  D'acord amb «nis/rpcsvc/nis_object.x».
+-#: nis/nis_print.c:109
++#: nis/nis_print.c:108
+ msgid "BOGUS OBJECT\n"
+ msgstr "OBJECTE NO INICIAT\n"
+-#: nis/nis_print.c:112
++#: nis/nis_print.c:111
+ msgid "NO OBJECT\n"
+ msgstr "CAP OBJECTE\n"
+-#: nis/nis_print.c:115
++#: nis/nis_print.c:114
+ msgid "DIRECTORY\n"
+ msgstr "DIRECTORI\n"
+-#: nis/nis_print.c:118
++#: nis/nis_print.c:117
+ msgid "GROUP\n"
+ msgstr "GRUP\n"
+-#: nis/nis_print.c:121
++#: nis/nis_print.c:120
+ msgid "TABLE\n"
+ msgstr "TAULA\n"
+-#: nis/nis_print.c:124
++#: nis/nis_print.c:123
+ msgid "ENTRY\n"
+ msgstr "ENTRADA\n"
+-#: nis/nis_print.c:127
++#: nis/nis_print.c:126
+ msgid "LINK\n"
+ msgstr "ENLLAÇ\n"
+-#: nis/nis_print.c:130
++#: nis/nis_print.c:129
+ msgid "PRIVATE\n"
+ msgstr "PRIVAT\n"
+-#: nis/nis_print.c:133
++#: nis/nis_print.c:132
+ msgid "(Unknown object)\n"
+ msgstr "(Objecte desconegut)\n"
+-#: nis/nis_print.c:167
++#: nis/nis_print.c:166
+ #, c-format
+ msgid "Name : `%s'\n"
+ msgstr "Nom   : «%s»\n"
+-#: nis/nis_print.c:168
++#: nis/nis_print.c:167
+ #, c-format
+ msgid "Type : %s\n"
+ msgstr "Tipus : %s\n"
+-#: nis/nis_print.c:173
++#: nis/nis_print.c:172
+ msgid "Master Server :\n"
+ msgstr "Servidor mestre :\n"
+ # ivb (2001/10/28)
+ # ivb  Es refereix a un servidor rèplica, no a replicar.
+-#: nis/nis_print.c:175
++#: nis/nis_print.c:174
+ msgid "Replicate :\n"
+ msgstr "Rèplica :\n"
+-#: nis/nis_print.c:176
++#: nis/nis_print.c:175
+ #, c-format
+ msgid "\tName       : %s\n"
+ msgstr "\tNom         : %s\n"
+-#: nis/nis_print.c:177
++#: nis/nis_print.c:176
+ msgid "\tPublic Key : "
+ msgstr "\tClau pública: "
+-#: nis/nis_print.c:181
++#: nis/nis_print.c:180
+ msgid "None.\n"
+ msgstr "Cap.\n"
+ # ivb (2001/10/28)
+ # ivb  Xicoteta diferència-Home de l'infern ;)
+-#: nis/nis_print.c:184
++#: nis/nis_print.c:183
+ #, c-format
+ msgid "Diffie-Hellmann (%d bits)\n"
+ msgstr "Diffie‐Hellmann (%d bits)\n"
+-#: nis/nis_print.c:189
++#: nis/nis_print.c:188
+ #, c-format
+ msgid "RSA (%d bits)\n"
+ msgstr "RSA (%d bits)\n"
+-#: nis/nis_print.c:192
++#: nis/nis_print.c:191
+ msgid "Kerberos.\n"
+ msgstr "Kerberos.\n"
+ # ivb (2001/10/30)
+ # ivb  Es refereix a una clau pública -> femení.
+-#: nis/nis_print.c:195
++#: nis/nis_print.c:194
+ #, c-format
+ msgid "Unknown (type = %d, bits = %d)\n"
+ msgstr "Desconeguda (tipus = %d, bits = %d)\n"
+-#: nis/nis_print.c:206
++#: nis/nis_print.c:205
+ #, c-format
+ msgid "\tUniversal addresses (%u)\n"
+ msgstr "\tAdreces universals (%u)\n"
+-#: nis/nis_print.c:228
++#: nis/nis_print.c:227
+ msgid "Time to live : "
+ msgstr "Temps de vida : "
+-#: nis/nis_print.c:230
++#: nis/nis_print.c:229
+ msgid "Default Access rights :\n"
+ msgstr "Drets d’accés per defecte :\n"
+-#: nis/nis_print.c:239
++#: nis/nis_print.c:238
+ #, c-format
+ msgid "\tType         : %s\n"
+ msgstr "\tTipus        : %s\n"
+-#: nis/nis_print.c:240
++#: nis/nis_print.c:239
+ msgid "\tAccess rights: "
+ msgstr "\tDrets d’accés: "
+-#: nis/nis_print.c:254
++#: nis/nis_print.c:253
+ msgid "Group Flags :"
+ msgstr "Senyaladors del grup :"
+-#: nis/nis_print.c:257
++#: nis/nis_print.c:256
+ msgid ""
+ "\n"
+ "Group Members :\n"
+@@ -3495,12 +3599,12 @@
+ "\n"
+ "Membres del grup :\n"
+-#: nis/nis_print.c:269
++#: nis/nis_print.c:268
+ #, c-format
+ msgid "Table Type          : %s\n"
+ msgstr "Tipus de taula      : %s\n"
+-#: nis/nis_print.c:270
++#: nis/nis_print.c:269
+ #, c-format
+ msgid "Number of Columns   : %d\n"
+ msgstr "Nombre de columnes  : %d\n"
+@@ -3508,85 +3612,85 @@
+ # ivb (2000/10/28)
+ # ivb  Açò és correcte segons nis/rpcsvc/nis_object.x, és «caràcter
+ # ivb  separador» i no «separador de caràcters».
+-#: nis/nis_print.c:271
++#: nis/nis_print.c:270
+ #, c-format
+ msgid "Character Separator : %c\n"
+ msgstr "Caràcter separador  : %c\n"
+-#: nis/nis_print.c:272
++#: nis/nis_print.c:271
+ #, c-format
+ msgid "Search Path         : %s\n"
+ msgstr "Camí de cerca       : %s\n"
+-#: nis/nis_print.c:273
++#: nis/nis_print.c:272
+ msgid "Columns             :\n"
+ msgstr "Columnes            :\n"
+-#: nis/nis_print.c:276
++#: nis/nis_print.c:275
+ #, c-format
+ msgid "\t[%d]\tName          : %s\n"
+ msgstr "\t[%d]\tNom           : %s\n"
+-#: nis/nis_print.c:278
++#: nis/nis_print.c:277
+ msgid "\t\tAttributes    : "
+ msgstr "\t\tAtributs      : "
+-#: nis/nis_print.c:280
++#: nis/nis_print.c:279
+ msgid "\t\tAccess Rights : "
+ msgstr "\t\tDrets d’accés : "
+-#: nis/nis_print.c:290
++#: nis/nis_print.c:289
+ msgid "Linked Object Type : "
+ msgstr "Tipus de l’objecte enllaçat : "
+-#: nis/nis_print.c:292
++#: nis/nis_print.c:291
+ #, c-format
+ msgid "Linked to : %s\n"
+ msgstr "Enllaçat amb : %s\n"
+-#: nis/nis_print.c:302
++#: nis/nis_print.c:301
+ #, c-format
+ msgid "\tEntry data of type %s\n"
+ msgstr "\tDades de l’entrada de tipus «%s»\n"
+-#: nis/nis_print.c:305
++#: nis/nis_print.c:304
+ #, c-format
+ msgid "\t[%u] - [%u bytes] "
+ msgstr "\t[%u] — [%u octets] "
+-#: nis/nis_print.c:308
++#: nis/nis_print.c:307
+ msgid "Encrypted data\n"
+ msgstr "Dades xifrades\n"
+-#: nis/nis_print.c:310
++#: nis/nis_print.c:309
+ msgid "Binary data\n"
+ msgstr "Dades binàries\n"
+-#: nis/nis_print.c:326
++#: nis/nis_print.c:325
+ #, c-format
+ msgid "Object Name   : %s\n"
+ msgstr "Nom de l’objecte : %s\n"
+-#: nis/nis_print.c:327
++#: nis/nis_print.c:326
+ #, c-format
+ msgid "Directory     : %s\n"
+ msgstr "Directori        : %s\n"
+-#: nis/nis_print.c:328
++#: nis/nis_print.c:327
+ #, c-format
+ msgid "Owner         : %s\n"
+ msgstr "Propietari       : %s\n"
+-#: nis/nis_print.c:329
++#: nis/nis_print.c:328
+ #, c-format
+ msgid "Group         : %s\n"
+ msgstr "Grup             : %s\n"
+-#: nis/nis_print.c:330
++#: nis/nis_print.c:329
+ msgid "Access Rights : "
+ msgstr "Drets d’accés    : "
+-#: nis/nis_print.c:332
++#: nis/nis_print.c:331
+ #, c-format
+ msgid ""
+ "\n"
+@@ -3595,36 +3699,36 @@
+ "\n"
+ "Temps de vida    : "
+-#: nis/nis_print.c:335
++#: nis/nis_print.c:334
+ #, c-format
+ msgid "Creation Time : %s"
+ msgstr "Data de creació   : %s"
+-#: nis/nis_print.c:337
++#: nis/nis_print.c:336
+ #, c-format
+ msgid "Mod. Time     : %s"
+ msgstr "Data modificació : %s"
+-#: nis/nis_print.c:338
++#: nis/nis_print.c:337
+ msgid "Object Type   : "
+ msgstr "Tipus d’objecte  : "
+-#: nis/nis_print.c:358
++#: nis/nis_print.c:357
+ #, c-format
+ msgid "    Data Length = %u\n"
+ msgstr "    Longitud de les dades = %u\n"
+-#: nis/nis_print.c:372
++#: nis/nis_print.c:371
+ #, c-format
+ msgid "Status            : %s\n"
+ msgstr "Estat             : %s\n"
+-#: nis/nis_print.c:373
++#: nis/nis_print.c:372
+ #, c-format
+ msgid "Number of objects : %u\n"
+ msgstr "Nombre d’objectes : %u\n"
+-#: nis/nis_print.c:377
++#: nis/nis_print.c:376
+ #, c-format
+ msgid "Object #%d:\n"
+ msgstr "Objecte #%d:\n"
+@@ -3682,279 +3786,287 @@
+ msgid "    No recursive nonmembers\n"
+ msgstr "    No hi ha no‐membres recursius.\n"
+-#: nis/nss_nisplus/nisplus-publickey.c:101
+-#: nis/nss_nisplus/nisplus-publickey.c:183
++#: nis/nss_nisplus/nisplus-publickey.c:100
++#: nis/nss_nisplus/nisplus-publickey.c:182
+ #, c-format
+ msgid "DES entry for netname %s not unique\n"
+ msgstr "l’entrada DES per al nom de xarxa «%s» no és única\n"
+-#: nis/nss_nisplus/nisplus-publickey.c:220
++#: nis/nss_nisplus/nisplus-publickey.c:219
+ #, c-format
+ msgid "netname2user: missing group id list in `%s'"
+ msgstr "netname2user: manca la llista d’identificadors de grup a «%s»."
+-#: nis/nss_nisplus/nisplus-publickey.c:302
+-#: nis/nss_nisplus/nisplus-publickey.c:308
+-#: nis/nss_nisplus/nisplus-publickey.c:373
+-#: nis/nss_nisplus/nisplus-publickey.c:382
++#: nis/nss_nisplus/nisplus-publickey.c:301
++#: nis/nss_nisplus/nisplus-publickey.c:307
++#: nis/nss_nisplus/nisplus-publickey.c:372
++#: nis/nss_nisplus/nisplus-publickey.c:381
+ #, c-format
+ msgid "netname2user: (nis+ lookup): %s\n"
+ msgstr "netname2user: (cerca nis+): %s\n"
+-#: nis/nss_nisplus/nisplus-publickey.c:321
++#: nis/nss_nisplus/nisplus-publickey.c:320
+ #, c-format
+ msgid "netname2user: DES entry for %s in directory %s not unique"
+ msgstr "netname2user: l’entrada DES de «%s» al directori «%s» no és única"
+-#: nis/nss_nisplus/nisplus-publickey.c:339
++#: nis/nss_nisplus/nisplus-publickey.c:338
+ #, c-format
+ msgid "netname2user: principal name `%s' too long"
+ msgstr "netname2user: el nom principal «%s» és massa llarg"
+-#: nis/nss_nisplus/nisplus-publickey.c:395
++#: nis/nss_nisplus/nisplus-publickey.c:394
+ #, c-format
+ msgid "netname2user: LOCAL entry for %s in directory %s not unique"
+ msgstr "netname2user: l’entrada LOCAL de «%s» al directori «%s» no és única"
+-#: nis/nss_nisplus/nisplus-publickey.c:402
++#: nis/nss_nisplus/nisplus-publickey.c:401
+ msgid "netname2user: should not have uid 0"
+ msgstr "netname2user: no ha de tenir l’UID 0"
+-#: nis/ypclnt.c:836
++#: nis/ypclnt.c:835
+ msgid "Request arguments bad"
+ msgstr "Els arguments de la petició són incorrectes"
+-#: nis/ypclnt.c:839
++#: nis/ypclnt.c:838
+ msgid "RPC failure on NIS operation"
+ msgstr "El procediment RPC ha fallat en una operació NIS"
+-#: nis/ypclnt.c:842
++#: nis/ypclnt.c:841
+ msgid "Can't bind to server which serves this domain"
+ msgstr "No s’ha pogut enllaçar amb el servidor d’aquest domini"
+-#: nis/ypclnt.c:845
++#: nis/ypclnt.c:844
+ msgid "No such map in server's domain"
+ msgstr "El mapa no és al domini del servidor"
+-#: nis/ypclnt.c:848
++#: nis/ypclnt.c:847
+ msgid "No such key in map"
+ msgstr "La clau no és al mapa"
+-#: nis/ypclnt.c:851
++#: nis/ypclnt.c:850
+ msgid "Internal NIS error"
+ msgstr "Error intern de NIS"
+-#: nis/ypclnt.c:854
++#: nis/ypclnt.c:853
+ msgid "Local resource allocation failure"
+ msgstr "No s’ha pogut assignar un recurs local"
+-#: nis/ypclnt.c:857
++#: nis/ypclnt.c:856
+ msgid "No more records in map database"
+ msgstr "No hi ha més registres a la base de dades del mapa"
+-#: nis/ypclnt.c:860
++#: nis/ypclnt.c:859
+ msgid "Can't communicate with portmapper"
+ msgstr "No s’ha pogut comunicar amb el mapador de ports"
+-#: nis/ypclnt.c:863
++#: nis/ypclnt.c:862
+ msgid "Can't communicate with ypbind"
+ msgstr "No s’ha pogut comunicar amb «ypbind»"
+-#: nis/ypclnt.c:866
++#: nis/ypclnt.c:865
+ msgid "Can't communicate with ypserv"
+ msgstr "No s’ha pogut comunicar amb «ypserv»"
+-#: nis/ypclnt.c:869
++#: nis/ypclnt.c:868
+ msgid "Local domain name not set"
+ msgstr "No s’ha establert nom del domini local"
+-#: nis/ypclnt.c:872
++#: nis/ypclnt.c:871
+ msgid "NIS map database is bad"
+ msgstr "La base de dades de mapes NIS és feta malbé"
+-#: nis/ypclnt.c:875
++#: nis/ypclnt.c:874
+ msgid "NIS client/server version mismatch - can't supply service"
+ msgstr "Les versions de client i servidor NIS difereixen; no es pot donar servei"
+-#: nis/ypclnt.c:881
++#: nis/ypclnt.c:880
+ msgid "Database is busy"
+ msgstr "La base de dades es troba ocupada"
+-#: nis/ypclnt.c:884
++#: nis/ypclnt.c:883
+ msgid "Unknown NIS error code"
+ msgstr "Codi d’error desconegut de NIS"
+-#: nis/ypclnt.c:924
++#: nis/ypclnt.c:923
+ msgid "Internal ypbind error"
+ msgstr "Error intern d’«ypbind»"
+-#: nis/ypclnt.c:927
++#: nis/ypclnt.c:926
+ msgid "Domain not bound"
+ msgstr "El domini no és vinculat"
+-#: nis/ypclnt.c:930
++#: nis/ypclnt.c:929
+ msgid "System resource allocation failure"
+ msgstr "No s’han pogut assignar recursos del sistema"
+-#: nis/ypclnt.c:933
++#: nis/ypclnt.c:932
+ msgid "Unknown ypbind error"
+ msgstr "Error desconegut d’«ypbind»"
+-#: nis/ypclnt.c:974
++#: nis/ypclnt.c:973
+ msgid "yp_update: cannot convert host to netname\n"
+ msgstr "yp_update: no s’ha pogut convertir el nom d’estació a nom de xarxa\n"
+-#: nis/ypclnt.c:992
++#: nis/ypclnt.c:991
+ msgid "yp_update: cannot get server address\n"
+ msgstr "yp_update: no s’ha pogut obtenir l’adreça del servidor\n"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/aicache.c:83 nscd/hstcache.c:492
++#: nscd/aicache.c:82 nscd/hstcache.c:493
+ #, c-format
+ msgid "Haven't found \"%s\" in hosts cache!"
+ msgstr "no s’ha trobat «%s» a la memòria cau de «hosts»"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/aicache.c:85 nscd/hstcache.c:494
++#: nscd/aicache.c:84 nscd/hstcache.c:495
+ #, c-format
+ msgid "Reloading \"%s\" in hosts cache!"
+ msgstr "es torna a carregar «%s» a la memòria cau de «hosts»"
+ # La 2a. és de l’estil de «GETPWBYNAME», la 3a. com «passwd».  ivb
+ # Al darrere pot anar « (first)» o no.  ivb
+-#: nscd/cache.c:150
++#: nscd/cache.c:151
+ #, c-format
+ msgid "add new entry \"%s\" of type %s for %s to cache%s"
+ msgstr "s’afegeix una nova entrada «%s» de tipus %s a la memòria cau de «%s»%s"
+ # FIXME: language-dependent construct  ivb
+ # Supose que vol dir «abans».  ivb
+-#: nscd/cache.c:152
++#: nscd/cache.c:153
+ msgid " (first)"
+ msgstr " (primer)"
+-#: nscd/cache.c:276 nscd/connections.c:861
++#: nscd/cache.c:285 nscd/connections.c:1002
+ #, c-format
+ msgid "cannot stat() file `%s': %s"
+ msgstr "ha fallat stat() sobre el fitxer «%s»: %s"
+-#: nscd/cache.c:318
++#: nscd/cache.c:331
+ #, c-format
+ msgid "pruning %s cache; time %ld"
+ msgstr "neteja de la memòria cau de «%s», hora %ld"
+ # La 2a. és de l’estil de «GETPWBYNAME».  ivb
+-#: nscd/cache.c:347
++#: nscd/cache.c:360
+ #, c-format
+ msgid "considering %s entry \"%s\", timeout %<PRIu64>"
+ msgstr "es considera l’entrada %s «%s», expiració %<PRIu64>"
+-#: nscd/connections.c:565
++#: nscd/connections.c:570
+ #, c-format
+ msgid "invalid persistent database file \"%s\": %s"
+ msgstr "el fitxer de base de dades persistent «%s» no és vàlid: %s"
+-#: nscd/connections.c:573
++#: nscd/connections.c:578
+ msgid "uninitialized header"
+ msgstr "la capçalera no es troba iniciada"
+-#: nscd/connections.c:578
++#: nscd/connections.c:583
+ msgid "header size does not match"
+ msgstr "la mida de la capçalera no concorda"
+-#: nscd/connections.c:588
++#: nscd/connections.c:593
+ msgid "file size does not match"
+ msgstr "la mida del fitxer no concorda"
+-#: nscd/connections.c:605
++#: nscd/connections.c:610
+ msgid "verification failed"
+ msgstr "la verificació ha fallat"
+-#: nscd/connections.c:619
++#: nscd/connections.c:624
+ #, c-format
+ msgid "suggested size of table for database %s larger than the persistent database's table"
+ msgstr "la mida de taula suggerida per a la base de dades «%s» és major que la de la base de dades persistent"
+-#: nscd/connections.c:630 nscd/connections.c:715
++#: nscd/connections.c:635 nscd/connections.c:720
+ #, c-format
+ msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+ msgstr "no s’ha pogut crear un descriptor de només lectura per a «%s»; no s’emprarà mmap()"
+-#: nscd/connections.c:646
++#: nscd/connections.c:651
+ #, c-format
+ msgid "cannot access '%s'"
+ msgstr "no s’ha pogut accedir a «%s»"
+-#: nscd/connections.c:694
++#: nscd/connections.c:699
+ #, c-format
+ msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
+ msgstr "la base de dades de «%s» està corrupta o sent emprada concurrentment; elimineu «%s» manualment si cal i reinicieu"
+-#: nscd/connections.c:701
++#: nscd/connections.c:706
+ #, c-format
+ msgid "cannot create %s; no persistent database used"
+ msgstr "no s’ha pogut crear «%s»; no s’emprarà una base de dades persistent"
+-#: nscd/connections.c:704
++#: nscd/connections.c:709
+ #, c-format
+ msgid "cannot create %s; no sharing possible"
+ msgstr "no s’ha pogut crear «%s»; no es podrà compartir"
+-#: nscd/connections.c:775
++#: nscd/connections.c:780
+ #, c-format
+ msgid "cannot write to database file %s: %s"
+ msgstr "no s’ha pogut escriure al fitxer de base de dades «%s»: %s"
+-#: nscd/connections.c:814
++#: nscd/connections.c:819
+ #, c-format
+ msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:897
++#: nscd/connections.c:868
+ #, c-format
+ msgid "cannot open socket: %s"
+ msgstr "no s’ha pogut obrir el connector: %s"
+-#: nscd/connections.c:917
++#: nscd/connections.c:888 nscd/connections.c:952
+ #, c-format
+ msgid "cannot change socket to nonblocking mode: %s"
+ msgstr "no s’ha pogut canviar el connector al mode no blocador: %s"
+-#: nscd/connections.c:925
++#: nscd/connections.c:896 nscd/connections.c:962
+ #, c-format
+ msgid "cannot set socket to close on exec: %s"
+ msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s"
+-#: nscd/connections.c:938
++#: nscd/connections.c:909
+ #, c-format
+ msgid "cannot enable socket to accept connections: %s"
+ msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s"
+-#: nscd/connections.c:1039
++# Cap usa quote().  ivb
++# Missatge de depuració.  ivb
++# Allò traçat és el fitxer, segons el codi.  ivb
++#: nscd/connections.c:986
+ #, c-format
++msgid "register trace file %s for database %s"
++msgstr "es registra el fitxer traçat «%s» per a la base de dades «%s»"
++
++#: nscd/connections.c:1116
++#, c-format
+ msgid "provide access to FD %d, for %s"
+ msgstr "es proporciona accés al descriptor de fitxer %d, per a «%s»"
+-#: nscd/connections.c:1051
++#: nscd/connections.c:1128
+ #, c-format
+ msgid "cannot handle old request version %d; current version is %d"
+ msgstr "no s’ha pogut atendre la petició amb versió antiga %d; la versió actual és %d"
+-#: nscd/connections.c:1073
++#: nscd/connections.c:1150
+ #, c-format
+ msgid "request from %ld not handled due to missing permission"
+ msgstr "no s’atén la petició de %ld per manca de permissos"
+-#: nscd/connections.c:1078
++#: nscd/connections.c:1155
+ #, c-format
+ msgid "request from '%s' [%ld] not handled due to missing permission"
+ msgstr "no s’atén la petició de «%s» (%ld) per manca de permissos"
+-#: nscd/connections.c:1083
++#: nscd/connections.c:1160
+ msgid "request not handled due to missing permission"
+ msgstr "no s’atén la petició per manca de permissos"
+-#: nscd/connections.c:1121 nscd/connections.c:1174
++#: nscd/connections.c:1198 nscd/connections.c:1251
+ #, c-format
+ msgid "cannot write result: %s"
+ msgstr "no s’ha pogut escriure el resultat: %s"
+@@ -3964,245 +4076,273 @@
+ # ivb  dimoni «nscd» per consultar la memòria cau o invalidar-la.  Per
+ # ivb  això faig servir «programa de control» (com «ndc» amb «named» o
+ # ivb  «chronyc» amb «chronyd»).
+-#: nscd/connections.c:1257
++#: nscd/connections.c:1342
+ #, c-format
+ msgid "error getting caller's id: %s"
+ msgstr "error en obtenir l’identificador del programa de control: %s"
+-#: nscd/connections.c:1316
++#: nscd/connections.c:1402
+ #, c-format
+ msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut obrir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1330
++#: nscd/connections.c:1416
+ #, c-format
+ msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut llegir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1370
++#: nscd/connections.c:1456
+ #, c-format
+ msgid "cannot change to old UID: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut tornar a l’UID vell: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1380
++#: nscd/connections.c:1466
+ #, c-format
+ msgid "cannot change to old GID: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut tornar al GID vell: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1393
++#: nscd/connections.c:1479
+ #, c-format
+ msgid "cannot change to old working directory: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut tornar al directori vell de treball: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1439
++#: nscd/connections.c:1525
+ #, c-format
+ msgid "re-exec failed: %s; disabling paranoia mode"
+ msgstr "ha fallat la reexecució: %s; s’inhabilita el mode paranoic"
+-#: nscd/connections.c:1448
++#: nscd/connections.c:1534
+ #, c-format
+ msgid "cannot change current working directory to \"/\": %s"
+ msgstr "no s’ha pogut canviar el directori de treball a «/»: %s"
+-#: nscd/connections.c:1641
++#: nscd/connections.c:1727
+ #, c-format
+ msgid "short read while reading request: %s"
+ msgstr "lectura incompleta en llegir la petició: %s"
+-#: nscd/connections.c:1674
++#: nscd/connections.c:1760
+ #, c-format
+ msgid "key length in request too long: %d"
+ msgstr "la longitud de la clau de la petició és massa gran: %d"
+-#: nscd/connections.c:1687
++#: nscd/connections.c:1773
+ #, c-format
+ msgid "short read while reading request key: %s"
+ msgstr "lectura incompleta en llegir la clau de la petició: %s"
+-#: nscd/connections.c:1696
++#: nscd/connections.c:1782
+ #, c-format
+ msgid "handle_request: request received (Version = %d) from PID %ld"
+ msgstr "handle_request: s’ha rebut una petició (amb versió %d) del PID %ld"
+-#: nscd/connections.c:1701
++#: nscd/connections.c:1787
+ #, c-format
+ msgid "handle_request: request received (Version = %d)"
+ msgstr "handle_request: s’ha rebut una petició (amb versió %d)"
+-#: nscd/connections.c:1901 nscd/connections.c:2099
++#: nscd/connections.c:1999 nscd/connections.c:2227
+ #, c-format
+ msgid "disabled inotify after read error %d"
+ msgstr "s’inhabilita «inotify» per l’error de lectura amb codi %d"
+-#: nscd/connections.c:2228
++#: nscd/connections.c:2374
+ msgid "could not initialize conditional variable"
+ msgstr "no s’ha pogut iniciar la variable condicional"
+-#: nscd/connections.c:2236
++#: nscd/connections.c:2382
+ msgid "could not start clean-up thread; terminating"
+ msgstr "no s’ha pogut iniciar el fil d’execució de neteja; s’està finalitzant"
+-#: nscd/connections.c:2250
++#: nscd/connections.c:2396
+ msgid "could not start any worker thread; terminating"
+ msgstr "no s’ha pogut iniciar cap fil d’execució treballador; s’està finalitzant"
+-#: nscd/connections.c:2301 nscd/connections.c:2302 nscd/connections.c:2319
+-#: nscd/connections.c:2328 nscd/connections.c:2346 nscd/connections.c:2357
+-#: nscd/connections.c:2368
++#: nscd/connections.c:2447 nscd/connections.c:2448 nscd/connections.c:2465
++#: nscd/connections.c:2474 nscd/connections.c:2492 nscd/connections.c:2503
++#: nscd/connections.c:2514
+ #, c-format
+ msgid "Failed to run nscd as user '%s'"
+ msgstr "no s’ha pogut executar «nscd» com a l’usuari «%s»"
+-#: nscd/connections.c:2320
++#: nscd/connections.c:2466
+ #, c-format
+ msgid "initial getgrouplist failed"
+ msgstr "ha fallat getgrouplist() inicial"
+-#: nscd/connections.c:2329
++#: nscd/connections.c:2475
+ #, c-format
+ msgid "getgrouplist failed"
+ msgstr "ha fallat getgrouplist()"
+-#: nscd/connections.c:2347
++#: nscd/connections.c:2493
+ #, c-format
+ msgid "setgroups failed"
+ msgstr "ha fallat setgroups()"
+-#: nscd/grpcache.c:383 nscd/hstcache.c:439 nscd/initgrcache.c:406
+-#: nscd/pwdcache.c:378 nscd/servicescache.c:332
++#: nscd/grpcache.c:407 nscd/hstcache.c:440 nscd/initgrcache.c:411
++#: nscd/pwdcache.c:383 nscd/servicescache.c:338
+ #, c-format
+ msgid "short write in %s: %s"
+ msgstr "escriptura incompleta a «%s»: %s"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/grpcache.c:428 nscd/initgrcache.c:78
++#: nscd/grpcache.c:452 nscd/initgrcache.c:77
+ #, c-format
+ msgid "Haven't found \"%s\" in group cache!"
+ msgstr "no s’ha trobat «%s» a la memòria cau de «group»"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/grpcache.c:430 nscd/initgrcache.c:80
++#: nscd/grpcache.c:454 nscd/initgrcache.c:79
+ #, c-format
+ msgid "Reloading \"%s\" in group cache!"
+ msgstr "es torna a carregar «%s» a la memòria cau de «group»"
+-#: nscd/grpcache.c:509
++#: nscd/grpcache.c:533
+ #, c-format
+ msgid "Invalid numeric gid \"%s\"!"
+ msgstr "«%s» no és un identificador numèric de grup vàlid"
+-#: nscd/mem.c:431
++#: nscd/mem.c:425
+ #, c-format
+ msgid "freed %zu bytes in %s cache"
+ msgstr "s’han alliberat %zu octets de la memòria cau de «%s»"
+-#: nscd/mem.c:574
++#: nscd/mem.c:568
+ #, c-format
+ msgid "no more memory for database '%s'"
+ msgstr "no resta memòria per a la base de dades «%s»"
++# El nom de la base de dades s’usa més a sovint que la descripció.  ivb
++#: nscd/netgroupcache.c:77
++#, c-format
++msgid "Haven't found \"%s\" in netgroup cache!"
++msgstr "no s’ha trobat «%s» a la memòria cau de «netgroup»"
++
++# El nom de la base de dades s’usa més a sovint que la descripció.  ivb
++#: nscd/netgroupcache.c:79
++#, c-format
++msgid "Reloading \"%s\" in netgroup cache!"
++msgstr "es torna a carregar «%s» a la memòria cau de «netgroup»"
++
++# El nom de la base de dades s’usa més a sovint que la descripció.  ivb
++#: nscd/netgroupcache.c:467
++#, c-format
++msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
++msgstr "no s’ha trobat «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
++
++# El nom de la base de dades s’usa més a sovint que la descripció.  ivb
++#: nscd/netgroupcache.c:470
++#, c-format
++msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
++msgstr "es torna a carregar «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
++
+ # Més ajudes.  ivb
+-#: nscd/nscd.c:101
++#: nscd/nscd.c:116
+ msgid "Read configuration data from NAME"
+ msgstr "Llegeix les dades de configuració de NOM."
+-#: nscd/nscd.c:103
++#: nscd/nscd.c:118
+ msgid "Do not fork and display messages on the current tty"
+ msgstr "No fa fork() i mostra els missatges al terminal actual."
++#: nscd/nscd.c:120
++msgid "Do not fork, but otherwise behave like a daemon"
++msgstr "No fa fork() però continua comportant‐se com un dimoni."
++
+ # ivb (2001/10/30)
+ # ivb  Es refereix al _nombre_ de fils a llançar.
+-#: nscd/nscd.c:104
++#: nscd/nscd.c:121
+ msgid "NUMBER"
+ msgstr "NOMBRE"
+-#: nscd/nscd.c:104
++#: nscd/nscd.c:121
+ msgid "Start NUMBER threads"
+ msgstr "Llança NOMBRE fils d’exeució."
+-#: nscd/nscd.c:105
++#: nscd/nscd.c:122
+ msgid "Shut the server down"
+ msgstr "Finalitza el servidor."
+-#: nscd/nscd.c:106
++#: nscd/nscd.c:123
+ msgid "Print current configuration statistics"
+ msgstr "Mostra estadístiques de la configuració actual."
+-#: nscd/nscd.c:107
++#: nscd/nscd.c:124
+ msgid "TABLE"
+ msgstr "TAULA"
+-#: nscd/nscd.c:108
++#: nscd/nscd.c:125
+ msgid "Invalidate the specified cache"
+ msgstr "Invalida la memòria cau especificada."
+-#: nscd/nscd.c:109
++#: nscd/nscd.c:126
+ msgid "TABLE,yes"
+ msgstr "TAULA,yes"
+-#: nscd/nscd.c:110
++#: nscd/nscd.c:127
+ msgid "Use separate cache for each user"
+ msgstr "Empra una memòria cau diferent per a cada usuari."
+-#: nscd/nscd.c:115
++#: nscd/nscd.c:132
+ msgid "Name Service Cache Daemon."
+ msgstr "Dimoni de memòria cau del servei de noms."
+-#: nscd/nscd.c:147 nss/getent.c:952 nss/makedb.c:123
++#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:208
+ #, c-format
+ msgid "wrong number of arguments"
+ msgstr "el nombre d’arguments és incorrecte"
+-#: nscd/nscd.c:157
++#: nscd/nscd.c:174
+ #, c-format
+ msgid "failure while reading configuration file; this is fatal"
+ msgstr "error en llegir el fitxer de configuració; açò és fatal"
+-#: nscd/nscd.c:166
++#: nscd/nscd.c:183
+ #, c-format
+ msgid "already running"
+ msgstr "ja es troba en marxa"
+-#: nscd/nscd.c:181 nscd/nscd.c:236
++#: nscd/nscd.c:201 nscd/nscd.c:259
+ #, c-format
+ msgid "cannot fork"
+ msgstr "ha fallat fork()"
+-#: nscd/nscd.c:244
++#: nscd/nscd.c:268
+ #, c-format
+ msgid "cannot change current working directory to \"/\""
+ msgstr "no s’ha pogut canviar el directori de treball a «/»"
+-#: nscd/nscd.c:252
++#: nscd/nscd.c:276
+ msgid "Could not create log file"
+ msgstr "no s’ha pogut crear el fitxer de registre"
+-#: nscd/nscd.c:305 nscd/nscd.c:330 nscd/nscd_stat.c:174
++#: nscd/nscd.c:348 nscd/nscd.c:373 nscd/nscd_stat.c:173
+ #, c-format
+ msgid "Only root is allowed to use this option!"
+ msgstr "només root pot emprar aquesta opció"
+-#: nscd/nscd.c:345
++#: nscd/nscd.c:388
+ #, c-format
+ msgid "'%s' is not a known database"
+ msgstr "«%s» no és una base de dades coneguda"
+-#: nscd/nscd.c:370 nscd/nscd_stat.c:193
++#: nscd/nscd.c:413 nscd/nscd_stat.c:192
+ #, c-format
+ msgid "write incomplete"
+ msgstr "escriptura incompleta"
+-#: nscd/nscd.c:381
++#: nscd/nscd.c:424
+ #, c-format
+ msgid "cannot read invalidate ACK"
+ msgstr "no s’ha pogut llegir l’ACK d’invalidació"
+-#: nscd/nscd.c:387
++#: nscd/nscd.c:430
+ #, c-format
+ msgid "invalidation failed"
+ msgstr "la invalidació ha fallat"
+-#: nscd/nscd.c:397
++#: nscd/nscd.c:440
+ #, c-format
+ msgid "secure services not implemented anymore"
+ msgstr "ja no s’implementen els serveis segurs"
+@@ -4227,60 +4367,55 @@
+ msgid "Must specify user name for stat-user option"
+ msgstr "cal especificar un nom d’usuari per a l’opció «stat-user»"
+-#: nscd/nscd_conf.c:245
++#: nscd/nscd_conf.c:258
+ #, c-format
+-msgid "invalid value for 'reload-count': %u"
+-msgstr "el valor de «reload-count» no és vàlid: %u"
+-
+-#: nscd/nscd_conf.c:260
+-#, c-format
+ msgid "Must specify value for restart-interval option"
+ msgstr "cal especificar un valor per a l’opció «restart-interval»"
+-#: nscd/nscd_conf.c:274
++#: nscd/nscd_conf.c:272
+ #, c-format
+ msgid "Unknown option: %s %s %s"
+ msgstr "l’opció no és coneguda: %s %s %s"
+-#: nscd/nscd_conf.c:287
++#: nscd/nscd_conf.c:285
+ #, c-format
+ msgid "cannot get current working directory: %s; disabling paranoia mode"
+ msgstr "no s’ha pogut obtenir el directori de treball actual: %s; s’inhabilita el mode paranoic"
+-#: nscd/nscd_conf.c:307
++#: nscd/nscd_conf.c:305
+ #, c-format
+ msgid "maximum file size for %s database too small"
+ msgstr "la mida màxima de fitxer per a la base de dades «%s» és massa menuda"
+-#: nscd/nscd_stat.c:143
++#: nscd/nscd_stat.c:142
+ #, c-format
+ msgid "cannot write statistics: %s"
+ msgstr "no s’han pogut escriure les estadístiques: %s"
+-#: nscd/nscd_stat.c:158
++#: nscd/nscd_stat.c:157
+ msgid "yes"
+ msgstr "sí"
+-#: nscd/nscd_stat.c:159
++#: nscd/nscd_stat.c:158
+ msgid "no"
+ msgstr "no"
+-#: nscd/nscd_stat.c:170
++#: nscd/nscd_stat.c:169
+ #, c-format
+ msgid "Only root or %s is allowed to use this option!"
+ msgstr "només root o %s pot emprar aquesta opció"
+-#: nscd/nscd_stat.c:181
++#: nscd/nscd_stat.c:180
+ #, c-format
+ msgid "nscd not running!\n"
+ msgstr "nscd no està en marxa\n"
+-#: nscd/nscd_stat.c:205
++#: nscd/nscd_stat.c:204
+ #, c-format
+ msgid "cannot read statistics data"
+ msgstr "no s’han pogut llegir les dades estadístiques"
+-#: nscd/nscd_stat.c:208
++#: nscd/nscd_stat.c:207
+ #, c-format
+ msgid ""
+ "nscd configuration:\n"
+@@ -4291,28 +4426,28 @@
+ "\n"
+ "%15d  nivell de depuració del servidor\n"
+-#: nscd/nscd_stat.c:232
++#: nscd/nscd_stat.c:231
+ #, c-format
+ msgid "%3ud %2uh %2um %2lus  server runtime\n"
+ msgstr "%3ud %2uh %2um %2lus  de funcionament del servidor\n"
+-#: nscd/nscd_stat.c:235
++#: nscd/nscd_stat.c:234
+ #, c-format
+ msgid "    %2uh %2um %2lus  server runtime\n"
+ msgstr "    %2uh %2um %2lus  de funcionament del servidor\n"
+-#: nscd/nscd_stat.c:237
++#: nscd/nscd_stat.c:236
+ #, c-format
+ msgid "        %2um %2lus  server runtime\n"
+ msgstr "        %2um %2lus  de funcionament del servidor\n"
+-#: nscd/nscd_stat.c:239
++#: nscd/nscd_stat.c:238
+ #, c-format
+ msgid "            %2lus  server runtime\n"
+ msgstr "            %2lus  de funcionament del servidor\n"
+ # FIXME: interval, not internal.  ivb
+-#: nscd/nscd_stat.c:241
++#: nscd/nscd_stat.c:240
+ #, c-format
+ msgid ""
+ "%15d  current number of threads\n"
+@@ -4330,7 +4465,7 @@
+ "%15u  nombre de recàrregues\n"
+ # El primer camp és passwd, group, shadow...  ivb
+-#: nscd/nscd_stat.c:276
++#: nscd/nscd_stat.c:275
+ #, c-format
+ msgid ""
+ "\n"
+@@ -4382,98 +4517,98 @@
+ "%15s  comprovar «/etc/%s» per si hi ha hagut canvis?\n"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/pwdcache.c:423
++#: nscd/pwdcache.c:428
+ #, c-format
+ msgid "Haven't found \"%s\" in password cache!"
+ msgstr "no s’ha trobat «%s» a la memòria cau de «passwd»"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/pwdcache.c:425
++#: nscd/pwdcache.c:430
+ #, c-format
+ msgid "Reloading \"%s\" in password cache!"
+ msgstr "es torna a carregar «%s» a la memòria cau de «passwd»"
+-#: nscd/pwdcache.c:506
++#: nscd/pwdcache.c:511
+ #, c-format
+ msgid "Invalid numeric uid \"%s\"!"
+ msgstr "«%s» no és un identificador numèric d’usuari vàlid"
+-#: nscd/selinux.c:156
++#: nscd/selinux.c:160
+ #, c-format
+ msgid "Failed opening connection to the audit subsystem: %m"
+ msgstr "no s’ha pogut obrir una connexió amb el sub‐sistema d’auditoria: %m"
+-#: nscd/selinux.c:177
++#: nscd/selinux.c:181
+ msgid "Failed to set keep-capabilities"
+ msgstr "no s’han pogut establir les capacitats a mantenir"
+-#: nscd/selinux.c:178 nscd/selinux.c:241
++#: nscd/selinux.c:182 nscd/selinux.c:245
+ #, c-format
+ msgid "prctl(KEEPCAPS) failed"
+ msgstr "ha fallat prctl(KEEPCAPS)"
+-#: nscd/selinux.c:192
++#: nscd/selinux.c:196
+ msgid "Failed to initialize drop of capabilities"
+ msgstr "no s’ha pogut començar a renunciar a capacitats"
+-#: nscd/selinux.c:193
++#: nscd/selinux.c:197
+ #, c-format
+ msgid "cap_init failed"
+ msgstr "ha fallat cap_init()"
+-#: nscd/selinux.c:214 nscd/selinux.c:231
++#: nscd/selinux.c:218 nscd/selinux.c:235
+ msgid "Failed to drop capabilities"
+ msgstr "no s’ha pogunt renunciar a les capacitats"
+-#: nscd/selinux.c:215 nscd/selinux.c:232
++#: nscd/selinux.c:219 nscd/selinux.c:236
+ #, c-format
+ msgid "cap_set_proc failed"
+ msgstr "ha fallat cap_set_proc()"
+-#: nscd/selinux.c:240
++#: nscd/selinux.c:244
+ msgid "Failed to unset keep-capabilities"
+ msgstr "no s’han pogut desestablir les capacitats a mantenir"
+-#: nscd/selinux.c:256
++#: nscd/selinux.c:260
+ msgid "Failed to determine if kernel supports SELinux"
+ msgstr "no s’ha pogut determinar si el nucli accepta SELinux"
+-#: nscd/selinux.c:271
++#: nscd/selinux.c:275
+ #, c-format
+ msgid "Failed to start AVC thread"
+ msgstr "no s’ha pogut iniciar el fil d’execució de l’AVC"
+-#: nscd/selinux.c:293
++#: nscd/selinux.c:297
+ #, c-format
+ msgid "Failed to create AVC lock"
+ msgstr "no s’ha pogut crear el blocatge de l’AVC"
+-#: nscd/selinux.c:333
++#: nscd/selinux.c:337
+ #, c-format
+ msgid "Failed to start AVC"
+ msgstr "no s’ha pogut iniciar l’AVC"
+-#: nscd/selinux.c:335
++#: nscd/selinux.c:339
+ msgid "Access Vector Cache (AVC) started"
+ msgstr "s’ha iniciat la memòria cau de vectors d’accés (AVC)"
+-#: nscd/selinux.c:356
++#: nscd/selinux.c:360
+ msgid "Error getting context of socket peer"
+ msgstr "error en obtenir el context de l’extrem remot del connector"
+-#: nscd/selinux.c:361
++#: nscd/selinux.c:365
+ msgid "Error getting context of nscd"
+ msgstr "error en obtenir el context d’«nscd»"
+-#: nscd/selinux.c:367
++#: nscd/selinux.c:371
+ msgid "Error getting sid from context"
+ msgstr "error en obtenir el SID del context"
+-#: nscd/selinux.c:374
++#: nscd/selinux.c:378
+ msgid "compile-time support for database policy missing"
+ msgstr "no s’ha compiŀlat la compatibilitat amb polítiques de bases de dades"
+-#: nscd/selinux.c:407
++#: nscd/selinux.c:411
+ #, c-format
+ msgid ""
+ "\n"
+@@ -4501,70 +4636,79 @@
+ "%15u  fallades de CAV\n"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/servicescache.c:381
++#: nscd/servicescache.c:387
+ #, c-format
+ msgid "Haven't found \"%s\" in services cache!"
+ msgstr "no s’ha trobat «%s» a la memòria cau de «services»"
+ # El nom de la base de dades s’usa més a sovint que la descripció.  ivb
+-#: nscd/servicescache.c:383
++#: nscd/servicescache.c:389
+ #, c-format
+ msgid "Reloading \"%s\" in services cache!"
+ msgstr "es torna a carregar «%s» a la memòria cau de «services»"
+-#: nss/getent.c:54
++#: nss/getent.c:53
+ msgid "database [key ...]"
+ msgstr "BASE_DE_DADES [CLAU…]"
+ # Més ajudes.  ivb
+-#: nss/getent.c:59
++#: nss/getent.c:58
+ msgid "Service configuration to be used"
+ msgstr "Configuració a emprar del servei."
+-#: nss/getent.c:60
++#: nss/getent.c:59
+ msgid "disable IDN encoding"
+ msgstr "Inhabilita la codificació IDN."
+-#: nss/getent.c:65
++#: nss/getent.c:64
+ msgid "Get entries from administrative database."
+ msgstr "Obté entrades de les bases de dades d’administració."
+-#: nss/getent.c:149 nss/getent.c:479
++#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522
+ #, c-format
+ msgid "Enumeration not supported on %s\n"
+ msgstr "no es permet l’enumeració sobre «%s»\n"
+-#: nss/getent.c:866
++#: nss/getent.c:913
+ #, c-format
+ msgid "Unknown database name"
+ msgstr "el nom de la base de dades no és conegut"
+-#: nss/getent.c:896
++#: nss/getent.c:943
+ msgid "Supported databases:\n"
+ msgstr "Bases de dades acceptades:\n"
+-#: nss/getent.c:962
++#: nss/getent.c:1009
+ #, c-format
+ msgid "Unknown database: %s\n"
+ msgstr "la base de dades no és coneguda: %s\n"
+-#: nss/makedb.c:60
++#: nss/makedb.c:118
+ msgid "Convert key to lower case"
+ msgstr "Converteix la clau a minúscules."
+-#: nss/makedb.c:63
++#: nss/makedb.c:121
+ msgid "Do not print messages while building database"
+ msgstr "No mostra cap missatge mentre es crea la base de dades."
+-#: nss/makedb.c:65
++#: nss/makedb.c:123
+ msgid "Print content of database file, one entry a line"
+ msgstr "Mostra el contingut del fitxer de base de dades, a entrada per línia."
+-#: nss/makedb.c:70
+-msgid "Create simple DB database from textual input."
+-msgstr "Crea una base de dades DB simple partint de l’entrada textual."
++#: nss/makedb.c:124
++msgid "CHAR"
++msgstr "CARÀCTER"
+-#: nss/makedb.c:73
++# No tinc massa clar el significat.  ivb
++#: nss/makedb.c:125
++msgid "Generated line not part of iteration"
++msgstr "Línia generada a excloure de la iteració."
++
++#: nss/makedb.c:130
++msgid "Create simple database from textual input."
++msgstr "Crea una base de dades simple partint de l’entrada textual."
++
++#: nss/makedb.c:133
+ msgid ""
+ "INPUT-FILE OUTPUT-FILE\n"
+ "-o OUTPUT-FILE INPUT-FILE\n"
+@@ -4574,51 +4718,87 @@
+ "-o FITXER_EIXIDA FITXER_ENTRADA\n"
+ "-u FITXER_ENTRADA"
+-#: nss/makedb.c:142
++#: nss/makedb.c:229
+ #, c-format
+-msgid "No usable database library found."
+-msgstr "no s’ha trobat cap biblioteca usable de base de dades"
++msgid "cannot open database file `%s'"
++msgstr "no s’ha pogut obrir el fitxer de base de dades «%s»"
+-#: nss/makedb.c:149
++#: nss/makedb.c:274
+ #, c-format
+-msgid "cannot open database file `%s': %s"
+-msgstr "no s’ha pogut obrir el fitxer de base de dades «%s»: %s"
++msgid "no entries to be processed"
++msgstr "no hi ha cap entrada que processar"
+-#: nss/makedb.c:151
+-msgid "incorrectly formatted file"
+-msgstr "el fitxer no té un format vàlid"
++#: nss/makedb.c:284
++#, c-format
++msgid "cannot create temporary file name"
++msgstr "no s’ha pogut crear un nom de fitxer temporal"
+-#: nss/makedb.c:331
++#: nss/makedb.c:306
++#, c-format
++msgid "cannot stat newly created file"
++msgstr "ha fallat stat() sobre el nou fitxer temporal"
++
++#: nss/makedb.c:317
++#, c-format
++msgid "cannot rename temporary file"
++msgstr "no s’ha pogut reanomenar el fitxer temporal"
++
++#: nss/makedb.c:533 nss/makedb.c:556
++#, c-format
++msgid "cannot create search tree"
++msgstr "no s’ha pogut crear l’arbre de cerca"
++
++#: nss/makedb.c:562
+ msgid "duplicate key"
+ msgstr "la clau és duplicada"
+-#: nss/makedb.c:337
++#: nss/makedb.c:574
+ #, c-format
+-msgid "while writing database file"
+-msgstr "en escriure el fitxer de base dades"
+-
+-#: nss/makedb.c:348
+-#, c-format
+ msgid "problems while reading `%s'"
+ msgstr "problemes en llegir «%s»"
+-#: nss/makedb.c:368 nss/makedb.c:385
++#: nss/makedb.c:801
+ #, c-format
+-msgid "while reading database"
+-msgstr "en llegir la base de dades"
++msgid "failed to write new database file"
++msgstr "no s’ha pogut escriure el nou fitxer de base de dades"
+-#: posix/getconf.c:1036
++#: nss/makedb.c:814
+ #, c-format
++msgid "cannot stat database file"
++msgstr "ha fallat stat() sobre el fitxer de base de dades"
++
++#: nss/makedb.c:819
++#, c-format
++msgid "cannot map database file"
++msgstr "no s’ha pogut mapar el fitxer de base de dades"
++
++#: nss/makedb.c:822
++#, c-format
++msgid "file not a database file"
++msgstr "el fitxer no és un fitxer de base dades"
++
++#: nss/makedb.c:873
++#, c-format
++msgid "cannot set file creation context for `%s'"
++msgstr "no s’ha pogut establir el context de creació per a «%s»"
++
++#: ports/sysdeps/unix/sysv/linux/ia64/makecontext.c:62
++#, c-format
++msgid "makecontext: does not know how to handle more than 8 arguments\n"
++msgstr "makecontext: no es poden tractar més de 8 arguments\n"
++
++#: posix/getconf.c:1035
++#, c-format
+ msgid "Usage: %s [-v specification] variable_name [pathname]\n"
+ msgstr "Forma d’ús: %s [-v ESPECIFICACIÓ] NOM_DE_VARIABLE [CAMÍ]\n"
+ # S’alinea amb el nom de programa de dalt.  ivb
+-#: posix/getconf.c:1039
++#: posix/getconf.c:1038
+ #, c-format
+ msgid "       %s -a [pathname]\n"
+ msgstr "            %s -a [CAMÍ]\n"
+-#: posix/getconf.c:1115
++#: posix/getconf.c:1114
+ #, c-format
+ msgid ""
+ "Usage: getconf [-v SPEC] VAR\n"
+@@ -4637,152 +4817,152 @@
+ "de compiŀlació indicat.\n"
+ "\n"
+-#: posix/getconf.c:1173
++#: posix/getconf.c:1172
+ #, c-format
+ msgid "unknown specification \"%s\""
+ msgstr "l’especificació «%s» no és coneguda"
+-#: posix/getconf.c:1225
++#: posix/getconf.c:1224
+ #, c-format
+ msgid "Couldn't execute %s"
+ msgstr "no s’ha pogut executar «%s»"
+ # ivb (2001/11/01)
+ # ivb  Es refereix a variables de configuració -> femení.
+-#: posix/getconf.c:1269 posix/getconf.c:1285
++#: posix/getconf.c:1268 posix/getconf.c:1284
+ msgid "undefined"
+ msgstr "indefinida"
+-#: posix/getconf.c:1307
++#: posix/getconf.c:1306
+ #, c-format
+ msgid "Unrecognized variable `%s'"
+ msgstr "la variable «%s» no és reconeguda"
+-#: posix/getopt.c:594 posix/getopt.c:623
++#: posix/getopt.c:593 posix/getopt.c:622
+ #, c-format
+ msgid "%s: option '%s' is ambiguous; possibilities:"
+ msgstr "%s: l’opció «%s» és ambígua; possibilitats:"
+-#: posix/getopt.c:664 posix/getopt.c:668
++#: posix/getopt.c:663 posix/getopt.c:667
+ #, c-format
+ msgid "%s: option '--%s' doesn't allow an argument\n"
+ msgstr "%s: l’opció «--%s» no admet arguments\n"
+-#: posix/getopt.c:677 posix/getopt.c:682
++#: posix/getopt.c:676 posix/getopt.c:681
+ #, c-format
+ msgid "%s: option '%c%s' doesn't allow an argument\n"
+ msgstr "%s: l’opció «%c%s» no admet arguments\n"
+-#: posix/getopt.c:725 posix/getopt.c:744
++#: posix/getopt.c:724 posix/getopt.c:743
+ #, c-format
+ msgid "%s: option '--%s' requires an argument\n"
+ msgstr "%s: l’opció «--%s» necessita un argument\n"
+-#: posix/getopt.c:782 posix/getopt.c:785
++#: posix/getopt.c:781 posix/getopt.c:784
+ #, c-format
+ msgid "%s: unrecognized option '--%s'\n"
+ msgstr "%s: l’opció «--%s» no és reconeguda\n"
+-#: posix/getopt.c:793 posix/getopt.c:796
++#: posix/getopt.c:792 posix/getopt.c:795
+ #, c-format
+ msgid "%s: unrecognized option '%c%s'\n"
+ msgstr "%s: l’opció «%c%s» no és reconeguda\n"
+-#: posix/getopt.c:845 posix/getopt.c:848
++#: posix/getopt.c:844 posix/getopt.c:847
+ #, c-format
+ msgid "%s: invalid option -- '%c'\n"
+ msgstr "%s: l’opció «%c» no és vàlida\n"
+-#: posix/getopt.c:898 posix/getopt.c:915 posix/getopt.c:1123
+-#: posix/getopt.c:1141
++#: posix/getopt.c:900 posix/getopt.c:917 posix/getopt.c:1127
++#: posix/getopt.c:1145
+ #, c-format
+ msgid "%s: option requires an argument -- '%c'\n"
+ msgstr "%s: l’opció «%c» necessita un argument\n"
+-#: posix/getopt.c:971 posix/getopt.c:987
++#: posix/getopt.c:973 posix/getopt.c:989
+ #, c-format
+ msgid "%s: option '-W %s' is ambiguous\n"
+ msgstr "%s: l’opció «-W %s» és ambígua\n"
+-#: posix/getopt.c:1011 posix/getopt.c:1029
++#: posix/getopt.c:1013 posix/getopt.c:1031
+ #, c-format
+ msgid "%s: option '-W %s' doesn't allow an argument\n"
+ msgstr "%s: l’opció «-W %s» no admet arguments\n"
+-#: posix/getopt.c:1050 posix/getopt.c:1068
++#: posix/getopt.c:1052 posix/getopt.c:1070
+ #, c-format
+ msgid "%s: option '-W %s' requires an argument\n"
+ msgstr "%s: l’opció «-W %s» necessita un argument\n"
+-#: posix/regcomp.c:135
++#: posix/regcomp.c:134
+ msgid "No match"
+ msgstr "No hi ha cap coincidència"
+-#: posix/regcomp.c:138
++#: posix/regcomp.c:137
+ msgid "Invalid regular expression"
+ msgstr "L’expressió regular no és vàlida"
+-#: posix/regcomp.c:141
++#: posix/regcomp.c:140
+ msgid "Invalid collation character"
+ msgstr "El caràcter d’ordenació no és vàlid"
+-#: posix/regcomp.c:144
++#: posix/regcomp.c:143
+ msgid "Invalid character class name"
+ msgstr "El nom de la classe de caràcters no és vàlid"
+-#: posix/regcomp.c:147
++#: posix/regcomp.c:146
+ msgid "Trailing backslash"
+ msgstr "Hi ha una barra invertida sobrant al final"
+-#: posix/regcomp.c:150
++#: posix/regcomp.c:149
+ msgid "Invalid back reference"
+ msgstr "La referència cap enrere no és vàlida"
+-#: posix/regcomp.c:153
++#: posix/regcomp.c:152
+ msgid "Unmatched [ or [^"
+ msgstr "«[» o «[^» desaparellat"
+-#: posix/regcomp.c:156
++#: posix/regcomp.c:155
+ msgid "Unmatched ( or \\("
+ msgstr "«(» o «\\(» desaparellat"
+-#: posix/regcomp.c:159
++#: posix/regcomp.c:158
+ msgid "Unmatched \\{"
+ msgstr "«\\{» desaparellat"
+-#: posix/regcomp.c:162
++#: posix/regcomp.c:161
+ msgid "Invalid content of \\{\\}"
+ msgstr "El contingut de «\\{\\}» no és vàlid"
+-#: posix/regcomp.c:165
++#: posix/regcomp.c:164
+ msgid "Invalid range end"
+ msgstr "El final del rang no és vàlid"
+-#: posix/regcomp.c:168
++#: posix/regcomp.c:167
+ msgid "Memory exhausted"
+ msgstr "La memòria s’ha exhaurit"
+-#: posix/regcomp.c:171
++#: posix/regcomp.c:170
+ msgid "Invalid preceding regular expression"
+ msgstr "L’expressió regular precedent és incorrecta"
+-#: posix/regcomp.c:174
++#: posix/regcomp.c:173
+ msgid "Premature end of regular expression"
+ msgstr "Fi prematura de l’expressió regular"
+-#: posix/regcomp.c:177
++#: posix/regcomp.c:176
+ msgid "Regular expression too big"
+ msgstr "L’expressió regular és massa llarga"
+-#: posix/regcomp.c:180
++#: posix/regcomp.c:179
+ msgid "Unmatched ) or \\)"
+ msgstr "«)» o «\\)» desaparellat"
+-#: posix/regcomp.c:680
++#: posix/regcomp.c:679
+ msgid "No previous regular expression"
+ msgstr "No hi ha expressió regular prèvia"
+-#: posix/wordexp.c:1832
++#: posix/wordexp.c:1830
+ msgid "parameter null or not set"
+ msgstr "el paràmetre és nul o no s’ha establert"
+@@ -4817,27 +4997,27 @@
+ # ivb (2002/02/08)
+ # ivb  En realitat es refereic a la paraula clau d'«/etc/host.conf» «trim»,
+ # ivb  però crec que així queda més clar.
+-#: resolv/res_hconf.c:124
++#: resolv/res_hconf.c:122
+ #, c-format
+ msgid "%s: line %d: cannot specify more than %d trim domains"
+ msgstr "%s: línia %d: no es poden especificar més de %d dominis a retallar"
+-#: resolv/res_hconf.c:145
++#: resolv/res_hconf.c:143
+ #, c-format
+ msgid "%s: line %d: list delimiter not followed by domain"
+ msgstr "%s: línia %d: cal un domini a continuació del delimitador de llista"
+-#: resolv/res_hconf.c:204
++#: resolv/res_hconf.c:202
+ #, c-format
+ msgid "%s: line %d: expected `on' or `off', found `%s'\n"
+ msgstr "%s: línia %d: cal «on» o «off», però s’ha trobat «%s»\n"
+-#: resolv/res_hconf.c:247
++#: resolv/res_hconf.c:245
+ #, c-format
+ msgid "%s: line %d: bad command `%s'\n"
+ msgstr "%s: línia %d: l’ordre «%s» no és vàlida\n"
+-#: resolv/res_hconf.c:282
++#: resolv/res_hconf.c:280
+ #, c-format
+ msgid "%s: line %d: ignoring trailing garbage `%s'\n"
+ msgstr "%s: línia %d: es descarta la brossa «%s» al final de la línia\n"
+@@ -4982,208 +5162,208 @@
+ msgid "Device disconnected"
+ msgstr "El dispositiu ha estat desconnectat"
+-#: stdio-common/psiginfo.c:145
++#: stdio-common/psiginfo.c:139
+ msgid "Signal sent by kill()"
+ msgstr "Senyal enviat per kill()"
+-#: stdio-common/psiginfo.c:148
++#: stdio-common/psiginfo.c:142
+ msgid "Signal sent by sigqueue()"
+ msgstr "Senyal enviat per sigqueue()"
+-#: stdio-common/psiginfo.c:151
++#: stdio-common/psiginfo.c:145
+ msgid "Signal generated by the expiration of a timer"
+ msgstr "Senyal generat en expirar un temporitzador"
+-#: stdio-common/psiginfo.c:154
++#: stdio-common/psiginfo.c:148
+ msgid "Signal generated by the completion of an asynchronous I/O request"
+ msgstr "Senyal generat en completar una petició d’E/S asíncrona"
+-#: stdio-common/psiginfo.c:158
++#: stdio-common/psiginfo.c:152
+ msgid "Signal generated by the arrival of a message on an empty message queue"
+ msgstr "Senyal generat en arribar un missatge a una cua de missatges buida"
+-#: stdio-common/psiginfo.c:163
++#: stdio-common/psiginfo.c:157
+ msgid "Signal sent by tkill()"
+ msgstr "Senyal enviat per tkill()"
+-#: stdio-common/psiginfo.c:168
++#: stdio-common/psiginfo.c:162
+ msgid "Signal generated by the completion of an asynchronous name lookup request"
+ msgstr "Senyal generat en completar una petició asíncrona de consulta de nom"
+-#: stdio-common/psiginfo.c:174
++#: stdio-common/psiginfo.c:168
+ msgid "Signal generated by the completion of an I/O request"
+ msgstr "Senyal generat en completar una petició d’E/S"
+-#: stdio-common/psiginfo.c:180
++#: stdio-common/psiginfo.c:174
+ msgid "Signal sent by the kernel"
+ msgstr "Senyal enviat pel nucli"
+-#: stdio-common/psiginfo.c:204
++#: stdio-common/psiginfo.c:198
+ #, c-format
+ msgid "Unknown signal %d\n"
+ msgstr "Senyal desconegut %d\n"
+-#: stdio-common/psignal.c:51
++#: stdio-common/psignal.c:43
+ #, c-format
+ msgid "%s%sUnknown signal %d\n"
+ msgstr "%s%sSenyal desconegut %d\n"
+-#: stdio-common/psignal.c:52
++#: stdio-common/psignal.c:44
+ msgid "Unknown signal"
+ msgstr "Senyal desconegut"
+-#: string/_strerror.c:47 sysdeps/mach/_strerror.c:87
++#: string/_strerror.c:46 sysdeps/mach/_strerror.c:86
+ msgid "Unknown error "
+ msgstr "Error desconegut "
+-#: string/strerror.c:43
++#: string/strerror.c:42
+ msgid "Unknown error"
+ msgstr "Error desconegut"
+-#: string/strsignal.c:65
++#: string/strsignal.c:60
+ #, c-format
+ msgid "Real-time signal %d"
+ msgstr "Senyal de temps real %d"
+-#: string/strsignal.c:69
++#: string/strsignal.c:64
+ #, c-format
+ msgid "Unknown signal %d"
+ msgstr "Senyal desconegut %d"
+-#: sunrpc/auth_unix.c:113 sunrpc/clnt_tcp.c:125 sunrpc/clnt_udp.c:136
+-#: sunrpc/clnt_unix.c:126 sunrpc/svc_tcp.c:173 sunrpc/svc_tcp.c:218
+-#: sunrpc/svc_udp.c:147 sunrpc/svc_unix.c:174 sunrpc/svc_unix.c:215
+-#: sunrpc/xdr.c:632 sunrpc/xdr.c:792 sunrpc/xdr_array.c:100
+-#: sunrpc/xdr_rec.c:154 sunrpc/xdr_ref.c:79
++#: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:134
++#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233
++#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229
++#: sunrpc/xdr.c:630 sunrpc/xdr.c:790 sunrpc/xdr_array.c:97
++#: sunrpc/xdr_rec.c:151 sunrpc/xdr_ref.c:76
+ msgid "out of memory\n"
+ msgstr "no resta memòria\n"
+ # ivb (2001/11/01)
+ # ivb  D'acord amb un comentari del propi fitxer.
+-#: sunrpc/auth_unix.c:351
++#: sunrpc/auth_unix.c:349
+ msgid "auth_unix.c: Fatal marshalling problem"
+ msgstr "auth_none.c: error fatal de preserialització"
+-#: sunrpc/clnt_perr.c:98 sunrpc/clnt_perr.c:114
++#: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111
+ #, c-format
+ msgid "%s: %s; low version = %lu, high version = %lu"
+ msgstr "%s: %s; versió menor = %lu, versió major = %lu"
+-#: sunrpc/clnt_perr.c:105
++#: sunrpc/clnt_perr.c:102
+ #, c-format
+ msgid "%s: %s; why = %s\n"
+ msgstr "%s: %s; causa = %s\n"
+-#: sunrpc/clnt_perr.c:107
++#: sunrpc/clnt_perr.c:104
+ #, c-format
+ msgid "%s: %s; why = (unknown authentication error - %d)\n"
+ msgstr "%s: %s; causa = (error desconegut d’autenticació: %d)\n"
+-#: sunrpc/clnt_perr.c:156
++#: sunrpc/clnt_perr.c:153
+ msgid "RPC: Success"
+ msgstr "RPC: Èxit"
+-#: sunrpc/clnt_perr.c:159
++#: sunrpc/clnt_perr.c:156
+ msgid "RPC: Can't encode arguments"
+ msgstr "RPC: No s’han pogut codificar els arguments"
+-#: sunrpc/clnt_perr.c:163
++#: sunrpc/clnt_perr.c:160
+ msgid "RPC: Can't decode result"
+ msgstr "RPC: No s’ha pogut descodificar el resultat"
+-#: sunrpc/clnt_perr.c:167
++#: sunrpc/clnt_perr.c:164
+ msgid "RPC: Unable to send"
+ msgstr "RPC: No s’ha pogut fer l’enviament"
+-#: sunrpc/clnt_perr.c:171
++#: sunrpc/clnt_perr.c:168
+ msgid "RPC: Unable to receive"
+ msgstr "RPC: No s’ha pogut rebre"
+-#: sunrpc/clnt_perr.c:175
++#: sunrpc/clnt_perr.c:172
+ msgid "RPC: Timed out"
+ msgstr "RPC: S’ha excedit el temps"
+-#: sunrpc/clnt_perr.c:179
++#: sunrpc/clnt_perr.c:176
+ msgid "RPC: Incompatible versions of RPC"
+ msgstr "RPC: Les versions d’RPC són incompatibles"
+-#: sunrpc/clnt_perr.c:183
++#: sunrpc/clnt_perr.c:180
+ msgid "RPC: Authentication error"
+ msgstr "RPC: Error d’autenticació"
+-#: sunrpc/clnt_perr.c:187
++#: sunrpc/clnt_perr.c:184
+ msgid "RPC: Program unavailable"
+ msgstr "RPC: El programa no es troba disponible"
+-#: sunrpc/clnt_perr.c:191
++#: sunrpc/clnt_perr.c:188
+ msgid "RPC: Program/version mismatch"
+ msgstr "RPC: No hi ha coincidència programa/versió"
+-#: sunrpc/clnt_perr.c:195
++#: sunrpc/clnt_perr.c:192
+ msgid "RPC: Procedure unavailable"
+ msgstr "RPC: El procediment no es troba disponible"
+-#: sunrpc/clnt_perr.c:199
++#: sunrpc/clnt_perr.c:196
+ msgid "RPC: Server can't decode arguments"
+ msgstr "RPC: El servidor no ha pogut descodificar els arguments"
+-#: sunrpc/clnt_perr.c:203
++#: sunrpc/clnt_perr.c:200
+ msgid "RPC: Remote system error"
+ msgstr "RPC: Error al sistema remot"
+-#: sunrpc/clnt_perr.c:207
++#: sunrpc/clnt_perr.c:204
+ msgid "RPC: Unknown host"
+ msgstr "RPC: L’estació no és coneguda"
+-#: sunrpc/clnt_perr.c:211
++#: sunrpc/clnt_perr.c:208
+ msgid "RPC: Unknown protocol"
+ msgstr "RPC: El protocol no és conegut"
+-#: sunrpc/clnt_perr.c:215
++#: sunrpc/clnt_perr.c:212
+ msgid "RPC: Port mapper failure"
+ msgstr "RPC: Fallada del mapador de ports"
+-#: sunrpc/clnt_perr.c:219
++#: sunrpc/clnt_perr.c:216
+ msgid "RPC: Program not registered"
+ msgstr "RPC: El programa no s’ha donat d’alta"
+-#: sunrpc/clnt_perr.c:223
++#: sunrpc/clnt_perr.c:220
+ msgid "RPC: Failed (unspecified error)"
+ msgstr "RPC: Ha fallat (error no especificat)"
+-#: sunrpc/clnt_perr.c:264
++#: sunrpc/clnt_perr.c:261
+ msgid "RPC: (unknown error code)"
+ msgstr "RPC: (codi d’error desconegut)"
+-#: sunrpc/clnt_perr.c:336
++#: sunrpc/clnt_perr.c:333
+ msgid "Authentication OK"
+ msgstr "L’autenticació és vàlida"
+-#: sunrpc/clnt_perr.c:339
++#: sunrpc/clnt_perr.c:336
+ msgid "Invalid client credential"
+ msgstr "La credencial donada pel client no és vàlida"
+-#: sunrpc/clnt_perr.c:343
++#: sunrpc/clnt_perr.c:340
+ msgid "Server rejected credential"
+ msgstr "El servidor ha rebutjat la credencial"
+-#: sunrpc/clnt_perr.c:347
++#: sunrpc/clnt_perr.c:344
+ msgid "Invalid client verifier"
+ msgstr "El verificador del client no és vàlid"
+-#: sunrpc/clnt_perr.c:351
++#: sunrpc/clnt_perr.c:348
+ msgid "Server rejected verifier"
+ msgstr "El servidor ha rebutjat el verificador"
+-#: sunrpc/clnt_perr.c:355
++#: sunrpc/clnt_perr.c:352
+ msgid "Client credential too weak"
+ msgstr "La credencial del client és massa fluixa"
+-#: sunrpc/clnt_perr.c:359
++#: sunrpc/clnt_perr.c:356
+ msgid "Invalid server verifier"
+ msgstr "El verificador del servidor no és vàlid"
+-#: sunrpc/clnt_perr.c:363
++#: sunrpc/clnt_perr.c:360
+ msgid "Failed (unspecified error)"
+ msgstr "Ha fallat (no s’especifica l’error)"
+@@ -5223,263 +5403,270 @@
+ msgid "Cannot receive reply to broadcast"
+ msgstr "no s’ha pogut rebre una resposta a la difusió"
+-#: sunrpc/rpc_main.c:288
++#: sunrpc/rpc_main.c:277
+ #, c-format
+ msgid "%s: output would overwrite %s\n"
+ msgstr "%s: l’eixida sobreescriuria «%s»\n"
+-#: sunrpc/rpc_main.c:295
++#: sunrpc/rpc_main.c:284
+ #, c-format
+ msgid "%s: unable to open %s: %m\n"
+ msgstr "%s: no s’ha pogut obrir «%s»: %m\n"
+-#: sunrpc/rpc_main.c:307
++#: sunrpc/rpc_main.c:296
+ #, c-format
+ msgid "%s: while writing output %s: %m"
+ msgstr "%s: en escriure a l’eixida «%s»: %m"
+-#: sunrpc/rpc_main.c:342
++#: sunrpc/rpc_main.c:332 sunrpc/rpc_main.c:371
+ #, c-format
+-msgid "cannot find C preprocessor: %s \n"
++msgid "cannot find C preprocessor: %s\n"
+ msgstr "no s’ha pogut trobar el preprocessador de C: %s\n"
+-#: sunrpc/rpc_main.c:350
+-msgid "cannot find any C preprocessor (cpp)\n"
+-msgstr "no s’ha pogut trobar cap preprocessador de C (cpp)\n"
+-
+-#: sunrpc/rpc_main.c:419
++#: sunrpc/rpc_main.c:407
+ #, c-format
+ msgid "%s: C preprocessor failed with signal %d\n"
+ msgstr "%s: el preprocessador de C ha fallat amb el senyal %d\n"
+-#: sunrpc/rpc_main.c:422
++#: sunrpc/rpc_main.c:410
+ #, c-format
+ msgid "%s: C preprocessor failed with exit code %d\n"
+ msgstr "%s: el preprocessador de C ha fallat amb el codi d’eixida %d\n"
+-#: sunrpc/rpc_main.c:462
++#: sunrpc/rpc_main.c:450
+ #, c-format
+ msgid "illegal nettype: `%s'\n"
+ msgstr "el tipus de xarxa no és permès: «%s»\n"
+-#: sunrpc/rpc_main.c:1128
++#: sunrpc/rpc_main.c:1085
+ #, c-format
+ msgid "rpcgen: too many defines\n"
+ msgstr "rpcgen: hi ha massa definicions\n"
+-#: sunrpc/rpc_main.c:1140
++#: sunrpc/rpc_main.c:1097
+ #, c-format
+ msgid "rpcgen: arglist coding error\n"
+ msgstr "rpcgen: error en codificar els arguments\n"
+ #. TRANS: the file will not be removed; this is an
+ #. TRANS: informative message.
+-#: sunrpc/rpc_main.c:1173
++#: sunrpc/rpc_main.c:1130
+ #, c-format
+ msgid "file `%s' already exists and may be overwritten\n"
+ msgstr "el fitxer «%s» ja existeix i podria ser sobreescrit\n"
+-#: sunrpc/rpc_main.c:1218
++#: sunrpc/rpc_main.c:1175
+ #, c-format
+ msgid "Cannot specify more than one input file!\n"
+ msgstr "no es pot especificar més d’un fitxer d’entrada\n"
+-#: sunrpc/rpc_main.c:1392
++#: sunrpc/rpc_main.c:1345
+ #, c-format
+ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+ msgstr "aquesta implementació no accepta l’estil nou ni el codi compatible amb MT\n"
+-#: sunrpc/rpc_main.c:1401
++#: sunrpc/rpc_main.c:1354
+ #, c-format
+ msgid "Cannot use netid flag with inetd flag!\n"
+ msgstr "no es pot emprar l’opció IDXARXA («-n») amb l’opció d’inetd («-I»)\n"
+-#: sunrpc/rpc_main.c:1413
++#: sunrpc/rpc_main.c:1363
+ #, c-format
+ msgid "Cannot use netid flag without TIRPC!\n"
+ msgstr "no es pot emprar l’opció IDXARXA («-n») sense TIRPC\n"
+-#: sunrpc/rpc_main.c:1420
++#: sunrpc/rpc_main.c:1370
+ #, c-format
+ msgid "Cannot use table flags with newstyle!\n"
+ msgstr "no es poden emprar opcions de taula amb l’estil nou («-N»)\n"
+-#: sunrpc/rpc_main.c:1439
++#: sunrpc/rpc_main.c:1389
+ #, c-format
+ msgid "\"infile\" is required for template generation flags.\n"
+ msgstr "cal FITXER_ENTRADA per als senyaladors de generació de plantilles\n"
+-#: sunrpc/rpc_main.c:1444
++#: sunrpc/rpc_main.c:1394
+ #, c-format
+ msgid "Cannot have more than one file generation flag!\n"
+ msgstr "no es pot tenir més d’un senyalador de generació de fitxers\n"
+-#: sunrpc/rpc_main.c:1453
++#: sunrpc/rpc_main.c:1403
+ #, c-format
+ msgid "usage: %s infile\n"
+ msgstr "Forma d’ús: %s FITXER_ENTRADA\n"
+-#: sunrpc/rpc_main.c:1454
++#: sunrpc/rpc_main.c:1404
+ #, c-format
+ msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
+ msgstr ""
+ "            %s [-abkCLNTM] [-DNOM[=VALOR]] [-i MIDA] [-I [-K SEGONS]]\n"
+ "                [-Y CAMÍ] FITXER_ENTRADA\n"
+-#: sunrpc/rpc_main.c:1456
++#: sunrpc/rpc_main.c:1406
+ #, c-format
+ msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
+ msgstr ""
+ "            %s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o FITXER_EIXIDA]\n"
+ "                [FITXER_ENTRADA]\n"
+-#: sunrpc/rpc_main.c:1458
++#: sunrpc/rpc_main.c:1408
+ #, c-format
+ msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
+ msgstr "            %s [-s TIPUS_DE_XARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n"
+-#: sunrpc/rpc_main.c:1459
++#: sunrpc/rpc_main.c:1409
+ #, c-format
+ msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
+ msgstr "            %s [-n IDXARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n"
+-#: sunrpc/rpc_main.c:1467
++#: sunrpc/rpc_main.c:1417
+ #, c-format
+ msgid "options:\n"
+ msgstr ""
+ "Opcions:\n"
+ "\n"
+-#: sunrpc/rpc_main.c:1468
++#: sunrpc/rpc_main.c:1418
+ #, c-format
+ msgid "-a\t\tgenerate all files, including samples\n"
+ msgstr "  -a                   Genera tots els fitxers, incloent els exemples.\n"
+-#: sunrpc/rpc_main.c:1469
++#: sunrpc/rpc_main.c:1419
+ #, c-format
+ msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"
+ msgstr ""
+ "  -b                   Mode de compatibilitat cap enrere (genera codi per a\n"
+ "                       SunOS 4.1).\n"
+-#: sunrpc/rpc_main.c:1470
++#: sunrpc/rpc_main.c:1420
+ #, c-format
+ msgid "-c\t\tgenerate XDR routines\n"
+ msgstr "  -c                   Genera rutines XDR.\n"
+-#: sunrpc/rpc_main.c:1471
++#: sunrpc/rpc_main.c:1421
+ #, c-format
+ msgid "-C\t\tANSI C mode\n"
+ msgstr "  -C                   Mode ANSI C.\n"
+-#: sunrpc/rpc_main.c:1472
++#: sunrpc/rpc_main.c:1422
+ #, c-format
+ msgid "-Dname[=value]\tdefine a symbol (same as #define)\n"
+ msgstr "  -DNOM[=VALOR]        Defineix un símbol (equival a «#define»).\n"
+-#: sunrpc/rpc_main.c:1473
++#: sunrpc/rpc_main.c:1423
+ #, c-format
+ msgid "-h\t\tgenerate header file\n"
+ msgstr "  -h                   Genera un fitxer de capçaleres.\n"
+-#: sunrpc/rpc_main.c:1474
++#: sunrpc/rpc_main.c:1424
+ #, c-format
+ msgid "-i size\t\tsize at which to start generating inline code\n"
+ msgstr "  -i MIDA              Indica la MIDA on començar a generar codi en línia.\n"
+-#: sunrpc/rpc_main.c:1475
++#: sunrpc/rpc_main.c:1425
+ #, c-format
+ msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n"
+ msgstr ""
+ "  -I                   Genera codi de compatibilitat amb «inetd» per al\n"
+ "                       servidor (per a SunOS 4.1).\n"
+-#: sunrpc/rpc_main.c:1476
++#: sunrpc/rpc_main.c:1426
+ #, c-format
+ msgid "-K seconds\tserver exits after K seconds of inactivity\n"
+ msgstr ""
+ "  -K SEGONS            Fa que el servidor isca després del nombre indicat de\n"
+ "                       SEGONS d’inactivitat.\n"
+-#: sunrpc/rpc_main.c:1477
++#: sunrpc/rpc_main.c:1427
+ #, c-format
+ msgid "-l\t\tgenerate client side stubs\n"
+ msgstr "  -l                   Genera esquelets per a la part del client.\n"
+-#: sunrpc/rpc_main.c:1478
++#: sunrpc/rpc_main.c:1428
+ #, c-format
+ msgid "-L\t\tserver errors will be printed to syslog\n"
+ msgstr "  -L                   Fa que els errors del servidor s’envien a «syslog».\n"
+-#: sunrpc/rpc_main.c:1479
++#: sunrpc/rpc_main.c:1429
+ #, c-format
+ msgid "-m\t\tgenerate server side stubs\n"
+ msgstr "  -m                   Genera esquelets per a la part del servidor.\n"
+-#: sunrpc/rpc_main.c:1480
++#: sunrpc/rpc_main.c:1430
+ #, c-format
+ msgid "-M\t\tgenerate MT-safe code\n"
+ msgstr "  -M                   Genera codi compatible amb múltiples fils d’execució.\n"
+ # Sembla que «netid» és una expressió de la jerga RPC.  ivb
+-#: sunrpc/rpc_main.c:1481
++#: sunrpc/rpc_main.c:1431
+ #, c-format
+ msgid "-n netid\tgenerate server code that supports named netid\n"
+ msgstr "  -n NETID             Genera codi compatible amb el NETID indicat.\n"
+-#: sunrpc/rpc_main.c:1482
++#: sunrpc/rpc_main.c:1432
+ #, c-format
+ msgid "-N\t\tsupports multiple arguments and call-by-value\n"
+ msgstr "  -N                   Permet arguments múltiples i pas d’arguments per valor.\n"
+-#: sunrpc/rpc_main.c:1483
++#: sunrpc/rpc_main.c:1433
+ #, c-format
+ msgid "-o outfile\tname of the output file\n"
+ msgstr "  -o FITXER_EIXIDA     Nom del fitxer d’eixida.\n"
+-#: sunrpc/rpc_main.c:1484
++#: sunrpc/rpc_main.c:1434
+ #, c-format
+ msgid "-s nettype\tgenerate server code that supports named nettype\n"
+ msgstr ""
+ "  -s TIPUS_DE_XARXA    Genera codi de servidor compatible amb el TIPUS_DE_XARXA\n"
+ "                       indicat.\n"
+-#: sunrpc/rpc_main.c:1485
++#: sunrpc/rpc_main.c:1435
+ #, c-format
+ msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n"
+ msgstr ""
+ "  -Sc                  Genera codi d’exemple per a un client que empra\n"
+ "                       procediments remots.\n"
+-#: sunrpc/rpc_main.c:1486
++#: sunrpc/rpc_main.c:1436
+ #, c-format
+ msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n"
+ msgstr ""
+ "  -Ss                  Genera codi d’exemple per a un servidor que defineix\n"
+ "                       procediments remots.\n"
+-#: sunrpc/rpc_main.c:1487
++#: sunrpc/rpc_main.c:1437
+ #, c-format
+ msgid "-Sm \t\tgenerate makefile template \n"
+ msgstr "  -Sm                  Genera una plantilla de fitxer «Makefile».\n"
+-#: sunrpc/rpc_main.c:1488
++#: sunrpc/rpc_main.c:1438
+ #, c-format
+ msgid "-t\t\tgenerate RPC dispatch table\n"
+ msgstr "  -t                   Genera una taula de despatxat de crides RPC.\n"
+-#: sunrpc/rpc_main.c:1489
++#: sunrpc/rpc_main.c:1439
+ #, c-format
+ msgid "-T\t\tgenerate code to support RPC dispatch tables\n"
+ msgstr ""
+ "  -T                   Genera codi per a treballar amb taules de despatxat de\n"
+ "                       crides RPC.\n"
+-#: sunrpc/rpc_main.c:1490
++#: sunrpc/rpc_main.c:1440
+ #, c-format
+ msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"
+ msgstr "  -Y CAMÍ              Directori on es troba el preprocessador de C (cpp).\n"
++#: sunrpc/rpc_main.c:1442
++#, c-format
++msgid ""
++"\n"
++"For bug reporting instructions, please see:\n"
++"%s.\n"
++msgstr ""
++"\n"
++"Per a obtenir instruccions sobre com informar d’un error, vegeu\n"
++"<%s>.\n"
++
+ #: sunrpc/rpc_scan.c:112
+ msgid "constant or identifier expected"
+ msgstr "cal una constant o un identificador"
+@@ -5589,127 +5776,127 @@
+ msgid "svc_run: - poll failed"
+ msgstr "svc_run: ha fallat poll()"
+-#: sunrpc/svc_simple.c:81
++#: sunrpc/svc_simple.c:80
+ #, c-format
+ msgid "can't reassign procedure number %ld\n"
+ msgstr "no s’ha pogut reassignar el procediment número %ld\n"
+-#: sunrpc/svc_simple.c:91
++#: sunrpc/svc_simple.c:90
+ msgid "couldn't create an rpc server\n"
+ msgstr "no s’ha pogut crear un servidor RPC\n"
+-#: sunrpc/svc_simple.c:99
++#: sunrpc/svc_simple.c:98
+ #, c-format
+ msgid "couldn't register prog %ld vers %ld\n"
+ msgstr "no s’ha pogut donar d’alta el programa %ld amb versió %ld\n"
+-#: sunrpc/svc_simple.c:107
++#: sunrpc/svc_simple.c:106
+ msgid "registerrpc: out of memory\n"
+ msgstr "registerrpc: no resta memòria\n"
+-#: sunrpc/svc_simple.c:168
++#: sunrpc/svc_simple.c:169
+ #, c-format
+ msgid "trouble replying to prog %d\n"
+ msgstr "no s’ha pogut respondre al programa %d\n"
+-#: sunrpc/svc_simple.c:177
++#: sunrpc/svc_simple.c:178
+ #, c-format
+ msgid "never registered prog %d\n"
+ msgstr "el programa %d mai no s’ha donat d’alta\n"
+-#: sunrpc/svc_tcp.c:149
++#: sunrpc/svc_tcp.c:164
+ msgid "svc_tcp.c - tcp socket creation problem"
+ msgstr "svc_tcp.c: problemes en crear un connector TCP"
+-#: sunrpc/svc_tcp.c:164
++#: sunrpc/svc_tcp.c:179
+ msgid "svc_tcp.c - cannot getsockname or listen"
+ msgstr "svc_tcp.c: ha fallat getsockname() o listen()"
+-#: sunrpc/svc_udp.c:122
++#: sunrpc/svc_udp.c:137
+ msgid "svcudp_create: socket creation problem"
+ msgstr "svcudp_create: problemes en crear un connector"
+-#: sunrpc/svc_udp.c:136
++#: sunrpc/svc_udp.c:151
+ msgid "svcudp_create - cannot getsockname"
+ msgstr "svcudp_create: ha fallat getsockname()"
+-#: sunrpc/svc_udp.c:168
++#: sunrpc/svc_udp.c:183
+ msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
+ msgstr "svcudp_create: «xp_pad» és massa menut per a IP_PKTINFO\n"
+-#: sunrpc/svc_udp.c:476
++#: sunrpc/svc_udp.c:495
+ msgid "enablecache: cache already enabled"
+ msgstr "enablecache: la memòria cau ja està habilitada"
+-#: sunrpc/svc_udp.c:482
++#: sunrpc/svc_udp.c:501
+ msgid "enablecache: could not allocate cache"
+ msgstr "enablecache: no s’ha pogut reservar espai per a la memòria cau"
+-#: sunrpc/svc_udp.c:491
++#: sunrpc/svc_udp.c:510
+ msgid "enablecache: could not allocate cache data"
+ msgstr "enablecache: no s’ha pogut reservar espai per a les dades de la memòria cau"
+-#: sunrpc/svc_udp.c:499
++#: sunrpc/svc_udp.c:518
+ msgid "enablecache: could not allocate cache fifo"
+ msgstr "enablecache: no s’ha pogut reservar la cua FIFO de la memòria cau"
+-#: sunrpc/svc_udp.c:535
++#: sunrpc/svc_udp.c:554
+ msgid "cache_set: victim not found"
+ msgstr "cache_set: no s’ha trobat la víctima"
+-#: sunrpc/svc_udp.c:546
++#: sunrpc/svc_udp.c:565
+ msgid "cache_set: victim alloc failed"
+ msgstr "cache_set: no s’ha pogut reservar la víctima"
+-#: sunrpc/svc_udp.c:553
++#: sunrpc/svc_udp.c:572
+ msgid "cache_set: could not allocate new rpc_buffer"
+ msgstr "cache_set: no s’ha pogut reservar un nou «rpc_buffer»"
+-#: sunrpc/svc_unix.c:148
++#: sunrpc/svc_unix.c:162
+ msgid "svc_unix.c - AF_UNIX socket creation problem"
+ msgstr "svc_unix.c: problemes en crear un connector AF_UNIX"
+-#: sunrpc/svc_unix.c:164
++#: sunrpc/svc_unix.c:178
+ msgid "svc_unix.c - cannot getsockname or listen"
+ msgstr "svc_unix.c: ha fallat getsockname() o listen()"
+-#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27
++#: sysdeps/generic/siglist.h:28
+ msgid "Hangup"
+ msgstr "Penjat"
+-#: sysdeps/generic/siglist.h:30 sysdeps/unix/siglist.c:28
++#: sysdeps/generic/siglist.h:29
+ msgid "Interrupt"
+ msgstr "Interromput"
+-#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29
++#: sysdeps/generic/siglist.h:30
+ msgid "Quit"
+ msgstr "Eixit"
+-#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30
++#: sysdeps/generic/siglist.h:31
+ msgid "Illegal instruction"
+ msgstr "La instrucció no és permesa"
+-#: sysdeps/generic/siglist.h:33 sysdeps/unix/siglist.c:31
++#: sysdeps/generic/siglist.h:32
+ msgid "Trace/breakpoint trap"
+ msgstr "Trampa de traçat/punt d’aturada"
+-#: sysdeps/generic/siglist.h:34
++#: sysdeps/generic/siglist.h:33
+ msgid "Aborted"
+ msgstr "Avortat"
+-#: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34
++#: sysdeps/generic/siglist.h:34
+ msgid "Floating point exception"
+ msgstr "Excepció de coma flotant"
+-#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35
++#: sysdeps/generic/siglist.h:35
+ msgid "Killed"
+ msgstr "Matat"
+-#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36
++#: sysdeps/generic/siglist.h:36
+ msgid "Bus error"
+ msgstr "Error de bus"
+-#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37
++#: sysdeps/generic/siglist.h:37
+ msgid "Segmentation fault"
+ msgstr "Violació de segment"
+@@ -5718,108 +5905,107 @@
+ #. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+ #. TRANS or blocked.  Thus, your program will never actually see @code{EPIPE}
+ #. TRANS unless it has handled or blocked @code{SIGPIPE}.
+-#: sysdeps/generic/siglist.h:39 sysdeps/gnu/errlist.c:359
+-#: sysdeps/unix/siglist.c:39
++#: sysdeps/generic/siglist.h:38 sysdeps/gnu/errlist.c:359
+ msgid "Broken pipe"
+ msgstr "La canonada s’ha trencat"
+-#: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40
++#: sysdeps/generic/siglist.h:39
+ msgid "Alarm clock"
+ msgstr "Temporitzador"
+-#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41
++#: sysdeps/generic/siglist.h:40
+ msgid "Terminated"
+ msgstr "Terminat"
+-#: sysdeps/generic/siglist.h:42 sysdeps/unix/siglist.c:42
++#: sysdeps/generic/siglist.h:41
+ msgid "Urgent I/O condition"
+ msgstr "Condició urgent d’E/S"
+-#: sysdeps/generic/siglist.h:43 sysdeps/unix/siglist.c:43
++#: sysdeps/generic/siglist.h:42
+ msgid "Stopped (signal)"
+ msgstr "Aturat (senyal)"
+-#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44
++#: sysdeps/generic/siglist.h:43
+ msgid "Stopped"
+ msgstr "Aturat"
+-#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45
++#: sysdeps/generic/siglist.h:44
+ msgid "Continued"
+ msgstr "Continuat"
+-#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46
++#: sysdeps/generic/siglist.h:45
+ msgid "Child exited"
+ msgstr "Un fill ha eixit"
+-#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47
++#: sysdeps/generic/siglist.h:46
+ msgid "Stopped (tty input)"
+ msgstr "Aturat (esperant entrada del terminal)"
+-#: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48
++#: sysdeps/generic/siglist.h:47
+ msgid "Stopped (tty output)"
+ msgstr "Aturat (esperant escriure al terminal)"
+ # ivb (2000/10/28)
+ # ivb  És clar, E/S significa «Entrada/Sortida», perquè «Entrada/Eixida»
+ # ivb  queda ambigu (d'açò es diu discriminació objectiva %-P ).
+-#: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49
++#: sysdeps/generic/siglist.h:48
+ msgid "I/O possible"
+ msgstr "L’operació d’E/S és possible"
+-#: sysdeps/generic/siglist.h:50 sysdeps/unix/siglist.c:50
++#: sysdeps/generic/siglist.h:49
+ msgid "CPU time limit exceeded"
+ msgstr "S’ha excedit el temps límit de CPU"
+-#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51
++#: sysdeps/generic/siglist.h:50
+ msgid "File size limit exceeded"
+ msgstr "S’ha excedit la mida màxima de fitxer"
+-#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52
++#: sysdeps/generic/siglist.h:51
+ msgid "Virtual timer expired"
+ msgstr "Ha expirat el temporitzador virtual"
+-#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53
++#: sysdeps/generic/siglist.h:52
+ msgid "Profiling timer expired"
+ msgstr "El temps de perfilat ha expirat"
+-#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54
+-msgid "Window changed"
+-msgstr "Ha canviat la mida de la finestra"
+-
+-#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56
++#: sysdeps/generic/siglist.h:53
+ msgid "User defined signal 1"
+ msgstr "Senyal 1 definit per l’usuari"
+-#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57
++#: sysdeps/generic/siglist.h:54
+ msgid "User defined signal 2"
+ msgstr "Senyal 2 definit per l’usuari"
+-#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33
++#: sysdeps/generic/siglist.h:58
+ msgid "EMT trap"
+ msgstr "Trampa EMT"
+-#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38
++#: sysdeps/generic/siglist.h:61
+ msgid "Bad system call"
+ msgstr "La crida al sistema no és vàlida"
+-#: sysdeps/generic/siglist.h:66
++#: sysdeps/generic/siglist.h:64
+ msgid "Stack fault"
+ msgstr "Fallada de pila"
+-#: sysdeps/generic/siglist.h:69
++#: sysdeps/generic/siglist.h:67
+ msgid "Information request"
+ msgstr "Petició d’informació"
+-#: sysdeps/generic/siglist.h:71
++#: sysdeps/generic/siglist.h:69
+ msgid "Power failure"
+ msgstr "Fallada d’alimentació"
+ # ivb (2000/10/28)
+ # ivb  Sona més a llenguatge jurídic que a altra cosa...
+-#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55
++#: sysdeps/generic/siglist.h:72
+ msgid "Resource lost"
+ msgstr "S’ha perdut el recurs"
++#: sysdeps/generic/siglist.h:75
++msgid "Window changed"
++msgstr "Ha canviat la mida de la finestra"
++
+ #. TRANS Operation not permitted; only the owner of the file (or other resource)
+ #. TRANS or processes with special privileges can perform the operation.
+ #: sysdeps/gnu/errlist.c:25
+@@ -5858,8 +6044,8 @@
+ #. TRANS Argument list too long; used when the arguments passed to a new program
+ #. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
+-#. TRANS File}) occupy too much memory space.  This condition never arises in the
+-#. TRANS GNU system.
++#. TRANS File}) occupy too much memory space.  This condition never arises on
++#. TRANS @gnuhurdsystems{}.
+ #: sysdeps/gnu/errlist.c:94
+ msgid "Argument list too long"
+ msgstr "La llista d’arguments és massa llarga"
+@@ -5899,7 +6085,7 @@
+ msgstr "No s’ha pogut reservar memòria"
+ #. TRANS Bad address; an invalid pointer was detected.
+-#. TRANS In the GNU system, this error never happens; you get a signal instead.
++#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead.
+ #: sysdeps/gnu/errlist.c:167
+ msgid "Bad address"
+ msgstr "L’adreça no és vàlida"
+@@ -5967,7 +6153,7 @@
+ #. TRANS There are too many distinct file openings in the entire system.  Note
+ #. TRANS that any number of linked channels count as just one file opening; see
+-#. TRANS @ref{Linked Channels}.  This error never occurs in the GNU system.
++#. TRANS @ref{Linked Channels}.  This error never occurs on @gnuhurdsystems{}.
+ #: sysdeps/gnu/errlist.c:275
+ msgid "Too many open files in system"
+ msgstr "El sistema té massa fitxers oberts"
+@@ -5982,7 +6168,7 @@
+ #. TRANS write to a file that is currently being executed.  Often using a
+ #. TRANS debugger to run a program is considered having it open for writing and
+ #. TRANS will cause this error.  (The name stands for ``text file busy''.)  This
+-#. TRANS is not an error in the GNU system; the text is copied as necessary.
++#. TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary.
+ #: sysdeps/gnu/errlist.c:298
+ msgid "Text file busy"
+ msgstr "El fitxer de text es troba ocupat"
+@@ -6029,7 +6215,7 @@
+ #. TRANS Resource temporarily unavailable; the call might work if you try again
+ #. TRANS later.  The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
+-#. TRANS they are always the same in the GNU C library.
++#. TRANS they are always the same in @theglibc{}.
+ #. TRANS
+ #. TRANS This error can happen in a few different situations:
+ #. TRANS
+@@ -6060,7 +6246,7 @@
+ msgid "Resource temporarily unavailable"
+ msgstr "El recurs no es troba disponible temporalment"
+-#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
++#. TRANS In @theglibc{}, this is another name for @code{EAGAIN} (above).
+ #. TRANS The values are always the same, on every operating system.
+ #. TRANS
+ #. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
+@@ -6123,7 +6309,7 @@
+ #. TRANS The operation you requested is not supported.  Some socket functions
+ #. TRANS don't make sense for all types of sockets, and others may not be
+-#. TRANS implemented for all communications protocols.  In the GNU system, this
++#. TRANS implemented for all communications protocols.  On @gnuhurdsystems{}, this
+ #. TRANS error can happen for many calls when the object does not support the
+ #. TRANS particular operation; it is a generic indication that the server knows
+ #. TRANS nothing to do for that call.
+@@ -6290,7 +6476,7 @@
+ #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
+ #. TRANS already specifies an NFS-mounted file.
+ #. TRANS (This is an error on some operating systems, but we expect it to work
+-#. TRANS properly on the GNU system, making this error code impossible.)
++#. TRANS properly on @gnuhurdsystems{}, making this error code impossible.)
+ #: sysdeps/gnu/errlist.c:799
+ msgid "Object is remote"
+ msgstr "L’objecte és remot"
+@@ -6321,7 +6507,7 @@
+ msgstr "El procediment RPC no és vàlid per al programa"
+ #. TRANS No locks available.  This is used by the file locking facilities; see
+-#. TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
++#. TRANS @ref{File Locks}.  This error is never generated by @gnuhurdsystems{}, but
+ #. TRANS it can result from an operation to an NFS server running another
+ #. TRANS operating system.
+ #: sysdeps/gnu/errlist.c:856
+@@ -6378,7 +6564,7 @@
+ msgid "Invalid or incomplete multibyte or wide character"
+ msgstr "El caràcter estès o multioctet no és vàlid o complet"
+-#. TRANS In the GNU system, servers supporting the @code{term} protocol return
++#. TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return
+ #. TRANS this error for certain operations when the caller is not in the
+ #. TRANS foreground process group of the terminal.  Users do not usually see this
+ #. TRANS error because functions such as @code{read} and @code{write} translate
+@@ -6390,7 +6576,7 @@
+ # ivb (2000/10/28)
+ # ivb  Doncs que conste que jo no he sigut!
+-#. TRANS In the GNU system, opening a file returns this error when the file is
++#. TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is
+ #. TRANS translated by a program and the translator program dies while starting
+ #. TRANS up, before it has connected to the file.
+ #: sysdeps/gnu/errlist.c:955
+@@ -6664,10 +6850,14 @@
+ msgid "Operation not possible due to RF-kill"
+ msgstr "L’operació no és possible degut a RFKill"
++#: sysdeps/gnu/errlist.c:1469
++msgid "Memory page has hardware error"
++msgstr "La pàgina de memòria té un error de maquinari"
++
+ # ivb (2001/10/28)
+ # ivb  Codi -> sembla que aquesta és la traducció correcta, ja que tracta
+ # ivb  d'identificar l'error dins un vector de sistemes d'errors del mach. (?)
+-#: sysdeps/mach/_strerror.c:57
++#: sysdeps/mach/_strerror.c:56
+ msgid "Error in unknown error system: "
+ msgstr "Error en un sistema d’errors desconegut: "
+@@ -6739,26 +6929,13 @@
+ msgid "Parameter string not correctly encoded"
+ msgstr "La cadena paràmetre no té una codificació vàlida"
+-#: sysdeps/unix/siglist.c:26
+-msgid "Signal 0"
+-msgstr "Senyal 0"
+-
+-#: sysdeps/unix/siglist.c:32
+-msgid "IOT trap"
+-msgstr "Trampa IOT"
+-
+-#: sysdeps/unix/sysv/linux/i386/readelflib.c:49
++#: sysdeps/unix/sysv/linux/i386/readelflib.c:65
+ #, c-format
+ msgid "%s is for unknown machine %d.\n"
+ msgstr "«%s» és per a la màquina desconeguda %d\n"
+-#: sysdeps/unix/sysv/linux/ia64/makecontext.c:63
++#: sysdeps/unix/sysv/linux/lddlibc4.c:60
+ #, c-format
+-msgid "makecontext: does not know how to handle more than 8 arguments\n"
+-msgstr "makecontext: no es poden tractar més de 8 arguments\n"
+-
+-#: sysdeps/unix/sysv/linux/lddlibc4.c:61
+-#, c-format
+ msgid ""
+ "Usage: lddlibc4 FILE\n"
+ "\n"
+@@ -6766,81 +6943,81 @@
+ "Forma d’ús: lddlibc4 FITXER\n"
+ "\n"
+-#: sysdeps/unix/sysv/linux/lddlibc4.c:82
++#: sysdeps/unix/sysv/linux/lddlibc4.c:81
+ #, c-format
+ msgid "cannot open `%s'"
+ msgstr "no s’ha pogut obrir «%s»"
+-#: sysdeps/unix/sysv/linux/lddlibc4.c:86
++#: sysdeps/unix/sysv/linux/lddlibc4.c:85
+ #, c-format
+ msgid "cannot read header from `%s'"
+ msgstr "no s’ha pogut llegir la capçalera de «%s»"
+-#: timezone/zdump.c:215
++#: timezone/zdump.c:246
+ msgid "lacks alphabetic at start"
+ msgstr "no comença per un caràcter alfabètic"
+-#: timezone/zdump.c:217
++#: timezone/zdump.c:248
+ msgid "has fewer than 3 alphabetics"
+ msgstr "té menys de 3 caràcters alfabètics"
+-#: timezone/zdump.c:219
++#: timezone/zdump.c:250
+ msgid "has more than 6 alphabetics"
+ msgstr "té més de 6 caràcters alfabètics"
+-#: timezone/zdump.c:227
++#: timezone/zdump.c:258
+ msgid "differs from POSIX standard"
+ msgstr "difereix de l’estàndard POSIX"
+ # FIXME: language-dependent
+ # La cadena final és una de les anteriors.  ivb
+-#: timezone/zdump.c:233
++#: timezone/zdump.c:264
+ #, c-format
+ msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+ msgstr "%1$s: avís: l’abreviatura «%3$s» de la zona «%2$s» %4$s\n"
+-#: timezone/zdump.c:242
++#: timezone/zdump.c:273
+ #, c-format
+ msgid ""
+ "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
+ "\n"
+-"Report bugs to tz@elsie.nci.nih.gov.\n"
++"Report bugs to %s.\n"
+ msgstr ""
+ "%s: forma d’ús: %s [--version] [--help] [-v] [-c [ANY_INF,]ANY_SUP]\n"
+ "\tNOM_DE_ZONA…\n"
+ "\n"
+-"Informeu dels errors a tz@elsie.nci.nih.gov.\n"
++"Informeu dels errors a %s.\n"
+-#: timezone/zdump.c:311
++#: timezone/zdump.c:340
+ #, c-format
+ msgid "%s: wild -c argument %s\n"
+ msgstr "%s: l’argument de l’opció «-c» no és vàlid: %s\n"
+-#: timezone/zdump.c:398
++#: timezone/zdump.c:426
+ msgid "Error writing to standard output"
+ msgstr "error en escriure a l’eixida estàndard"
+-#: timezone/zdump.c:421
++#: timezone/zdump.c:439
+ #, c-format
+ msgid "%s: use of -v on system with floating time_t other than float or double\n"
+ msgstr "%s: no es pot emprar «-v» ja que «time_t» en aquest sistema és un tipus flotant diferent de «float» i «double»\n"
+-#: timezone/zic.c:388
++#: timezone/zic.c:361
+ #, c-format
+ msgid "%s: Memory exhausted: %s\n"
+ msgstr "%s: la memòria s’ha exhaurit: %s\n"
+-#: timezone/zic.c:434
++#: timezone/zic.c:401
+ #, c-format
+ msgid "\"%s\", line %d: %s"
+ msgstr "«%s», línia %d: %s"
+-#: timezone/zic.c:437
++#: timezone/zic.c:404
+ #, c-format
+ msgid " (rule from \"%s\", line %d)"
+ msgstr " (regla de «%s», línia %d)"
+-#: timezone/zic.c:449
++#: timezone/zic.c:415
+ msgid "warning: "
+ msgstr "avís: "
+@@ -6848,355 +7025,355 @@
+ # ivb  Deixe algunes paraules per traduir perquè es refereixen a paraules
+ # ivb  reservades dels fitxers amb què treballa zic.
+ # Sembla que la barra al final de la línia no pinta res.  ivb
+-#: timezone/zic.c:459
++#: timezone/zic.c:425
+ #, c-format
+ msgid ""
+ "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+ "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+ "\n"
+-"Report bugs to tz@elsie.nci.nih.gov.\n"
++"Report bugs to %s.\n"
+ msgstr ""
+ "%s: forma d’ús: %s [--version] [--help] [-s] [-v] [-l localtime]\n"
+ "\t[-p posixrules] [-d DIRECTORI] [-L FITXER_SEGONS_INTERCALARS]\n"
+ "\t[-y yearistype] [FITXER…]\n"
+ "\n"
+-"Informeu dels errors a tz@elsie.nci.nih.gov.\n"
++"Informeu dels errors a %s.\n"
+-#: timezone/zic.c:496
++#: timezone/zic.c:460
+ msgid "wild compilation-time specification of zic_t"
+ msgstr "l’especificació de «zic_t» en temps de compiŀlació no és vàlida"
+-#: timezone/zic.c:515
++#: timezone/zic.c:479
+ #, c-format
+ msgid "%s: More than one -d option specified\n"
+ msgstr "%s: s’ha indicat l’opció «-d» més d’una volta\n"
+-#: timezone/zic.c:525
++#: timezone/zic.c:489
+ #, c-format
+ msgid "%s: More than one -l option specified\n"
+ msgstr "%s: s’ha indicat l’opció «-l» més d’una volta\n"
+-#: timezone/zic.c:535
++#: timezone/zic.c:499
+ #, c-format
+ msgid "%s: More than one -p option specified\n"
+ msgstr "%s: s’ha indicat l’opció «-p» més d’una volta\n"
+-#: timezone/zic.c:545
++#: timezone/zic.c:509
+ #, c-format
+ msgid "%s: More than one -y option specified\n"
+ msgstr "%s: s’ha indicat l’opció «-y» més d’una volta\n"
+-#: timezone/zic.c:555
++#: timezone/zic.c:519
+ #, c-format
+ msgid "%s: More than one -L option specified\n"
+ msgstr "%s: s’ha indicat l’opció «-L» més d’una volta\n"
+-#: timezone/zic.c:604
++#: timezone/zic.c:566
+ msgid "link to link"
+ msgstr "enllaç a un altre enllaç"
+-#: timezone/zic.c:669
++#: timezone/zic.c:629
+ msgid "hard link failed, symbolic link used"
+ msgstr "no s’ha pogut crear un enllaç fort, se n’ha emprat un de simbòlic"
+-#: timezone/zic.c:677
++#: timezone/zic.c:637
+ #, c-format
+ msgid "%s: Can't link from %s to %s: %s\n"
+ msgstr "%s: no s’ha pogut crear un enllaç des de «%s» cap a «%s»: %s\n"
+-#: timezone/zic.c:749 timezone/zic.c:751
++#: timezone/zic.c:697 timezone/zic.c:699
+ msgid "same rule name in multiple files"
+ msgstr "el mateix nom de regla és repetit a diversos fitxers"
+-#: timezone/zic.c:792
++#: timezone/zic.c:740
+ msgid "unruly zone"
+ msgstr "la zona no té regles"
+-#: timezone/zic.c:799
++#: timezone/zic.c:747
+ #, c-format
+ msgid "%s in ruleless zone"
+ msgstr "«%s» en una zona sense regles"
+-#: timezone/zic.c:820
++#: timezone/zic.c:767
+ msgid "standard input"
+ msgstr "entrada estàndard"
+-#: timezone/zic.c:825
++#: timezone/zic.c:772
+ #, c-format
+ msgid "%s: Can't open %s: %s\n"
+ msgstr "%s: no s’ha pogut obrir «%s»: %s\n"
+-#: timezone/zic.c:836
++#: timezone/zic.c:783
+ msgid "line too long"
+ msgstr "la línia és massa llarga"
+-#: timezone/zic.c:856
++#: timezone/zic.c:803
+ msgid "input line of unknown type"
+ msgstr "la línia introduïda pertany a un tipus desconegut"
+-#: timezone/zic.c:872
++#: timezone/zic.c:819
+ #, c-format
+ msgid "%s: Leap line in non leap seconds file %s\n"
+ msgstr "%s: línia «Leap» en fitxer no de segons intercalars «%s»\n"
+-#: timezone/zic.c:879 timezone/zic.c:1316 timezone/zic.c:1338
++#: timezone/zic.c:826 timezone/zic.c:1243 timezone/zic.c:1265
+ #, c-format
+ msgid "%s: panic: Invalid l_value %d\n"
+ msgstr "%s: pànic: el valor esquerre %d no és vàlid\n"
+-#: timezone/zic.c:887
++#: timezone/zic.c:834
+ #, c-format
+ msgid "%s: Error reading %s\n"
+ msgstr "%s: error en llegir «%s»\n"
+-#: timezone/zic.c:894
++#: timezone/zic.c:841
+ #, c-format
+ msgid "%s: Error closing %s: %s\n"
+ msgstr "%s: error en tancar «%s»: %s\n"
+-#: timezone/zic.c:899
++#: timezone/zic.c:846
+ msgid "expected continuation line not found"
+ msgstr "cal una línia de continuació, però se’n troba cap"
+-#: timezone/zic.c:943 timezone/zic.c:2480 timezone/zic.c:2499
++#: timezone/zic.c:887 timezone/zic.c:2411 timezone/zic.c:2425
+ msgid "time overflow"
+ msgstr "desbordament de l’hora"
+-#: timezone/zic.c:947
++#: timezone/zic.c:891
+ msgid "24:00 not handled by pre-1998 versions of zic"
+ msgstr "les versions de «zic» anteriors a 1998 no admeten «24:00»"
+-#: timezone/zic.c:950
++#: timezone/zic.c:894
+ msgid "values over 24 hours not handled by pre-2007 versions of zic"
+ msgstr "les versions de «zic» anteriors a 2007 no admeten valors majors que 24 hores"
+-#: timezone/zic.c:963
++#: timezone/zic.c:905
+ msgid "wrong number of fields on Rule line"
+ msgstr "el nombre de camps de la línia «Rule» és incorrecte"
+-#: timezone/zic.c:967
++#: timezone/zic.c:909
+ msgid "nameless rule"
+ msgstr "la regla no té nom"
+-#: timezone/zic.c:972
++#: timezone/zic.c:914
+ msgid "invalid saved time"
+ msgstr "el temps estalviat no és vàlid"
+-#: timezone/zic.c:993
++#: timezone/zic.c:932
+ msgid "wrong number of fields on Zone line"
+ msgstr "el nombre de camps de la línia «Zone» no és correcte"
+-#: timezone/zic.c:999
++#: timezone/zic.c:938
+ #, c-format
+ msgid "\"Zone %s\" line and -l option are mutually exclusive"
+ msgstr "la línia «Zone %s» i l’opció «-l» són mútuament excloents"
+-#: timezone/zic.c:1007
++#: timezone/zic.c:946
+ #, c-format
+ msgid "\"Zone %s\" line and -p option are mutually exclusive"
+ msgstr "la línia «Zone %s» i l’opció «-p» són mútuament excloents"
+-#: timezone/zic.c:1019
++#: timezone/zic.c:958
+ #, c-format
+ msgid "duplicate zone name %s (file \"%s\", line %d)"
+ msgstr "el nom de zona «%s» (fitxer «%s», línia %d) és duplicat"
+-#: timezone/zic.c:1035
++#: timezone/zic.c:972
+ msgid "wrong number of fields on Zone continuation line"
+ msgstr "el nombre de camps de la línia de continuació de «Zone» no és correcte"
+-#: timezone/zic.c:1075
++#: timezone/zic.c:1009
+ msgid "invalid UTC offset"
+ msgstr "el desplaçament d’UTC no és vàlid"
+-#: timezone/zic.c:1078
++#: timezone/zic.c:1012
+ msgid "invalid abbreviation format"
+ msgstr "el format de l’abreviatura no és vàlid"
+-#: timezone/zic.c:1107
++#: timezone/zic.c:1041
+ msgid "Zone continuation line end time is not after end time of previous line"
+ msgstr "el temps final de la línia de continuació de «Zone» no ve darrere del temps final de la línia anterior"
+-#: timezone/zic.c:1135
++#: timezone/zic.c:1066
+ msgid "wrong number of fields on Leap line"
+ msgstr "el nombre de camps de la línia «Leap» no és correcte"
+-#: timezone/zic.c:1144
++#: timezone/zic.c:1075
+ msgid "invalid leaping year"
+ msgstr "l’any bixest no és vàlid"
+-#: timezone/zic.c:1164 timezone/zic.c:1270
++#: timezone/zic.c:1095 timezone/zic.c:1197
+ msgid "invalid month name"
+ msgstr "el nom del mes no és vàlid"
+-#: timezone/zic.c:1177 timezone/zic.c:1383 timezone/zic.c:1397
++#: timezone/zic.c:1108 timezone/zic.c:1310 timezone/zic.c:1324
+ msgid "invalid day of month"
+ msgstr "el dia del mes no és vàlid"
+-#: timezone/zic.c:1182
++#: timezone/zic.c:1113
+ msgid "time before zero"
+ msgstr "l’hora és anterior a zero"
+-#: timezone/zic.c:1186
++#: timezone/zic.c:1117
+ msgid "time too small"
+ msgstr "l’hora és massa menuda"
+-#: timezone/zic.c:1190
++#: timezone/zic.c:1121
+ msgid "time too large"
+ msgstr "l’hora és massa gran"
+-#: timezone/zic.c:1194 timezone/zic.c:1299
++#: timezone/zic.c:1125 timezone/zic.c:1226
+ msgid "invalid time of day"
+ msgstr "l’hora del dia no és vàlida"
+-#: timezone/zic.c:1213
++#: timezone/zic.c:1144
+ msgid "illegal CORRECTION field on Leap line"
+ msgstr "el camp de correcció de la línia de «Leap» no és vàlid"
+-#: timezone/zic.c:1218
++#: timezone/zic.c:1149
+ msgid "illegal Rolling/Stationary field on Leap line"
+ msgstr "el camp «Rolling/Stationary» de la línia «Leap» no és vàlid"
+-#: timezone/zic.c:1234
++#: timezone/zic.c:1163
+ msgid "wrong number of fields on Link line"
+ msgstr "el nombre de camps de la línia «Link» no és correcte"
+ # El nom del camp no és una paraula clau del fitxer.  ivb
+-#: timezone/zic.c:1238
++#: timezone/zic.c:1167
+ msgid "blank FROM field on Link line"
+ msgstr "el camp d’inici de la línia «Link» és buit"
+ # El nom del camp no és una paraula clau del fitxer.  ivb
+-#: timezone/zic.c:1242
++#: timezone/zic.c:1171
+ msgid "blank TO field on Link line"
+ msgstr "el camp d’acabament de la línia «Link» és buit"
+-#: timezone/zic.c:1320
++#: timezone/zic.c:1247
+ msgid "invalid starting year"
+ msgstr "l’any de començament no és vàlid"
+-#: timezone/zic.c:1342
++#: timezone/zic.c:1269
+ msgid "invalid ending year"
+ msgstr "l’any d’acabament no és vàlid"
+-#: timezone/zic.c:1346
++#: timezone/zic.c:1273
+ msgid "starting year greater than ending year"
+ msgstr "l’any de començament és major que el d’acabament"
+-#: timezone/zic.c:1353
++#: timezone/zic.c:1280
+ msgid "typed single year"
+ msgstr "s’ha especificat un sol any"
+-#: timezone/zic.c:1388
++#: timezone/zic.c:1315
+ msgid "invalid weekday name"
+ msgstr "el nom del dia de la setmana no és vàlid"
+-#: timezone/zic.c:1566
++#: timezone/zic.c:1481
+ #, c-format
+ msgid "%s: Can't remove %s: %s\n"
+ msgstr "%s: no s’ha pogut eliminar «%s»: %s\n"
+-#: timezone/zic.c:1576
++#: timezone/zic.c:1491
+ #, c-format
+ msgid "%s: Can't create %s: %s\n"
+ msgstr "%s: no s’ha pogut crear «%s»: %s\n"
+-#: timezone/zic.c:1726
++#: timezone/zic.c:1683
+ #, c-format
+ msgid "%s: Error writing %s\n"
+ msgstr "%s: error en escriure «%s»\n"
+-#: timezone/zic.c:2019
++#: timezone/zic.c:1964
+ msgid "no POSIX environment variable for zone"
+ msgstr "no s’ha establert una variable d’entorn POSIX per a la zona"
+-#: timezone/zic.c:2176
++#: timezone/zic.c:2131
+ msgid "can't determine time zone abbreviation to use just after until time"
+ msgstr "no s’ha pogut determinar l’abreviatura de zona horària a emprar just després de la data límit (until)"
+-#: timezone/zic.c:2222
++#: timezone/zic.c:2175
+ msgid "too many transitions?!"
+ msgstr "hi ha massa transicions?!"
+-#: timezone/zic.c:2241
++#: timezone/zic.c:2190
+ msgid "internal error - addtype called with bad isdst"
+ msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «isdst»"
+-#: timezone/zic.c:2245
++#: timezone/zic.c:2194
+ msgid "internal error - addtype called with bad ttisstd"
+ msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisstd»"
+-#: timezone/zic.c:2249
++#: timezone/zic.c:2198
+ msgid "internal error - addtype called with bad ttisgmt"
+ msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisgmt»"
+-#: timezone/zic.c:2268
++#: timezone/zic.c:2217
+ msgid "too many local time types"
+ msgstr "hi ha massa tipus d’hora local"
+-#: timezone/zic.c:2272
++#: timezone/zic.c:2221
+ msgid "UTC offset out of range"
+ msgstr "el desplaçament respecte UTC és fora de rang"
+-#: timezone/zic.c:2300
++#: timezone/zic.c:2245
+ msgid "too many leap seconds"
+ msgstr "hi ha massa segons intercalars"
+-#: timezone/zic.c:2306
++#: timezone/zic.c:2251
+ msgid "repeated leap second moment"
+ msgstr "el moment de segon intercalar és repetit"
+-#: timezone/zic.c:2358
++#: timezone/zic.c:2301
+ msgid "Wild result from command execution"
+ msgstr "l’execució de l’ordre ha donat un resultat estrany"
+-#: timezone/zic.c:2359
++#: timezone/zic.c:2302
+ #, c-format
+ msgid "%s: command was '%s', result was %d\n"
+ msgstr "%s: l’ordre ha estat «%s», el resultat ha estat %d\n"
+ # ivb (2001/10/30)
+ # ivb  Es refereix a les cometes dobles «"».
+-#: timezone/zic.c:2457
++#: timezone/zic.c:2393
+ msgid "Odd number of quotation marks"
+ msgstr "el nombre de cometes és senar"
+-#: timezone/zic.c:2546
++#: timezone/zic.c:2470
+ msgid "use of 2/29 in non leap-year"
+ msgstr "s’ha emprat el dia 29 de febrer en un any no bixest"
+-#: timezone/zic.c:2581
++#: timezone/zic.c:2505
+ msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+ msgstr "la regla va més enllà de l’inici o fi del mes; no funcionarà en les versions de «zic» anteriors a 2004"
+-#: timezone/zic.c:2613
++#: timezone/zic.c:2536
+ msgid "time zone abbreviation lacks alphabetic at start"
+ msgstr "l’abreviatura de la zona horària no comença per un caràcter alfabètic"
+-#: timezone/zic.c:2615
+-msgid "time zone abbreviation has more than 3 alphabetics"
+-msgstr "l’abreviatura de la zona horària té més de 3 caràcters alfabètics"
++#: timezone/zic.c:2538
++msgid "time zone abbreviation has fewer than 3 alphabetics"
++msgstr "l’abreviatura de la zona horària té menys de 3 caràcters alfabètics"
+-#: timezone/zic.c:2617
++#: timezone/zic.c:2540
+ msgid "time zone abbreviation has too many alphabetics"
+ msgstr "l’abreviatura de la zona horària té massa caràcters alfabètics"
+-#: timezone/zic.c:2627
++#: timezone/zic.c:2550
+ msgid "time zone abbreviation differs from POSIX standard"
+ msgstr "l’abreviatura de la zona horària difereix de l’estàndard POSIX"
+-#: timezone/zic.c:2639
++#: timezone/zic.c:2562
+ msgid "too many, or too long, time zone abbreviations"
+ msgstr "hi ha massa abreviatures de zona horària (o són massa llargues)"
+-#: timezone/zic.c:2680
++#: timezone/zic.c:2602
+ #, c-format
+ msgid "%s: Can't create directory %s: %s\n"
+ msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
+ # ivb (2001/10/28)
+ # ivb  Resulta d'assignar un «int» a un «long».
+-#: timezone/zic.c:2702
++#: timezone/zic.c:2623
+ #, c-format
+ msgid "%s: %d did not sign extend correctly\n"
+ msgstr "%s: el signe de %d no s’ha estès correctament\n"
+
+Property changes on: .
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Merged /fsf/glibc-2_17-branch:r22064-22177
+
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch
new file mode 100644 (file)
index 0000000..4313aa5
--- /dev/null
@@ -0,0 +1,21 @@
+In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM'
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function)
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.)
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function)
+make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1
+
+Upstream-Status: Pending
+
+--- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig
++++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+@@ -25,6 +25,7 @@
+ #include <atomic.h>
+ #include <sysdep.h>
+ #include <kernel-features.h>
++#include <tls.h>
+ #define FUTEX_WAIT            0
+ #define FUTEX_WAKE            1
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch
new file mode 100644 (file)
index 0000000..bbf4605
--- /dev/null
@@ -0,0 +1,38 @@
+Upstream-Status: backport
+
+Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+2012/05/09
+
+Index: libc/posix/xregex.c
+===================================================================
+--- libc.orig/posix/xregex.c
++++ libc/posix/xregex.c
+@@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P
+                                 _NL_CURRENT (LC_COLLATE,
+                                              _NL_COLLATE_INDIRECTWC);
+-                              idx = findidx ((const wint_t**)&cp);
++                              idx = findidx ((const wint_t**)&cp, -1);
+                               if (idx == 0 || cp < (wint_t*) str + c1)
+                                 /* This is no valid character.  */
+                                 FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P
+                           indirect = (const int32_t *)
+                             _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+-                          idx = findidx (&cp);
++                          idx = findidx (&cp, -1);
+                           if (idx == 0 || cp < str + c1)
+                             /* This is no valid character.  */
+                             FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt
+                     }
+                   str_buf[i] = TRANSLATE(*(d+i));
+                   str_buf[i+1] = '\0'; /* sentinel */
+-                  idx2 = findidx ((const wint_t**)&cp);
++                  idx2 = findidx ((const wint_t**)&cp, -1);
+                 }
+               /* Update d, however d will be incremented at
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch b/meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch
new file mode 100644 (file)
index 0000000..2ca0bca
--- /dev/null
@@ -0,0 +1,22 @@
+Fix error like
+
+/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/build-mips64-oe-linux/libc_pic.os: In function `_IO_new_file_fopen':
+/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/eglibc-2_16/libc/libio/fileops.c:431: undefined reference to `_IO_file_close_it_internal'
+collect2: error: ld returned 1 exit status
+
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: libc/libio/fileops.c
+===================================================================
+--- libc.orig/libio/fileops.c  2012-07-04 18:25:47.000000000 -0700
++++ libc/libio/fileops.c       2012-07-24 00:21:17.220322557 -0700
+@@ -428,7 +428,7 @@
+         result->_mode = 1;
+ #else
+           /* Treat this as if we couldn't find the given character set.  */
+-          (void) INTUSE(_IO_file_close_it) (fp);
++          (void) _IO_file_close_it (fp);
+           __set_errno (EINVAL);
+           return NULL;
+ #endif
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch b/meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch
new file mode 100644 (file)
index 0000000..25c43a9
--- /dev/null
@@ -0,0 +1,38 @@
+cross localedef fails to compile these locales because name_fmt field is empty
+It is not acceptable for cross localedef and it errors out
+
+LC_NAME: field `name_fmt' not defined
+
+We therefore give a dummy string to the format, the real fix needs some native
+tibetian person to define proper name_fmt
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: libc/localedata/locales/bo_CN
+===================================================================
+--- libc.orig/localedata/locales/bo_CN 2012-11-17 09:50:14.000000000 -0800
++++ libc/localedata/locales/bo_CN      2013-01-04 08:55:15.593612288 -0800
+@@ -145,7 +145,7 @@
+ LC_NAME
+ % FIXME
+-name_fmt  ""
++name_fmt  "FIXME"
+ % name_gen    "FIXME"
+ % name_miss   "FIXME"
+ % name_mr     "FIXME"
+Index: libc/localedata/locales/bo_IN
+===================================================================
+--- libc.orig/localedata/locales/bo_IN 2012-11-17 09:50:14.000000000 -0800
++++ libc/localedata/locales/bo_IN      2013-01-04 08:54:12.345609028 -0800
+@@ -70,7 +70,7 @@
+ LC_NAME
+ % FIXME
+-name_fmt      ""
++name_fmt      "FIXME"
+ % name_gen    "FIXME"
+ % name_miss   "FIXME"
+ % name_mr     "FIXME"
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch b/meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch
new file mode 100644 (file)
index 0000000..7618c99
--- /dev/null
@@ -0,0 +1,18 @@
+Upstream-Status: Inappropriate [other]
+
+This is a hack to fix building the locale bits on an older
+CentOs 5.X machine
+
+Index: eglibc-2_16/libc/locale/programs/config.h
+===================================================================
+--- eglibc-2_16.orig/libc/locale/programs/config.h
++++ eglibc-2_16/libc/locale/programs/config.h
+@@ -19,6 +19,8 @@
+ #ifndef _LD_CONFIG_H
+ #define _LD_CONFIG_H  1
++#define DUMMY_LOCALE_T
++
+ /* Use the internal textdomain used for libc messages.  */
+ #define PACKAGE _libc_intl_domainname
+ #ifndef VERSION
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch b/meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch
new file mode 100644 (file)
index 0000000..511ee9d
--- /dev/null
@@ -0,0 +1,100 @@
+Create e5500 specific math_private.h and let it include when compiling for e5500/64bit core
+We prefefine __CPU_HAS_FSQRT to 0 and then in general ppc64 math_private.h we check if its
+already defined before redefining it. This way we can ensure that on e5500 builds it wont
+emit fsqrt intructions
+
+-Khem
+
+Upstream-Status: Pending
+
+Index: libc/sysdeps/powerpc/fpu/math_private.h
+===================================================================
+--- libc.orig/sysdeps/powerpc/fpu/math_private.h
++++ libc/sysdeps/powerpc/fpu/math_private.h
+@@ -25,10 +25,12 @@
+ #include <dl-procinfo.h>
+ #include_next <math_private.h>
+-# if __WORDSIZE == 64 || defined _ARCH_PWR4
+-#  define __CPU_HAS_FSQRT 1
+-# else
+-#  define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
++# ifndef __CPU_HAS_FSQRT
++#  if __WORDSIZE == 64 || defined _ARCH_PWR4
++#   define __CPU_HAS_FSQRT 1
++#  else
++#   define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
++#  endif
+ # endif
+ extern double __slow_ieee754_sqrt (double);
+Index: libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h
+===================================================================
+--- /dev/null
++++ libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h
+@@ -0,0 +1,9 @@
++#ifndef _E5500_MATH_PRIVATE_H_
++#define _E5500_MATH_PRIVATE_H_ 1
++/* E5500 core FPU does not implement
++   fsqrt */
++
++#define __CPU_HAS_FSQRT 0
++#include_next <math_private.h>
++
++#endif /* _E5500_MATH_PRIVATE_H_ */
+Index: libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h
+===================================================================
+--- /dev/null
++++ libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h
+@@ -0,0 +1,9 @@
++#ifndef _E6500_MATH_PRIVATE_H_
++#define _E6500_MATH_PRIVATE_H_ 1
++/* E6500 core FPU does not implement
++   fsqrt */
++
++#define __CPU_HAS_FSQRT 0
++#include_next <math_private.h>
++
++#endif /* _E6500_MATH_PRIVATE_H_ */
+Index: libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h
+===================================================================
+--- /dev/null
++++ libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h
+@@ -0,0 +1,9 @@
++#ifndef _E500MC_MATH_PRIVATE_H_
++#define _E500MC_MATH_PRIVATE_H_ 1
++/* E500MC core FPU does not implement
++   fsqrt */
++
++#define __CPU_HAS_FSQRT 0
++#include_next <math_private.h>
++
++#endif /* _E500MC_MATH_PRIVATE_H_ */
+Index: libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h
+===================================================================
+--- /dev/null
++++ libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h
+@@ -0,0 +1,9 @@
++#ifndef _E5500_MATH_PRIVATE_H_
++#define _E5500_MATH_PRIVATE_H_ 1
++/* E5500 core FPU does not implement
++   fsqrt */
++
++#define __CPU_HAS_FSQRT 0
++#include_next <math_private.h>
++
++#endif /* _E5500_MATH_PRIVATE_H_ */
+Index: libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h
+===================================================================
+--- /dev/null
++++ libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h
+@@ -0,0 +1,9 @@
++#ifndef _E6500_MATH_PRIVATE_H_
++#define _E6500_MATH_PRIVATE_H_ 1
++/* E6500 core FPU does not implement
++   fsqrt */
++
++#define __CPU_HAS_FSQRT 0
++#include_next <math_private.h>
++
++#endif /* _E6500_MATH_PRIVATE_H_ */
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk
new file mode 100644 (file)
index 0000000..d2a28c2
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/make
+
+include $(IN)
+
+all:
+       rm -f $(OUT)
+       touch $(OUT)
+       for locale in $(SUPPORTED-LOCALES); do \
+               [ $$locale = true ] && continue; \
+               echo $$locale | sed 's,/, ,' >> $(OUT); \
+       done
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch b/meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch
new file mode 100644 (file)
index 0000000..a669729
--- /dev/null
@@ -0,0 +1,1491 @@
+Signed-of-by: Edmar Wienskoski <edmar@freescale.com>
+Upstream-Status: Pending
+
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c      1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c   2012-06-14 14:51:50.452001745 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c  2012-06-14 14:51:50.452001745 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c    1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2012-06-14 14:55:14.749001061 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c   1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c        2012-06-14 14:55:14.749001061 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c  2012-06-14 14:55:21.812002270 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c    1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2012-06-14 14:55:21.812002270 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c  2012-06-14 14:55:24.620001266 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c    1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2012-06-14 14:55:24.620001266 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c  2012-06-14 14:51:50.452001745 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c    1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-06-14 14:51:50.452001745 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+--- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c  2012-06-14 14:56:02.080000985 -0500
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+--- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c    1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2012-06-14 14:56:02.080000985 -0500
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++      feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies       1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies    2012-06-14 14:51:50.452001745 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc32/603e/fpu
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies     1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies  2012-06-14 14:54:00.481000876 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc32/e500mc/fpu
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies      1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies   2012-06-14 14:54:17.000001007 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc32/e5500/fpu
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies      1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies   2012-06-14 14:54:31.054001299 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc32/e6500/fpu
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies      1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies   2012-06-14 14:51:50.453001709 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc64/e5500/fpu
+diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies
+--- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies      1969-12-31 18:00:00.000000000 -0600
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies   2012-06-14 14:58:14.298001288 -0500
+@@ -0,0 +1 @@
++powerpc/powerpc64/e6500/fpu
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch
new file mode 100644 (file)
index 0000000..be29856
--- /dev/null
@@ -0,0 +1,20 @@
+This is needed since initgroups belongs to NET group
+so when NET is disabled in eglibc build then it reports
+as undefined symbol
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: libc/nss/getent.c
+===================================================================
+--- libc.orig/nss/getent.c     2012-03-09 09:41:57.099581559 -0800
++++ libc/nss/getent.c  2012-03-09 09:42:13.095582334 -0800
+@@ -898,7 +898,7 @@
+ D(group)
+ D(gshadow)
+ DN(hosts)
+-D(initgroups)
++DN(initgroups)
+ DN(netgroup)
+ DN(networks)
+ D(passwd)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch
new file mode 100644 (file)
index 0000000..e83a0ad
--- /dev/null
@@ -0,0 +1,56 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+The default lib search path order is:
+
+  1) LD_LIBRARY_PATH
+  2) RPATH from the binary
+  3) ld.so.cache
+  4) default search paths embedded in the linker
+
+For nativesdk binaries which are being used alongside binaries on a host system, we 
+need the search paths to firstly search the shipped nativesdk libs but then also
+cover the host system. For example we want the host system's libGL and this may be
+in a non-standard location like /usr/lib/mesa. The only place the location is know 
+about is in the ld.so.cache of the host system.
+
+Since nativesdk has a simple structure and doesn't need to use a cache itself, we 
+repurpose the cache for use as a last resort in finding host system binaries. This 
+means we need to switch the order of 3 and 4 above to make this work effectively.
+
+RP 14/10/2010
+
+Index: libc/elf/dl-load.c
+===================================================================
+--- libc.orig/elf/dl-load.c    2012-12-02 13:11:45.000000000 -0800
++++ libc/elf/dl-load.c 2013-01-09 07:00:59.135223084 -0800
+@@ -2215,7 +2215,14 @@
+       fd = open_path (name, namelen, mode & __RTLD_SECURE,
+                       &loader->l_runpath_dirs, &realname, &fb, loader,
+                       LA_SER_RUNPATH, &found_other_class);
+-
++      /* try the default path.  */
++      if (fd == -1
++        && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
++         || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
++       && rtld_search_dirs.dirs != (void *) -1)
++      fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
++                      &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
++      /* Finally try ld.so.cache */
+ #ifdef USE_LDCONFIG
+       if (fd == -1
+         && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
+@@ -2283,14 +2290,6 @@
+       }
+ #endif
+-      /* Finally, try the default path.  */
+-      if (fd == -1
+-        && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
+-            || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
+-        && rtld_search_dirs.dirs != (void *) -1)
+-      fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
+-                      &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
+-
+       /* Add another newline when we are tracing the library loading.  */
+       if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
+       _dl_debug_printf ("\n");
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch
new file mode 100644 (file)
index 0000000..9b646fe
--- /dev/null
@@ -0,0 +1,26 @@
+
+On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
+section if a --version-script sets _RLD_MAP to local. This is apparently
+a binutils bug, but libc shouldn't segfault in this case.
+
+see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
+
+Upstream-Status: Pending
+
+9/19/2010 - added by Qing He <qing.he@intel.com>
+
+
+---
+diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
+--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h  2009-05-16 16:36:20.000000000 +0800
++++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h       2010-09-19 09:11:53.000000000 +0800
+@@ -70,7 +70,8 @@
+ /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
+    with the run-time address of the r_debug structure  */
+ #define ELF_MACHINE_DEBUG_SETUP(l,r) \
+-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
++do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
++         (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
+        *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
+        (ElfW(Addr)) (r); \
+    } while (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch
new file mode 100644 (file)
index 0000000..1542b1b
--- /dev/null
@@ -0,0 +1,17 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of 
+variable EGLIBC_KNOWN_INTERPRETER_NAMES.
+
+Lianhao Lu, 08/01/2011
+
+--- libc/elf/readlib.c.orig    2011-08-12 17:05:51.864470837 +0800
++++ libc/elf/readlib.c 2011-08-12 17:06:39.346942074 +0800
+@@ -52,6 +52,7 @@
+ #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES
+   SYSDEP_KNOWN_INTERPRETER_NAMES
+ #endif
++  OECORE_KNOWN_INTERPRETER_NAMES
+ };
+ static struct known_names known_libs[] =
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch
new file mode 100644 (file)
index 0000000..6ea666b
--- /dev/null
@@ -0,0 +1,184 @@
+on ppc fixes the errors like below
+| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
+| collect2: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+ChangeLog
+
+2012-01-06  Khem Raj  <raj.khem@gmail.com>
+
+       * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
+       Remove cruft.
+       * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
+       * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
+       * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+@@ -39,14 +39,8 @@ static const float half = 0.5;
+    We find the actual square root and half of its reciprocal
+    simultaneously.  */
+-#ifdef __STDC__
+ double
+ __ieee754_sqrt (double b)
+-#else
+-double
+-__ieee754_sqrt (b)
+-     double b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
+    We find the reciprocal square root and use that to compute the actual
+    square root.  */
+-#ifdef __STDC__
+ float
+ __ieee754_sqrtf (float b)
+-#else
+-float
+-__ieee754_sqrtf (b)
+-     float b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+@@ -39,14 +39,8 @@ static const float half = 0.5;
+    We find the actual square root and half of its reciprocal
+    simultaneously.  */
+-#ifdef __STDC__
+ double
+ __ieee754_sqrt (double b)
+-#else
+-double
+-__ieee754_sqrt (b)
+-     double b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -132,3 +126,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+@@ -37,14 +37,8 @@ static const float threehalf = 1.5;
+    We find the reciprocal square root and use that to compute the actual
+    square root.  */
+-#ifdef __STDC__
+ float
+ __ieee754_sqrtf (float b)
+-#else
+-float
+-__ieee754_sqrtf (b)
+-     float b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -99,3 +93,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+@@ -132,3 +132,4 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+@@ -99,3 +99,4 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch
new file mode 100644 (file)
index 0000000..60532cb
--- /dev/null
@@ -0,0 +1,365 @@
+ __ieee754_sqrt{,f} are now inline functions and call out __slow versions
+
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+@@ -40,7 +40,7 @@ static const float half = 0.5;
+    simultaneously.  */
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+@@ -38,7 +38,7 @@ static const float threehalf = 1.5;
+    square root.  */
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -93,4 +93,10 @@ __ieee754_sqrtf (float b)
+     }
+   return f_washf (b);
+ }
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+@@ -40,7 +40,7 @@ static const float half = 0.5;
+    simultaneously.  */
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++  return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+@@ -38,7 +38,7 @@ static const float threehalf = 1.5;
+    square root.  */
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -93,4 +93,11 @@ __ieee754_sqrtf (float b)
+     }
+   return f_washf (b);
+ }
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
++
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
+@@ -41,10 +41,10 @@ static const float half = 0.5;
+ #ifdef __STDC__
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ #else
+ double
+-__ieee754_sqrt (b)
++__slow_ieee754_sqrt (b)
+      double b;
+ #endif
+ {
+@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
+@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
+ #ifdef __STDC__
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ #else
+ float
+-__ieee754_sqrtf (b)
++__slow_ieee754_sqrtf (b)
+      float b;
+ #endif
+ {
+@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
++
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
+@@ -41,10 +41,10 @@ static const float half = 0.5;
+ #ifdef __STDC__
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ #else
+ double
+-__ieee754_sqrt (b)
++__slow_ieee754_sqrt (b)
+      double b;
+ #endif
+ {
+@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
+@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
+ #ifdef __STDC__
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ #else
+ float
+-__ieee754_sqrtf (b)
++__slow_ieee754_sqrtf (b)
+      float b;
+ #endif
+ {
+@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
++
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
+@@ -41,10 +41,10 @@ static const float half = 0.5;
+ #ifdef __STDC__
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ #else
+ double
+-__ieee754_sqrt (b)
++__slow_ieee754_sqrt (b)
+      double b;
+ #endif
+ {
+@@ -83,7 +83,7 @@ __ieee754_sqrt (b)
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
+@@ -39,10 +39,10 @@ static const float threehalf = 1.5;
+ #ifdef __STDC__
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ #else
+ float
+-__ieee754_sqrtf (b)
++__slow_ieee754_sqrtf (b)
+      float b;
+ #endif
+ {
+@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
++
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
+@@ -132,4 +132,12 @@ __ieee754_sqrt (b)
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
++++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
+@@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
+     }
+   return f_washf (b);
+ }
++
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
++
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch
new file mode 100644 (file)
index 0000000..ca5f17b
--- /dev/null
@@ -0,0 +1,108 @@
+Upstream-Status: Inappropriate [SDK specific]
+
+This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings
+and lengths as well as ld.so.cache path in the dynamic loader to specific
+sections in memory. The sections that contain paths have been allocated a 4096
+byte section, which is the maximum path length in linux. This will allow the
+relocating script to parse the ELF binary, detect the section and easily replace
+the strings in a certain path.
+
+Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
+
+Index: libc/elf/interp.c
+===================================================================
+--- libc.orig/elf/interp.c
++++ libc/elf/interp.c
+@@ -16,5 +16,5 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+-const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
++const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
+   = RUNTIME_LINKER;
+Index: libc/elf/dl-load.c
+===================================================================
+--- libc.orig/elf/dl-load.c
++++ libc/elf/dl-load.c
+@@ -144,8 +144,8 @@ static size_t max_capstrlen attribute_re
+ /* Get the generated information about the trusted directories.  */
+ #include "trusted-dirs.h"
+-static const char system_dirs[] = SYSTEM_DIRS;
+-static const size_t system_dirs_len[] =
++static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS;
++volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) =
+ {
+   SYSTEM_DIRS_LEN
+ };
+Index: libc/elf/dl-cache.c
+===================================================================
+--- libc.orig/elf/dl-cache.c
++++ libc/elf/dl-cache.c
+@@ -133,6 +133,10 @@ do                                                                              \
+ while (0)
++const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) =
++              SYSCONFDIR "/ld.so.cache";
++
++
+ int
+ internal_function
+ _dl_cache_libcmp (const char *p1, const char *p2)
+Index: libc/elf/ldconfig.c
+===================================================================
+--- libc.orig/elf/ldconfig.c
++++ libc/elf/ldconfig.c
+@@ -166,6 +166,9 @@ static struct argp argp =
+   options, parse_opt, NULL, doc, NULL, more_help, NULL
+ };
++
++extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache")));
++
+ /* Check if string corresponds to an important hardware capability or
+    a platform.  */
+ static int
+Index: libc/sysdeps/generic/dl-cache.h
+===================================================================
+--- libc.orig/sysdeps/generic/dl-cache.h
++++ libc/sysdeps/generic/dl-cache.h
+@@ -27,10 +27,6 @@
+   ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID)
+ #endif
+-#ifndef LD_SO_CACHE
+-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
+-#endif
+-
+ #ifndef add_system_dir
+ # define add_system_dir(dir) add_dir (dir)
+ #endif
+Index: libc/elf/rtld.c
+===================================================================
+--- libc.orig/elf/rtld.c
++++ libc/elf/rtld.c
+@@ -99,6 +99,7 @@ uintptr_t __pointer_chk_guard_local
+ strong_alias (__pointer_chk_guard_local, __pointer_chk_guard)
+ #endif
++extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache")));
+ /* List of auditing DSOs.  */
+ static struct audit_list
+@@ -1031,12 +1032,12 @@ of this helper program; chances are you
+   --list                list all dependencies and how they are resolved\n\
+   --verify              verify that given object really is a dynamically linked\n\
+                       object we can handle\n\
+-  --inhibit-cache       Do not use " LD_SO_CACHE "\n\
++  --inhibit-cache       Do not use %s\n\
+   --library-path PATH   use given PATH instead of content of the environment\n\
+                       variable LD_LIBRARY_PATH\n\
+   --inhibit-rpath LIST  ignore RUNPATH and RPATH information in object names\n\
+                       in LIST\n\
+-  --audit LIST          use objects named in LIST as auditors\n");
++  --audit LIST          use objects named in LIST as auditors\n", LD_SO_CACHE);
+       ++_dl_skip_args;
+       --_dl_argc;
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch
new file mode 100644 (file)
index 0000000..f164f8f
--- /dev/null
@@ -0,0 +1,41 @@
+Upstream-Status: Inappropriate [SDK specific]
+
+eglibc-nativesdk: Fix buffer overrun with a relocated SDK
+
+When ld-linux-*.so.2 is relocated to a path that is longer than the
+original fixed location, the dynamic loader will crash in open_path
+because it implicitly assumes that max_dirnamelen is a fixed size that
+never changes.
+
+The allocated buffer will not be large enough to contain the directory
+path string which is larger than the fixed location provided at build
+time.
+
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+
+---
+ elf/dl-load.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/elf/dl-load.c
++++ b/elf/dl-load.c
+@@ -1919,7 +1919,19 @@ open_path (const char *name, size_t name
+        given on the command line when rtld is run directly.  */
+     return -1;
++  do
++    {
++      struct r_search_path_elem *this_dir = *dirs;
++      if (this_dir->dirnamelen > max_dirnamelen)
++      {
++        max_dirnamelen = this_dir->dirnamelen;
++      }
++    }
++  while (*++dirs != NULL);
++
+   buf = alloca (max_dirnamelen + max_capstrlen + namelen);
++
++  dirs = sps->dirs;
+   do
+     {
+       struct r_search_path_elem *this_dir = *dirs;
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch
new file mode 100644 (file)
index 0000000..dc9949b
--- /dev/null
@@ -0,0 +1,42 @@
+tzselect: workaround bug in busybox awk
+
+busybox's version of awk in version 1.20.2 and lower doesn't support
+escape sequences in conjunction with the -F option. Use -v FS= instead
+as a workaround until the bug is fixed.
+
+Reference:
+https://bugs.busybox.net/show_bug.cgi?id=5126
+
+Upstream-Status: Inappropriate [other]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+--- libc/timezone/tzselect.ksh
++++ libc/timezone/tzselect.ksh
+@@ -208,7 +208,7 @@ while
+               TZ_for_date=$TZ;;
+       *)
+               # Get list of names of countries in the continent or ocean.
+-              countries=$($AWK -F'\t' \
++              countries=$($AWK -v FS="\t" \
+                       -v continent="$continent" \
+                       -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
+               '
+@@ -252,7 +252,7 @@ while
+               # Get list of names of time zone rule regions in the country.
+-              regions=$($AWK -F'\t' \
++              regions=$($AWK -v FS="\t" \
+                       -v country="$country" \
+                       -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
+               '
+@@ -289,7 +289,7 @@ while
+               esac
+               # Determine TZ from country and region.
+-              TZ=$($AWK -F'\t' \
++              TZ=$($AWK -v FS="\t" \
+                       -v country="$country" \
+                       -v region="$region" \
+                       -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch
new file mode 100644 (file)
index 0000000..e9a3691
--- /dev/null
@@ -0,0 +1,156 @@
+tzselect: eliminate ksh-dependency
+
+This is an adapted version of a patch originally
+by Peter Seebach <peter.seebach@windriver.com> found here:
+http://www.eglibc.org/archives/patches/msg00671.html
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Index: libc/timezone/tzselect.ksh
+===================================================================
+--- libc.orig/timezone/tzselect.ksh    2012-11-17 09:50:14.000000000 -0800
++++ libc/timezone/tzselect.ksh 2013-01-03 22:46:26.423844259 -0800
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ PKGVERSION='(tzcode) '
+ TZVERSION=see_Makefile
+@@ -11,23 +11,80 @@
+ # Porting notes:
+ #
+-# This script requires a Posix-like shell with the extension of a
+-# 'select' statement.  The 'select' statement was introduced in the
+-# Korn shell and is available in Bash and other shell implementations.
+-# If your host lacks both Bash and the Korn shell, you can get their
+-# source from one of these locations:
++# func_select allows this script to run on shells (such as busybox ash)
++# which lack the ksh "select" builtin.
+ #
+-#     Bash <http://www.gnu.org/software/bash/bash.html>
+-#     Korn Shell <http://www.kornshell.com/>
+-#     Public Domain Korn Shell <http://www.cs.mun.ca/~michael/pdksh/>
+-#
+-# This script also uses several features of modern awk programs.
++# This script uses several features of modern awk programs.
+ # If your host lacks awk, or has an old awk that does not conform to Posix,
+ # you can use either of the following free programs instead:
+ #
+ #     Gawk (GNU awk) <http://www.gnu.org/software/gawk/>
+ #     mawk <http://invisible-island.net/mawk/>
++# Implement ksh-style select in POSIX shell
++
++# We need a mostly-portable echo-n.
++case `echo -n "foo\c"` in
++*n*c*)  func_echo_n() { echo "$*"; } ;;
++*n*)    func_echo_n() { echo "$*\c"; } ;;
++*)      func_echo_n() { echo -n "$*"; } ;;
++esac
++
++# Synopsis: Replace "select foo in list" with "while func_select foo in list"
++# and this works just like ksh, so far as I know.
++func_select () {
++      func_select_args=0
++      if expr "$1" : "[_a-zA-Z][_a-zA-Z0-9]*$" > /dev/null; then
++              func_select_var=$1
++      else
++              echo >&2 "func_select: '$1' is not a valid variable name."
++              return 1
++      fi
++      shift 1
++      case $1 in
++              in) shift 1;;
++ *) echo >&2 "func_select: usage: func_select var in ... (you must provide
++arguments)"; return 1;;
++      esac
++      case $# in
++              0) echo >&2 "func_select: usage: func_select var in ..."; return 1;;
++      esac
++      for func_select_arg
++      do
++              func_select_args=`expr $func_select_args + 1`
++              eval func_select_a_$func_select_args=\$func_select_arg
++      done
++      REPLY=""
++      while :
++      do
++              if test -z "$REPLY"; then
++                      func_select_i=1
++                      while test $func_select_i -le $func_select_args
++                      do
++                              eval echo "\"\$func_select_i) \$func_select_a_$func_select_i\""
++                              func_select_i=`expr $func_select_i + 1`
++                      done
++              fi
++              func_echo_n "${PS3-#? }" >&2
++              if read REPLY; then
++                      if test -n "${REPLY}"; then
++                              if expr "$REPLY" : '[1-9][0-9]*$' > /dev/null; then
++                                      if test "$REPLY" -ge 1 && test "$REPLY" -le $func_select_args; then
++                                              eval $func_select_var=\$func_select_a_$REPLY
++                                      else
++                                              eval $func_select_var=
++                                      fi
++                              else
++                                      eval $func_select_var=
++                              fi
++                              return 0
++                      fi
++              else
++                      eval $func_select_var=
++                      return 1
++              fi
++      done
++}
+ # Specify default values for environment variables if they are unset.
+ : ${AWK=awk}
+@@ -72,7 +129,7 @@
+ # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout.
+-case $(echo 1 | (select x in x; do break; done) 2>/dev/null) in
++case $(echo 1 | (while func_select x in x; do break; done) 2>/dev/null) in
+ ?*) PS3=
+ esac
+@@ -92,7 +149,7 @@
+       echo >&2 'Please select a continent or ocean.'
+-      select continent in \
++      while func_select continent in \
+           Africa \
+           Americas \
+           Antarctica \
+@@ -172,7 +229,7 @@
+               case $countries in
+               *"$newline"*)
+                       echo >&2 'Please select a country.'
+-                      select country in $countries
++                      while func_select country in $countries
+                       do
+                           case $country in
+                           '') echo >&2 'Please enter a number in range.';;
+@@ -211,7 +268,7 @@
+               *"$newline"*)
+                       echo >&2 'Please select one of the following' \
+                               'time zone regions.'
+-                      select region in $regions
++                      while func_select region in $regions
+                       do
+                               case $region in
+                               '') echo >&2 'Please enter a number in range.';;
+@@ -288,7 +345,7 @@
+       echo >&2 "Is the above information OK?"
+       ok=
+-      select ok in Yes No
++      while func_select ok in Yes No
+       do
+           case $ok in
+           '') echo >&2 'Please enter 1 for Yes, or 2 for No.';;
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.18.bb b/meta/recipes-core/eglibc/eglibc-initial_2.18.bb
new file mode 100644 (file)
index 0000000..de45079
--- /dev/null
@@ -0,0 +1,11 @@
+require eglibc_${PV}.bb
+require eglibc-initial.inc
+
+DEPENDS += "kconfig-frontends-native"
+
+# main eglibc recipes muck with TARGET_CPPFLAGS to point into
+# final target sysroot but we
+# are not there when building eglibc-initial
+# so reset it here
+
+TARGET_CPPFLAGS = ""
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.18.bb b/meta/recipes-core/eglibc/eglibc-locale_2.18.bb
new file mode 100644 (file)
index 0000000..ce6c1d2
--- /dev/null
@@ -0,0 +1 @@
+require eglibc-locale.inc
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb b/meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb
new file mode 100644 (file)
index 0000000..6fa2be9
--- /dev/null
@@ -0,0 +1 @@
+require eglibc-mtrace.inc
diff --git a/meta/recipes-core/eglibc/eglibc-scripts_2.18.bb b/meta/recipes-core/eglibc/eglibc-scripts_2.18.bb
new file mode 100644 (file)
index 0000000..3113362
--- /dev/null
@@ -0,0 +1 @@
+require eglibc-scripts.inc
diff --git a/meta/recipes-core/eglibc/eglibc_2.18.bb b/meta/recipes-core/eglibc/eglibc_2.18.bb
new file mode 100644 (file)
index 0000000..7c26829
--- /dev/null
@@ -0,0 +1,147 @@
+require eglibc.inc
+
+DEPENDS += "gperf-native kconfig-frontends-native"
+
+SRC_URI = "http://sakrah.dontexist.org/files/eglibc-${PV}-svnr23379.tar.bz2 \
+           file://eglibc-svn-arm-lowlevellock-include-tls.patch \
+           file://IO-acquire-lock-fix.patch \
+           file://mips-rld-map-check.patch \
+           file://etc/ld.so.conf \
+           file://generate-supported.mk \
+           file://glibc.fix_sqrt2.patch \
+           file://multilib_readlib.patch \
+           file://ppc-sqrt_finite.patch \
+           file://GLRO_dl_debug_mask.patch \
+           file://initgroups_keys.patch \
+           file://eglibc_fix_findidx_parameters.patch \
+           file://ppc_slow_ieee754_sqrt.patch \
+           file://fileops-without-wchar-io.patch \
+           file://add_resource_h_to_wait_h.patch \
+           file://0001-eglibc-menuconfig-support.patch \
+           file://0002-eglibc-menuconfig-hex-string-options.patch \
+           file://0003-eglibc-menuconfig-build-instructions.patch \
+           file://fsl-ppc-no-fsqrt.patch \
+           file://0001-R_ARM_TLS_DTPOFF32.patch \
+           file://tzselect-sh.patch \
+           file://tzselect-awk.patch \
+           file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
+           file://fix-tibetian-locales.patch \
+          "
+SRC_URI[md5sum] = "7da8ab8c0af6889187b9ece6dafc12b0"
+SRC_URI[sha256sum] = "bd1cdb0528fd54d11ab896b878d71c0f89b4557e908e0f2561f32bbd7472aaeb"
+
+LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
+      file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
+      file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+      file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
+
+SRC_URI_append_class-nativesdk = " file://ld-search-order.patch \
+            file://relocatable_sdk.patch \
+            file://relocatable_sdk_fix_openpath.patch \
+            "
+S = "${WORKDIR}/eglibc-${PV}/libc"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+PACKAGES_DYNAMIC = ""
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import re
+    uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None)
+    if uc_os:
+        raise bb.parse.SkipPackage("incompatible with target %s" %
+                                   d.getVar('TARGET_OS', True))
+}
+
+export libc_cv_slibdir = "${base_libdir}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+                --without-cvs --disable-profile \
+                --disable-debug --without-gd \
+                --enable-clocale=gnu \
+                --enable-add-ons \
+                --with-headers=${STAGING_INCDIR} \
+                --without-selinux \
+                --enable-obsolete-rpc \
+                --with-kconfig=${STAGING_BINDIR_NATIVE} \
+                ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
+
+do_patch_append() {
+    bb.build.exec_func('do_fix_readlib_c', d)
+}
+
+# for mips eglibc now builds syscall tables for all abi's
+# so we make sure that we choose right march option which is
+# compatible with o32,n32 and n64 abi's
+# e.g. -march=mips32 is not compatible with n32 and n64 therefore
+# we filter it out in such case -march=from-abi which will be
+# mips1 when using o32 and mips3 when using n32/n64
+
+TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
+TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
+
+do_fix_readlib_c () {
+       sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+        if [ -z "`which rpcgen`" ]; then
+                echo "rpcgen not found.  Install glibc-devel."
+                exit 1
+        fi
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
+        CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+         yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+         rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+       # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+       unset LDFLAGS
+       base_do_compile
+       (
+               cd ${S}/sunrpc/rpcsvc
+               for r in ${rpcsvc}; do
+                       h=`echo $r|sed -e's,\.x$,.h,'`
+                       rpcgen -h $r -o $h || bbwarn "unable to generate header for $r"
+               done
+       )
+       echo "Adjust ldd script"
+       if [ -n "${RTLDLIST}" ]
+       then
+               prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'`
+               if [ "${prevrtld}" != "${RTLDLIST}" ]
+               then
+                       sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#"
+               fi
+       fi
+
+}
+
+require eglibc-package.inc
+
+BBCLASSEXTEND = "nativesdk"