summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2005-04-15 09:33:04 +0000
committerRoland McGrath <roland@gnu.org>2005-04-15 09:33:04 +0000
commit6183d906dd822337dec18dd1f48209dfd17127bd (patch)
tree23fe554ffcdecf0ae3b5879155c28b17766ea441
parenta19fc30a4be27a24065b9a53b98042b73ff51b69 (diff)
Updated to fedora-glibc-20050415T0909cvs/fedora-glibc-2_3_5-1
-rw-r--r--ChangeLog221
-rw-r--r--FAQ16
-rw-r--r--FAQ.in13
-rw-r--r--MakeTAGS9
-rw-r--r--Makefile5
-rw-r--r--NEWS15
-rw-r--r--elf/cache.c4
-rw-r--r--elf/dl-load.c5
-rw-r--r--elf/dl-support.c6
-rw-r--r--elf/ldconfig.c80
-rw-r--r--elf/rtld.c198
-rw-r--r--elf/tls-macros.h68
-rw-r--r--elf/tst-auditmod1.c12
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in10
-rw-r--r--iconv/gconv_int.h4
-rw-r--r--intl/tst-codeset.sh9
-rw-r--r--intl/tst-gettext3.sh7
-rw-r--r--manual/string.texi2
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h31
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S2
-rw-r--r--nscd/Makefile3
-rw-r--r--po/.cvsignore3
-rw-r--r--po/libc.pot2718
-rw-r--r--posix/Makefile4
-rw-r--r--posix/execvp.c4
-rw-r--r--posix/tst-execvp3.c42
-rwxr-xr-xscripts/config.guess121
-rwxr-xr-xscripts/config.sub82
-rw-r--r--stdlib/random_r.c33
-rw-r--r--string/Makefile4
-rw-r--r--string/tst-strfry.c15
-rw-r--r--sysdeps/generic/dl-sysdep.c92
-rw-r--r--sysdeps/generic/ldsodefs.h32
-rw-r--r--sysdeps/ia64/fpu/e_acosh.S3
-rw-r--r--sysdeps/ia64/fpu/e_acoshl.S4
-rw-r--r--sysdeps/ia64/fpu/e_atanh.S3
-rw-r--r--sysdeps/ia64/fpu/e_cosh.S3
-rw-r--r--sysdeps/ia64/fpu/e_coshf.S3
-rw-r--r--sysdeps/ia64/fpu/e_exp.S3
-rw-r--r--sysdeps/ia64/fpu/e_exp10.S4
-rw-r--r--sysdeps/ia64/fpu/e_exp10f.S4
-rw-r--r--sysdeps/ia64/fpu/e_exp2.S4
-rw-r--r--sysdeps/ia64/fpu/e_exp2f.S4
-rw-r--r--sysdeps/ia64/fpu/e_expf.S3
-rw-r--r--sysdeps/ia64/fpu/e_log.S3
-rw-r--r--sysdeps/ia64/fpu/e_logf.S3
-rw-r--r--sysdeps/ia64/fpu/e_pow.S3
-rw-r--r--sysdeps/ia64/fpu/e_powf.S3
-rw-r--r--sysdeps/ia64/fpu/e_sinh.S3
-rw-r--r--sysdeps/ia64/fpu/e_sinhf.S3
-rw-r--r--sysdeps/ia64/fpu/libm_error.c9
-rw-r--r--sysdeps/ia64/fpu/libm_lgamma.S5
-rw-r--r--sysdeps/ia64/fpu/libm_lgammaf.S3
-rw-r--r--sysdeps/ia64/fpu/libm_lgammal.S3
-rw-r--r--sysdeps/ia64/fpu/libm_sincos.S3
-rw-r--r--sysdeps/ia64/fpu/libm_sincosf.S3
-rw-r--r--sysdeps/ia64/fpu/s_asinh.S3
-rw-r--r--sysdeps/ia64/fpu/s_atanl.S3
-rw-r--r--sysdeps/ia64/fpu/s_cos.S10
-rw-r--r--sysdeps/ia64/fpu/s_cosf.S3
-rw-r--r--sysdeps/ia64/fpu/s_erf.S3
-rw-r--r--sysdeps/ia64/fpu/s_erfc.S3
-rw-r--r--sysdeps/ia64/fpu/s_erfcf.S3
-rw-r--r--sysdeps/ia64/fpu/s_erfcl.S5
-rw-r--r--sysdeps/ia64/fpu/s_erff.S3
-rw-r--r--sysdeps/ia64/fpu/s_expm1.S3
-rw-r--r--sysdeps/ia64/fpu/s_expm1f.S3
-rw-r--r--sysdeps/ia64/fpu/s_log1p.S3
-rw-r--r--sysdeps/ia64/fpu/s_tanf.S3
-rw-r--r--sysdeps/ia64/fpu/s_tanh.S6
-rw-r--r--sysdeps/ia64/fpu/s_tanhf.S4
-rw-r--r--sysdeps/ia64/fpu/w_tgamma.S4
-rw-r--r--sysdeps/ia64/fpu/w_tgammaf.S3
-rw-r--r--sysdeps/ia64/fpu/w_tgammal.S3
-rw-r--r--sysdeps/sh/elf/configure2
-rw-r--r--sysdeps/sparc/bits/link.h100
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h325
-rw-r--r--sysdeps/sparc/sparc32/dl-trampoline.S155
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h683
-rw-r--r--sysdeps/sparc/sparc64/dl-trampoline.S280
-rw-r--r--sysdeps/unix/sysv/linux/configure4
-rw-r--r--sysdeps/unix/sysv/linux/configure.in4
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h39
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/clone.S22
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S53
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pause.c48
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h45
-rw-r--r--version.h2
90 files changed, 3590 insertions, 2202 deletions
diff --git a/ChangeLog b/ChangeLog
index 850dd5bec2..2a1358023e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,202 @@
+2005-04-14 Roland McGrath <roland@redhat.com>
+
+ * MakeTAGS ($P/$(domain).pot): Depend on distinfo file as well.
+ (extract): Filter-out distinfo file name.
+
+ [BZ #253]
+ * MakeTAGS (text-srcs): Match %.bash.in files too.
+
+ [BZ #253]
+ * nscd/Makefile (all-nscd-modules): New variable, include selinux
+ module regardless of configuration.
+ (distribute): Use that instead of $(nscd-modules).
+
+2005-04-13 David S. Miller <davem@davemloft.net>
+
+ Add sparc64 TLS and NPTL support.
+ * elf/tls-macros.h: Add Sparc64 defines.
+ * sysdeps/sparc/sparc64/dl-machine.h (sparc64_fixup_plt): Mark as
+ always_inline.
+ (elf_machine_fixup_plt): Likewise.
+ (elf_machine_rela): Handle TLS relocations.
+ (elf_machine_type_cleaa): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+ (SYSCALL_ERROR_HANDLER_ENTRY): Use sethi/or for GOT reloc.
+ It does not always fit in R_SPARC_GOT13 when building -fPIC.
+ Also, add TLS handling.
+ * sysdeps/unix/sysv/linux/configure.in (arch_minimum_kernel):
+ Increase it to 2.4.21 for sparc64.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: NULL terminate
+ backtrace by zero'ing out %fp. Store away flags, func_ptr,
+ and func_arg in global registers not local registers.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Handle PTID, TLS,
+ and CTID arguments properly. Add RESET_PID handling.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Rework so that we
+ do not invoke __sigprocmask(). We can always assume rt signals
+ are present on sparc64, so just do an inline syscall.
+
+2005-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/sparc/sparc64/dl-machine.h: Add dl_machine_h multiple
+ inclusion guard for the first half of the header.
+ (elf_machine_type_class, ELF_MACHINE_JMP_SLOT, ELF_MACHINE_NO_REL,
+ ELF_MACHINE_PLTREL_OVERLAP, elf_machine_runtime_setup,
+ elf_machine_relplt, DL_STACK_END, RTLD_START): Move into the
+ #ifndef dl_machine_h guarded part of the header.
+
+2005-04-14 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #851]
+ * posix/execvp.c (execvp): Use file name including path when
+ trying to run it with shell.
+ * posix/Makefile: Add rules to build and run tst-execvp3.
+ * posix/tst-execvp3.c: New file.
+
+2005-04-12 Ulrich Drepper <drepper@redhat.com>
+
+ * stdlib/random_r.c (__initstate_r): Don't use non-existing state.
+ * string/tst-strfry.c: New file.
+ * string/Makefile (tests): Add tst-strfry.
+
+2005-04-11 James A. Morrison <ja2morri@uwaterloo.ca>
+
+ * manual/string.texi: Fix typo in wmemcpy decl.
+
+2005-04-10 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc32/dl-trampoline.S: Use std not stx.
+
+2005-04-08 Carlos O'Donell <carlos@baldric.uwo.ca>
+
+ * FAQ.in: Explain why `make' might fail running rpcgen.
+ * FAQ: Regenerated.
+
+2005-04-07 Roland McGrath <roland@redhat.com>
+
+ * po/libc.pot: Regenerated.
+
+2005-04-07 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_discover_osversion)
+ [(NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO) && SHARED]: Scan
+ GLRO(dl_sysinfo_map) for PT_NOTE giving Linux kernel version,
+ we can skip the uname call if it's there.
+ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't use
+ DL_SYSDEP_OSCHECK here.
+ * elf/rtld.c (dl_main) [DL_SYSDEP_OSCHECK]: Do it here instead.
+
+ * sysdeps/generic/ldsodefs.h (struct rtld_global_ro):
+ Add _dl_sysinfo_map.
+ * elf/rtld.c (dl_main): Don't call _dl_init_paths early in the
+ rtld_is_main case. Call it unconditionally later.
+ Move GLRO(dl_sysinfo_dso) handling earlier, before _dl_init_paths call.
+ Initialize GLRO(dl_sysinfo_map).
+ * elf/dl-load.c (open_path): Bail out if _dl_init_paths wasn't called.
+ * sysdeps/generic/dl-sysdep.c (_DL_FIRST_EXTRA): New macro.
+ (_dl_important_hwcaps)
+ [(NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO) && SHARED]: Scan
+ GLRO(dl_sysinfo_map) for PT_NOTE giving synthetic hwcap names
+ and bit values.
+ * elf/ldconfig.c (_DL_FIRST_EXTRA): New macro.
+ (hwcap_extra): New static variable.
+ (is_hwcap_platform): Check hwcap_extra for a matching name.
+ Remove tls special case.
+ (path_hwcap): Likewise.
+ (parse_conf): Parse "hwcap" directive to define synthetic hwcap bits
+ and their names, stored in hwcap_extra.
+ (main) [USE_TLS]: Initialize final synthetic hwcap bit as "tls".
+
+ * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Use uint64_t for
+ _dl_hwcap and _dl_hwcap_mask.
+ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Cast a_val for
+ AT_HWCAP to unsigned long int.
+ * elf/dl-support.c (_dl_aux_init): Likewise.
+ (_dl_hwcap): Update defn.
+
+ * elf/cache.c (print_entry): Pad hwcap value with 0s in diagnostic.
+ * elf/ldconfig.c (search_dir): Likewise.
+
+2005-04-05 Roland McGrath <roland@redhat.com>
+
+ * NEWS: Copy 2.3.5 section from 2.3 branch.
+
+ * intl/tst-codeset.sh: Use mkdir -p. Put msgfmt output in temporary
+ file and mv it into place.
+ * intl/tst-gettext3.sh: Likewise.
+
+ * Makefile (glibc-%.tar rule): Use make -q to ensure configure scripts
+ are up to date in srcdir. Touch all configure scripts after export.
+
+ * iconv/gconv_int.h: Include <ctype.h> and <string.h>.
+
+2005-04-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #592]
+ * sysdeps/ia64/fpu/e_acosh.S: Update from Intel libm 2005-04-05
+ (comment changes only).
+ * sysdeps/ia64/fpu/e_acoshl.S: Likewise.
+ * sysdeps/ia64/fpu/e_atanh.S: Likewise.
+ * sysdeps/ia64/fpu/e_cosh.S: Likewise.
+ * sysdeps/ia64/fpu/e_coshf.S: Likewise.
+ * sysdeps/ia64/fpu/e_exp.S: Likewise.
+ * sysdeps/ia64/fpu/e_exp10.S: Likewise.
+ * sysdeps/ia64/fpu/e_exp10f.S: Likewise.
+ * sysdeps/ia64/fpu/e_exp2.S: Likewise.
+ * sysdeps/ia64/fpu/e_exp2f.S: Likewise.
+ * sysdeps/ia64/fpu/e_expf.S: Likewise.
+ * sysdeps/ia64/fpu/e_log.S: Likewise.
+ * sysdeps/ia64/fpu/e_logf.S: Likewise.
+ * sysdeps/ia64/fpu/e_pow.S: Likewise.
+ * sysdeps/ia64/fpu/e_powf.S: Likewise.
+ * sysdeps/ia64/fpu/e_sinh.S: Likewise.
+ * sysdeps/ia64/fpu/e_sinhf.S: Likewise.
+ * sysdeps/ia64/fpu/libm_error.c: Likewise.
+ * sysdeps/ia64/fpu/libm_lgamma.S: Likewise.
+ * sysdeps/ia64/fpu/libm_lgammaf.S: Likewise.
+ * sysdeps/ia64/fpu/libm_lgammal.S: Likewise.
+ * sysdeps/ia64/fpu/libm_sincos.S: Likewise.
+ * sysdeps/ia64/fpu/libm_sincosf.S: Likewise.
+ * sysdeps/ia64/fpu/s_asinh.S: Likewise.
+ * sysdeps/ia64/fpu/s_atanl.S: Likewise.
+ * sysdeps/ia64/fpu/s_cos.S: Likewise.
+ * sysdeps/ia64/fpu/s_cosf.S: Likewise.
+ * sysdeps/ia64/fpu/s_erf.S: Likewise.
+ * sysdeps/ia64/fpu/s_erfc.S: Likewise.
+ * sysdeps/ia64/fpu/s_erfcf.S: Likewise.
+ * sysdeps/ia64/fpu/s_erfcl.S: Likewise.
+ * sysdeps/ia64/fpu/s_erff.S: Likewise.
+ * sysdeps/ia64/fpu/s_expm1.S: Likewise.
+ * sysdeps/ia64/fpu/s_expm1f.S: Likewise.
+ * sysdeps/ia64/fpu/s_log1p.S: Likewise.
+ * sysdeps/ia64/fpu/s_tanf.S: Likewise.
+ * sysdeps/ia64/fpu/s_tanh.S: Likewise.
+ * sysdeps/ia64/fpu/s_tanhf.S: Likewise.
+ * sysdeps/ia64/fpu/w_tgamma.S: Likewise.
+ * sysdeps/ia64/fpu/w_tgammaf.S: Likewise.
+ * sysdeps/ia64/fpu/w_tgammal.S: Likewise.
+
+2005-04-05 Roland McGrath <roland@redhat.com>
+
+ * scripts/config.guess: Update from master, timestamp='2005-03-24'.
+ * scripts/config.sub: Update from master, timestamp='2005-02-10'.
+
+2005-04-04 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc32/dl-trampoline.S: New file.
+ * sysdeps/sparc/sparc32/dl-machine.h: Move PLT trampolines there.
+ Use RESOLVE_MAP instead of RESOLVE to protect relocation code.
+ (elf_machine_runtime_setup): Test for dl_profile non-null.
+ * sysdeps/sparc/sparc64/dl-trampoline.S: New file.
+ (ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): New.
+ * sysdeps/sparc/sparc64/dl-machine.h: Move PLT trampolines there.
+ Use RESOLVE_MAP instead of RESOLVE to protect relocation code.
+ (elf_machine_runtime_setup): Test for dl_profile non-null.
+ * sysdeps/sparc/bits/link.h: New file.
+ * sysdeps/generic/ldsodefs.h (La_sparc32_regs, La_sparc32_retval,
+ La_sparc64_regs, La_sparc64_retval): New.
+ (struct audit_ifaces): Add sparc entries.
+ * elf/tst-auditmod1.c: Add sparc entries.
+
2005-03-27 Bruno Haible <bruno@clisp.org>
* intl/tst-gettext3.c: New file.
@@ -39,11 +238,13 @@
2005-04-04 Ulrich Drepper <drepper@redhat.com>
+ [BZ #825]
* timezone/scheck.c: Update from tzcode2005h.
* timezone/tzfile.h: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
+ [BZ #825]
* timezone/antarctica: Update from tzdata2005h.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
@@ -56,6 +257,7 @@
2005-03-31 H.J. Lu <hongjiu.lu@intel.com>
+ [BZ #592]
* sysdeps/ia64/fpu/libm_cpu_defs.h: Update copyright.
2005-04-01 Ulrich Drepper <drepper@redhat.com>
@@ -87,6 +289,7 @@
2005-03-30 H.J. Lu <hongjiu.lu@intel.com>
+ [BZ #592]
* sysdeps/ia64/fpu/e_acosf.S: Update from Intel libm 2005-03-21.
* sysdeps/ia64/fpu/e_acoshf.S: Likewise.
* sysdeps/ia64/fpu/e_acoshl.S: Likewise.
@@ -221,9 +424,11 @@
* sysdeps/ia64/fpu/w_tgammal.S: Likewise.
* sysdeps/ia64/fpu/w_tgamma.S: Likewise.
+ [BZ #592]
* sysdeps/ia64/fpu/libm_cpu_defs.h: New file.
* sysdeps/ia64/fpu/libm_error_codes.h: New file.
+ [BZ #592]
* sysdeps/ia64/fpu/gen_import_file_list: Updated for Intel libm
2005-03-21.
* sysdeps/ia64/fpu/import_file.awk: Likewise.
@@ -356,6 +561,7 @@
2005-03-23 Jakub Jelinek <jakub@redhat.com>
+ [BZ #822]
* nis/ypclnt.c (yp_2_yperr): Revert 2004-11-30 patch.
(ypprot_err): Use yp_2_yperr table also for YP_NODOM .. YP_NOMORE.
@@ -440,9 +646,11 @@
* inet/test-ifaddrs.c: Use test-skeleton.
* inet/test_ifindex.c: Likewise.
+ [BZ #821]
* elf/dl-lookup.c (add_dependency): Always search l_initfini if
the list exists.
+ [BZ #821]
* elf/Makefile: Add rules to build and run order2.
* elf/order2.c: New file.
* elf/order2mod1.c: New file.
@@ -452,11 +660,13 @@
2005-03-19 Jakub Jelinek <jakub@redhat.com>
+ [BZ #821]
* elf/dl-open.c (dl_open_worker): Print exact l_direct_opencount value,
it has been incremented before.
2005-03-18 Ulrich Drepper <drepper@redhat.com>
+ [BZ #821]
* elf/dl-fini.c (_dl_fini): Split sorting of the maps in separate
function _dl_sort_fini.
(_dl_sort_fini): New function.
@@ -536,6 +746,7 @@
2005-03-18 Ulrich Drepper <drepper@redhat.com>
+ [BZ #821]
* include/link.h (struct link_map): Remove l_opencount. Add l_removed.
Change type of l_idx to int.
* elf/dl-close.c: Basically rewrite. Do not use l_opencount to
@@ -561,15 +772,16 @@
* elf/unload2.c: Likewise.
* elf/loadtest.c: Likewise.
+ [BZ #821]
* elf/rtld.c: Preloading errors are now never fatal.
2005-03-08 Jakub Jelinek <jakub@redhat.com>
+ [BZ #821]
* elf/Makefile: Add rules to build and run unload5 test.
* elf/unload5.c: New file.
-2005-03-08 Jakub Jelinek <jakub@redhat.com>
-
+ [BZ #821]
* elf/Makefile: Add rules to build and run unload4 test.
* elf/unload4.c: New file.
* elf/unload4mod1.c: New file.
@@ -761,6 +973,7 @@
* elf/dl-addr.c (_dl_addr): Add a cast.
+ [BZ #821]
* elf/unload3mod4.c: Declare foo.
* elf/testobj2.c: Include <stdio.h>.
@@ -798,6 +1011,7 @@
2005-03-03 Ulrich Drepper <drepper@redhat.com>
+ [BZ #821]
* elf/dl-close.c (_dl_close): Don't try to set up new searchpath if the
loader is closed. Fixes unload3.
* elf/tst-global1.c: New file.
@@ -806,6 +1020,7 @@
2005-03-03 Jakub Jelinek <jakub@redhat.com>
+ [BZ #821]
* elf/Makefile: Add rules to build and run unload3 test.
* elf/unload3.c: New test.
* elf/unload3mod1.c: New file.
@@ -2253,7 +2468,7 @@
* sysdeps/ia64/fpu/w_lgammaf.c: Likewise.
* sysdeps/ia64/fpu/w_lgammal.c: Likewise.
-2004-12-09 H. J. Lu <hjl@lucon.org>
+2004-12-09 H.J. Lu <hjl@lucon.org>
[BZ #592]
* sysdeps/ia64/fpu/s_nextafterl.c: Remove.
diff --git a/FAQ b/FAQ
index 6d95ef332d..77bd47e3ed 100644
--- a/FAQ
+++ b/FAQ
@@ -48,6 +48,8 @@ please let me know.
malloc/libmemprof.so. How can I fix this?
1.20. Which tools should I use for MIPS?
1.21. Which compiler should I use for powerpc64?
+1.22. `make' fails when running rpcgen the first time,
+ what is going on? How do I fix this?
2. Installation and configuration issues
@@ -573,6 +575,20 @@ For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
{SM} You want to use at least gcc 3.2 (together with the right versions
of all the other tools, of course).
+
+1.22. `make' fails when running rpcgen the first time,
+ what is going on? How do I fix this?
+
+{CO} The first invocation of rpcgen is also the first use of the recently
+compiled dynamic loader. If there is any problem with the dynamic loader
+it will more than likely fail to run rpcgen properly. This could be due to
+any number of problems.
+
+The only real solution is to debug the loader and determine the problem
+yourself. Please remember that for each architecture there may be various
+patches required to get glibc HEAD into a runnable state. The best course
+of action is to determine if you have all the required patches.
+
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
diff --git a/FAQ.in b/FAQ.in
index 4c161cceb6..227132bc08 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -374,6 +374,19 @@ For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
{SM} You want to use at least gcc 3.2 (together with the right versions
of all the other tools, of course).
+?? `make' fails when running rpcgen the first time,
+ what is going on? How do I fix this?
+
+{CO} The first invocation of rpcgen is also the first use of the recently
+compiled dynamic loader. If there is any problem with the dynamic loader
+it will more than likely fail to run rpcgen properly. This could be due to
+any number of problems.
+
+The only real solution is to debug the loader and determine the problem
+yourself. Please remember that for each architecture there may be various
+patches required to get glibc HEAD into a runnable state. The best course
+of action is to determine if you have all the required patches.
+
? Installation and configuration issues
?? Can I replace the libc on my Linux system with GNU libc?
diff --git a/MakeTAGS b/MakeTAGS
index bee41252ee..fff6851c91 100644
--- a/MakeTAGS
+++ b/MakeTAGS
@@ -1,5 +1,5 @@
# Make the TAGS files.
-# Copyright (C) 1992,1994,1995,1996,1998,2002,2003
+# Copyright (C) 1992,1994,1995,1996,1998,2002,2003,2005
# Free Software Foundation, Inc.
# This file is part of the GNU C Library.
@@ -146,12 +146,13 @@ endif
define extract
@rm -f $@.new
$(XGETTEXT) --keyword=_ --keyword=N_ --add-comments=TRANS --sort-by-file \
- --omit-header -E -n -d - $(XGETTEXTFLAGS-$(@F)) > $@.new $^
+ --omit-header -E -n -d - $(XGETTEXTFLAGS-$(@F)) > $@.new \
+ $(filter-out $(objpfx)distinfo,$^)
mv -f $@.new $@
endef
-text-srcs := $(filter %.c %.h %.cc %.C,$(tags_sources))
-$P/$(domain).pot: $(text-srcs)
+text-srcs := $(filter %.c %.h %.cc %.C %.bash.in,$(tags_sources))
+$P/$(domain).pot: $(objpfx)distinfo $(text-srcs)
ifeq (,$(text-srcs))
cp /dev/null $@
else
diff --git a/Makefile b/Makefile
index dc7a6f177a..734687cf3d 100644
--- a/Makefile
+++ b/Makefile
@@ -300,7 +300,12 @@ glibc-%.tar $(dist-separate:%=glibc-%-%.tar): $(files-for-dist) \
$(foreach D,$(dist-separate),\
$D/configure)
@rm -fr glibc-$*
+ $(MAKE) -q `find sysdeps $(addsuffix /sysdeps,$(add-ons)) \
+ -name configure`
cvs $(CVSOPTS) -Q export -d glibc-$* -r $(tag-of-stem) libc
+# Touch all the configure scripts going into the tarball since cvs export
+# might have delivered configure.in newer than configure.
+ find glibc-$* -name configure -print | xargs touch
$(dist-do-separate-dirs)
tar cf glibc-$*.tar glibc-$*
rm -fr glibc-$*
diff --git a/NEWS b/NEWS
index 2601cd5dde..3ece35565b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
-GNU C Library NEWS -- history of user-visible changes. 2005-3-19
-Copyright (C) 1992-2004, 2005 Free Software Foundation, Inc.
+GNU C Library NEWS -- history of user-visible changes. 2005-4-5
+Copyright (C) 1992-2002,2003,2004,2005 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
@@ -15,6 +15,17 @@ Version 2.4
* It is now possible to install audit libraries for the dynamic linker using
LD_AUDIT. Implemented by Ulrich Drepper.
+Version 2.3.5
+
+* The following bugs are resolved with this release:
+
+ 284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
+ 722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
+ 737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
+ 777, 787, 821, 822, 823, 825
+
+ Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
+
Version 2.3.4
* Support for RFC 3678. Real implementations exist only for Linux so far.
diff --git a/elf/cache.c b/elf/cache.c
index 22ad55c612..9324f3dc6c 100644
--- a/elf/cache.c
+++ b/elf/cache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003
+/* Copyright (C) 1999,2000,2001,2002,2003,2005
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999.
@@ -99,7 +99,7 @@ print_entry (const char *lib, int flag, unsigned int osversion,
break;
}
if (hwcap != 0)
- printf (", hwcap: 0x%" PRIx64, hwcap);
+ printf (", hwcap: %#.16" PRIx64, hwcap);
if (osversion != 0)
{
static const char *const abi_tag_os[] =
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 2ca108ef69..d8b3a56d0d 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1760,6 +1760,11 @@ open_path (const char *name, size_t namelen, int preloaded,
const char *current_what = NULL;
int any = 0;
+ if (__builtin_expect (dirs == NULL, 0))
+ /* We're called before _dl_init_paths when loading the main executable
+ given on the command line when rtld is run directly. */
+ return -1;
+
buf = alloca (max_dirnamelen + max_capstrlen + namelen);
do
{
diff --git a/elf/dl-support.c b/elf/dl-support.c
index cfe01babbf..d20e9a4048 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -1,5 +1,5 @@
/* Support for dynamic linking code in static libc.
- Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1996-2002, 2003, 2004, 2005 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
@@ -121,7 +121,7 @@ int _dl_correct_cache_id = _DL_CACHE_DEFAULT_ID;
ElfW(Phdr) *_dl_phdr;
size_t _dl_phnum;
-unsigned long int _dl_hwcap __attribute__ ((nocommon));
+uint64_t _dl_hwcap __attribute__ ((nocommon));
/* Prevailing state of the stack, PF_X indicating it's executable. */
ElfW(Word) _dl_stack_flags = PF_R|PF_W|PF_X;
@@ -179,7 +179,7 @@ _dl_aux_init (ElfW(auxv_t) *av)
GL(dl_phnum) = av->a_un.a_val;
break;
case AT_HWCAP:
- GLRO(dl_hwcap) = av->a_un.a_val;
+ GLRO(dl_hwcap) = (unsigned long int) av->a_un.a_val;
break;
#ifdef NEED_DL_SYSINFO
case AT_SYSINFO:
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 70f3a8f402..d96295cbc1 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -44,6 +44,12 @@
#include "dl-procinfo.h"
+#ifdef _DL_FIRST_PLATFORM
+# define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT)
+#else
+# define _DL_FIRST_EXTRA _DL_HWCAP_COUNT
+#endif
+
#ifndef LD_SO_CONF
# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
#endif
@@ -115,6 +121,9 @@ static const char *config_file;
/* Mask to use for important hardware capabilities. */
static unsigned long int hwcap_mask = HWCAP_IMPORTANT;
+/* Configuration-defined capabilities defined in kernel vDSOs. */
+static const char *hwcap_extra[64 - _DL_FIRST_EXTRA];
+
/* Name and version of program. */
static void print_version (FILE *stream, struct argp_state *state);
void (*argp_program_version_hook) (FILE *, struct argp_state *)
@@ -165,10 +174,10 @@ is_hwcap_platform (const char *name)
if (hwcap_idx != -1)
return 1;
-#ifdef USE_TLS
- if (strcmp (name, "tls") == 0)
- return 1;
-#endif
+ for (hwcap_idx = _DL_FIRST_EXTRA; hwcap_idx < 64; ++hwcap_idx)
+ if (hwcap_extra[hwcap_idx - _DL_FIRST_EXTRA] != NULL
+ && !strcmp (name, hwcap_extra[hwcap_idx - _DL_FIRST_EXTRA]))
+ return 1;
return 0;
}
@@ -203,11 +212,11 @@ path_hwcap (const char *path)
h = _dl_string_platform (ptr + 1);
if (h == (uint64_t) -1)
{
-#ifdef USE_TLS
- if (strcmp (ptr + 1, "tls") == 0)
- h = 63;
- else
-#endif
+ for (h = _DL_FIRST_EXTRA; h < 64; ++h)
+ if (hwcap_extra[h - _DL_FIRST_EXTRA] != NULL
+ && !strcmp (ptr + 1, hwcap_extra[h - _DL_FIRST_EXTRA]))
+ break;
+ if (h == 64)
break;
}
}
@@ -636,7 +645,7 @@ search_dir (const struct dir_entry *entry)
if (opt_verbose)
{
if (hwcap != 0)
- printf ("%s: (hwcap: 0x%" PRIx64 ")\n", entry->path, hwcap);
+ printf ("%s: (hwcap: %#.16" PRIx64 ")\n", entry->path, hwcap);
else
printf ("%s:\n", entry->path);
}
@@ -1026,6 +1035,53 @@ parse_conf (const char *filename, const char *prefix, bool do_chroot)
memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1);
add_dir (new_cp);
}
+ else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
+ {
+ cp += 6;
+ char *p, *name = NULL;
+ unsigned long int n = strtoul (cp, &cp, 0);
+ if (cp != NULL && isblank (*cp))
+ while ((p = strsep (&cp, " \t")) != NULL)
+ if (p[0] != '\0')
+ {
+ if (name == NULL)
+ name = p;
+ else
+ {
+ name = NULL;
+ break;
+ }
+ }
+ if (name == NULL)
+ {
+ error (EXIT_FAILURE, 0, _("%s:%u: bad syntax in hwcap line"),
+ filename, lineno);
+ break;
+ }
+ if (n >= (64 - _DL_FIRST_EXTRA))
+ error (EXIT_FAILURE, 0,
+ _("%s:%u: hwcap index %lu above maximum %u"),
+ filename, lineno, n, 64 - _DL_FIRST_EXTRA - 1);
+ if (hwcap_extra[n] == NULL)
+ {
+ for (unsigned long int h = 0; h < (64 - _DL_FIRST_EXTRA); ++h)
+ if (hwcap_extra[h] != NULL && !strcmp (name, hwcap_extra[h]))
+ error (EXIT_FAILURE, 0,
+ _("%s:%u: hwcap index %lu already defined as %s"),
+ filename, lineno, h, name);
+ hwcap_extra[n] = xstrdup (name);
+ }
+ else
+ {
+ if (strcmp (name, hwcap_extra[n]))
+ error (EXIT_FAILURE, 0,
+ _("%s:%u: hwcap index %lu already defined as %s"),
+ filename, lineno, n, hwcap_extra[n]);
+ if (opt_verbose)
+ error (0, 0, _("%s:%u: duplicate hwcap %lu %s"),
+ filename, lineno, n, name);
+ }
+ }
else
add_dir (cp);
}
@@ -1129,6 +1185,10 @@ main (int argc, char **argv)
add_dir (argv[i]);
}
+#ifdef USE_TLS
+ hwcap_extra[63 - _DL_FIRST_EXTRA] = "tls";
+#endif
+
set_hwcap ();
if (opt_chroot)
diff --git a/elf/rtld.c b/elf/rtld.c
index b2122bb9d6..5d64d5a99e 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -958,11 +958,6 @@ of this helper program; chances are you did not intend to run this program.\n\
--_dl_argc;
++INTUSE(_dl_argv);
- /* Initialize the data structures for the search paths for shared
- objects. */
- _dl_init_paths (library_path);
-
-
/* The initialization of _dl_stack_flags done below assumes the
executable's PT_GNU_STACK may have been honored by the kernel, and
so a PT_GNU_STACK with PF_X set means the stack started out with
@@ -1229,10 +1224,98 @@ ld.so does not support TLS, but program uses it!\n");
_exit (has_interp ? 0 : 2);
}
- if (! rtld_is_main)
- /* Initialize the data structures for the search paths for shared
- objects. */
- _dl_init_paths (library_path);
+ struct link_map **first_preload = &GL(dl_rtld_map).l_next;
+#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
+ /* Set up the data structures for the system-supplied DSO early,
+ so they can influence _dl_init_paths. */
+ if (GLRO(dl_sysinfo_dso) != NULL)
+ {
+ /* Do an abridged version of the work _dl_map_object_from_fd would do
+ to map in the object. It's already mapped and prelinked (and
+ better be, since it's read-only and so we couldn't relocate it).
+ We just want our data structures to describe it as if we had just
+ mapped and relocated it normally. */
+ struct link_map *l = _dl_new_object ((char *) "", "", lt_library, NULL,
+ 0, LM_ID_BASE);
+ if (__builtin_expect (l != NULL, 1))
+ {
+ static ElfW(Dyn) dyn_temp[DL_RO_DYN_TEMP_CNT] attribute_relro;
+
+ l->l_phdr = ((const void *) GLRO(dl_sysinfo_dso)
+ + GLRO(dl_sysinfo_dso)->e_phoff);
+ l->l_phnum = GLRO(dl_sysinfo_dso)->e_phnum;
+ for (uint_fast16_t i = 0; i < l->l_phnum; ++i)
+ {
+ const ElfW(Phdr) *const ph = &l->l_phdr[i];
+ if (ph->p_type == PT_DYNAMIC)
+ {
+ l->l_ld = (void *) ph->p_vaddr;
+ l->l_ldnum = ph->p_memsz / sizeof (ElfW(Dyn));
+ }
+ else if (ph->p_type == PT_LOAD)
+ {
+ if (! l->l_addr)
+ l->l_addr = ph->p_vaddr;
+ if (ph->p_vaddr + ph->p_memsz >= l->l_map_end)
+ l->l_map_end = ph->p_vaddr + ph->p_memsz;
+ if ((ph->p_flags & PF_X)
+ && ph->p_vaddr + ph->p_memsz >= l->l_text_end)
+ l->l_text_end = ph->p_vaddr + ph->p_memsz;
+ }
+ else
+ /* There must be no TLS segment. */
+ assert (ph->p_type != PT_TLS);
+ }
+ l->l_map_start = (ElfW(Addr)) GLRO(dl_sysinfo_dso);
+ l->l_addr = l->l_map_start - l->l_addr;
+ l->l_map_end += l->l_addr;
+ l->l_text_end += l->l_addr;
+ l->l_ld = (void *) ((ElfW(Addr)) l->l_ld + l->l_addr);
+ elf_get_dynamic_info (l, dyn_temp);
+ _dl_setup_hash (l);
+ l->l_relocated = 1;
+
+ /* Now that we have the info handy, use the DSO image's soname
+ so this object can be looked up by name. Note that we do not
+ set l_name here. That field gives the file name of the DSO,
+ and this DSO is not associated with any file. */
+ if (l->l_info[DT_SONAME] != NULL)
+ {
+ /* Work around a kernel problem. The kernel cannot handle
+ addresses in the vsyscall DSO pages in writev() calls. */
+ const char *dsoname = ((char *) D_PTR (l, l_info[DT_STRTAB])
+ + l->l_info[DT_SONAME]->d_un.d_val);
+ size_t len = strlen (dsoname);
+ char *copy = malloc (len);
+ if (copy == NULL)
+ _dl_fatal_printf ("out of memory\n");
+ l->l_libname->name = memcpy (copy, dsoname, len);
+ }
+
+ /* Rearrange the list so this DSO appears after rtld_map. */
+ assert (l->l_next == NULL);
+ assert (l->l_prev == main_map);
+ GL(dl_rtld_map).l_next = l;
+ l->l_prev = &GL(dl_rtld_map);
+ first_preload = &l->l_next;
+
+ /* We have a prelinked DSO preloaded by the system. */
+ GLRO(dl_sysinfo_map) = l;
+# ifdef NEED_DL_SYSINFO
+ if (GLRO(dl_sysinfo) == DL_SYSINFO_DEFAULT)
+ GLRO(dl_sysinfo) = GLRO(dl_sysinfo_dso)->e_entry + l->l_addr;
+# endif
+ }
+ }
+#endif
+
+#ifdef DL_SYSDEP_OSCHECK
+ DL_SYSDEP_OSCHECK (dl_fatal);
+#endif
+
+ /* Initialize the data structures for the search paths for shared
+ objects. */
+ _dl_init_paths (library_path);
/* Initialize _r_debug. */
struct r_debug *r = _dl_debug_initialize (GL(dl_rtld_map).l_addr,
@@ -1524,7 +1607,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
/* We have two ways to specify objects to preload: via environment
variable and via the file /etc/ld.so.preload. The latter can also
be used when security is enabled. */
- assert (GL(dl_rtld_map).l_next == NULL);
+ assert (*first_preload == NULL);
struct link_map **preloads = NULL;
unsigned int npreloads = 0;
@@ -1657,9 +1740,9 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
struct stat test_st;
int test_fd;
int can_load;
-
+
HP_TIMING_NOW (start);
-
+
/* _dl_sysdep_message("Loading compatibility library... ", NULL); */
can_load = 1;
@@ -1673,7 +1756,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
/* _dl_sysdep_message(" Can't stat " LIB_NOVERSION "\n", NULL); */
}
}
-
+
if (test_fd >= 0) /* open did no fail.. */
__close(test_fd); /* avoid fd leaks */
@@ -1687,12 +1770,11 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
}
#endif
- if (__builtin_expect (GL(dl_rtld_map).l_next != NULL, 0))
+ if (__builtin_expect (*first_preload != NULL, 0))
{
/* Set up PRELOADS with a vector of the preloaded libraries. */
- struct link_map *l;
+ struct link_map *l = *first_preload;
preloads = __alloca (npreloads * sizeof preloads[0]);
- l = GL(dl_rtld_map).l_next; /* End of the chain before preloads. */
i = 0;
do
{
@@ -1702,82 +1784,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
assert (i == npreloads);
}
-#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
- struct link_map *sysinfo_map = NULL;
- if (GLRO(dl_sysinfo_dso) != NULL)
- {
- /* Do an abridged version of the work _dl_map_object_from_fd would do
- to map in the object. It's already mapped and prelinked (and
- better be, since it's read-only and so we couldn't relocate it).
- We just want our data structures to describe it as if we had just
- mapped and relocated it normally. */
- struct link_map *l = _dl_new_object ((char *) "", "", lt_library, NULL,
- 0, LM_ID_BASE);
- if (__builtin_expect (l != NULL, 1))
- {
- static ElfW(Dyn) dyn_temp[DL_RO_DYN_TEMP_CNT] attribute_relro;
-
- l->l_phdr = ((const void *) GLRO(dl_sysinfo_dso)
- + GLRO(dl_sysinfo_dso)->e_phoff);
- l->l_phnum = GLRO(dl_sysinfo_dso)->e_phnum;
- for (uint_fast16_t i = 0; i < l->l_phnum; ++i)
- {
- const ElfW(Phdr) *const ph = &l->l_phdr[i];
- if (ph->p_type == PT_DYNAMIC)
- {
- l->l_ld = (void *) ph->p_vaddr;
- l->l_ldnum = ph->p_memsz / sizeof (ElfW(Dyn));
- }
- else if (ph->p_type == PT_LOAD)
- {
- if (! l->l_addr)
- l->l_addr = ph->p_vaddr;
- if (ph->p_vaddr + ph->p_memsz >= l->l_map_end)
- l->l_map_end = ph->p_vaddr + ph->p_memsz;
- if ((ph->p_flags & PF_X)
- && ph->p_vaddr + ph->p_memsz >= l->l_text_end)
- l->l_text_end = ph->p_vaddr + ph->p_memsz;
- }
- else
- /* There must be no TLS segment. */
- assert (ph->p_type != PT_TLS);
- }
- l->l_map_start = (ElfW(Addr)) GLRO(dl_sysinfo_dso);
- l->l_addr = l->l_map_start - l->l_addr;
- l->l_map_end += l->l_addr;
- l->l_text_end += l->l_addr;
- l->l_ld = (void *) ((ElfW(Addr)) l->l_ld + l->l_addr);
- elf_get_dynamic_info (l, dyn_temp);
- _dl_setup_hash (l);
- l->l_relocated = 1;
-
- /* Now that we have the info handy, use the DSO image's soname
- so this object can be looked up by name. Note that we do not
- set l_name here. That field gives the file name of the DSO,
- and this DSO is not associated with any file. */
- if (l->l_info[DT_SONAME] != NULL)
- {
- /* Work around a kernel problem. The kernel cannot handle
- addresses in the vsyscall DSO pages in writev() calls. */
- const char *dsoname = ((char *) D_PTR (l, l_info[DT_STRTAB])
- + l->l_info[DT_SONAME]->d_un.d_val);
- size_t len = strlen (dsoname);
- char *copy = malloc (len);
- if (copy == NULL)
- _dl_fatal_printf ("out of memory\n");
- l->l_libname->name = memcpy (copy, dsoname, len);
- }
-
- /* We have a prelinked DSO preloaded by the system. */
- sysinfo_map = l;
-# ifdef NEED_DL_SYSINFO
- if (GLRO(dl_sysinfo) == DL_SYSINFO_DEFAULT)
- GLRO(dl_sysinfo) = GLRO(dl_sysinfo_dso)->e_entry + l->l_addr;
-# endif
- }
- }
-#endif
-
/* Load all the libraries specified by DT_NEEDED entries. If LD_PRELOAD
specified some libraries to load, these are inserted before the actual
dependencies in the executable's searchlist for symbol resolution. */
@@ -1822,10 +1828,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
? main_map->l_searchlist.r_list[i + 1]
: NULL);
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
- if (sysinfo_map != NULL
- && GL(dl_rtld_map).l_prev->l_next == sysinfo_map
- && GL(dl_rtld_map).l_next != sysinfo_map)
- GL(dl_rtld_map).l_prev = sysinfo_map;
+ if (GLRO(dl_sysinfo_map) != NULL
+ && GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map)
+ && GL(dl_rtld_map).l_next != GLRO(dl_sysinfo_map))
+ GL(dl_rtld_map).l_prev = GLRO(dl_sysinfo_map);
#endif
}
else
diff --git a/elf/tls-macros.h b/elf/tls-macros.h
index f734417149..0ae9e65dc0 100644
--- a/elf/tls-macros.h
+++ b/elf/tls-macros.h
@@ -441,6 +441,74 @@ register void *__gp __asm__("$29");
"o5", "o7", "cc"); \
__o0; })
+#elif defined __sparc__ && defined __arch64__
+
+# define TLS_LE(x) \
+ ({ int *__l; \
+ asm ("sethi %%tle_hix22(" #x "), %0" : "=r" (__l)); \
+ asm ("xor %1, %%tle_lox10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
+ asm ("add %%g7, %1, %0" : "=r" (__l) : "r" (__l)); \
+ __l; })
+
+# ifdef __PIC__
+# define TLS_LOAD_PIC \
+ ({ long pc, got; \
+ asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
+ "rd %%pc, %0\n\t" \
+ "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
+ "add %1, %0, %1\n\t" \
+ : "=r" (pc), "=r" (got)); \
+ got; })
+# else
+# define TLS_LOAD_PIC \
+ ({ long got; \
+ asm (".hidden _GLOBAL_OFFSET_TABLE_\n\t" \
+ "sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t" \
+ "or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0" \
+ : "=r" (got)); \
+ got; })
+# endif
+
+# define TLS_IE(x) \
+ ({ int *__l; \
+ asm ("sethi %%tie_hi22(" #x "), %0" : "=r" (__l)); \
+ asm ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
+ asm ("ldx [%1 + %2], %0, %%tie_ldx(" #x ")" \
+ : "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l)); \
+ asm ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r" (__l) : "r" (__l)); \
+ __l; })
+
+# define TLS_LD(x) \
+ ({ int *__l; register void *__o0 asm ("%o0"); \
+ long __o; \
+ asm ("sethi %%tldm_hi22(" #x "), %0" : "=r" (__l)); \
+ asm ("add %1, %%tldm_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
+ asm ("add %1, %2, %0, %%tldm_add(" #x ")" \
+ : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
+ asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
+ " nop" \
+ : "=r" (__o0) : "0" (__o0) \
+ : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
+ "o5", "o7", "cc"); \
+ asm ("sethi %%tldo_hix22(" #x "), %0" : "=r" (__o)); \
+ asm ("xor %1, %%tldo_lox10(" #x "), %0" : "=r" (__o) : "r" (__o)); \
+ asm ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r" (__l) \
+ : "r" (__o0), "r" (__o)); \
+ __l; })
+
+# define TLS_GD(x) \
+ ({ int *__l; register void *__o0 asm ("%o0"); \
+ asm ("sethi %%tgd_hi22(" #x "), %0" : "=r" (__l)); \
+ asm ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
+ asm ("add %1, %2, %0, %%tgd_add(" #x ")" \
+ : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
+ asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
+ " nop" \
+ : "=r" (__o0) : "0" (__o0) \
+ : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
+ "o5", "o7", "cc"); \
+ __o0; })
+
#elif defined __s390x__
# define TLS_LE(x) \
diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
index 3876822429..73d341d72b 100644
--- a/elf/tst-auditmod1.c
+++ b/elf/tst-auditmod1.c
@@ -180,6 +180,18 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
# define La_regs La_mips_64_regs
# define La_retval La_mips_64_retval
# define int_retval lrv_v0
+#elif defined __sparc__ && __WORDSIZE == 32
+# define pltenter la_sparc32_gnu_pltenter
+# define pltexit la_sparc32_gnu_pltexit
+# define La_regs La_sparc32_regs
+# define La_retval La_sparc32_retval
+# define int_retval lrv_reg[0]
+#elif defined __sparc__ && __WORDSIZE == 64
+# define pltenter la_sparc64_gnu_pltenter
+# define pltexit la_sparc64_gnu_pltexit
+# define La_regs La_sparc64_regs
+# define La_retval La_sparc64_retval
+# define int_retval lrv_reg[0]
#else
# error "architecture specific code needed"
#endif
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 3403138b76..5b5f55469d 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -1,5 +1,5 @@
# This file is updated automatically by Makefile.
glibc-branch := fedora
glibc-base := HEAD
-fedora-sync-date := 2005-04-05 21:14 UTC
-fedora-sync-tag := fedora-glibc-20050405T2114
+fedora-sync-date := 2005-04-15 09:09 UTC
+fedora-sync-tag := fedora-glibc-20050415T0909
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 5422417101..e0b84fa4bc 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 21
+%define glibcrelease 1
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define prelinkarches noarch
%define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -1264,6 +1264,14 @@ rm -f *.filelist*
%endif
%changelog
+* Fri Apr 15 2005 Roland McGrath <roland@redhat.com> 2.3.5-1
+- update from CVS
+ - fix execvp regression (BZ#851)
+ - ia64 libm updates
+ - sparc updates
+ - grok PT_NOTE in vDSO for kernel version and extra hwcap dirs,
+ support "hwcap" keyword in ld.so.conf files
+
* Tue Apr 4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-21
- update from CVS
- fix xdr_rmtcall_args on 64-bit arches (#151686)
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 36d4ae2d44..768ebf0a97 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -22,6 +22,8 @@
#include "gconv.h"
#include <stdlib.h> /* For alloca used in macro below. */
+#include <ctype.h> /* For __toupper_l used in macro below. */
+#include <string.h> /* For strlen et al used in macro below. */
#include <bits/libc-lock.h>
__BEGIN_DECLS
diff --git a/intl/tst-codeset.sh b/intl/tst-codeset.sh
index 3d9b9559b7..8b052168b2 100644
--- a/intl/tst-codeset.sh
+++ b/intl/tst-codeset.sh
@@ -1,6 +1,6 @@
#! /bin/sh
# Test of bind_textdomain_codeset.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
@@ -26,12 +26,11 @@ LC_ALL=C
export LC_ALL
# Generate the test data.
-test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
+msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit
# Create the domain directories.
-test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
-test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
+mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
# Populate them.
-msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
+mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo
GCONV_PATH=${common_objpfx}iconvdata
export GCONV_PATH
diff --git a/intl/tst-gettext3.sh b/intl/tst-gettext3.sh
index 7bd977cf2d..185576886e 100644
--- a/intl/tst-gettext3.sh
+++ b/intl/tst-gettext3.sh
@@ -27,12 +27,11 @@ LC_ALL=C
export LC_ALL
# Generate the test data.
-test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
+msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit
# Create the domain directories.
-test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
-test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
+mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
# Populate them.
-msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
+mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo
GCONV_PATH=${common_objpfx}iconvdata
export GCONV_PATH
diff --git a/manual/string.texi b/manual/string.texi
index d9de12996e..2717699213 100644
--- a/manual/string.texi
+++ b/manual/string.texi
@@ -386,7 +386,7 @@ memcpy (new, old, arraysize * sizeof (struct foo));
@comment wchar.h
@comment ISO
-@deftypefun {wchar_t *} wmemcpy (wchar_t *restrict @var{wto}, const wchar_t *restruct @var{wfrom}, size_t @var{size})
+@deftypefun {wchar_t *} wmemcpy (wchar_t *restrict @var{wto}, const wchar_t *restrict @var{wfrom}, size_t @var{size})
The @code{wmemcpy} function copies @var{size} wide characters from the object
beginning at @var{wfrom} into the object beginning at @var{wto}. The
behavior of this function is undefined if the two arrays @var{wto} and
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d07ee78064..e608d136ce 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-13 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
+ * sysdeps/sparc/sparc64/clone.S: New file.
+
2005-04-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
@@ -79,6 +84,7 @@
2005-02-07 Richard Henderson <rth@redhat.com>
+ [BZ #787]
* sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
argument.
diff --git a/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h b/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h
new file mode 100644
index 0000000000..77321aad3f
--- /dev/null
+++ b/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>, 2005.
+
+ 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 <setjmp.h>
+#include <stdint.h>
+#include <unwind.h>
+
+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
+
+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].uc_mcontext.mc_fp - (_adj))
+
+/* We use the normal lobngjmp for unwinding. */
+#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
new file mode 100644
index 0000000000..410f32017a
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -0,0 +1,2 @@
+#define RESET_PID
+#include <sysdeps/unix/sysv/linux/sparc/sparc64/clone.S>
diff --git a/nscd/Makefile b/nscd/Makefile
index 9c32c68681..75a9d434f4 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -51,6 +51,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
$(resolvobjdir)/libresolv.a
endif
+all-nscd-modules := $(nscd-modules) selinux
ifeq (yes,$(have-selinux))
nscd-modules += selinux
selinux-LIBS := -lselinux
@@ -59,7 +60,7 @@ endif
LDLIBS-nscd = $(selinux-LIBS)
distribute := nscd.h nscd-client.h dbg_log.h \
- $(addsuffix .c, $(filter-out xmalloc, $(nscd-modules))) \
+ $(addsuffix .c, $(filter-out xmalloc,$(all-nscd-modules))) \
nscd_nischeck.c nscd.conf nscd.init nscd_proto.h \
nscd-types.h
diff --git a/po/.cvsignore b/po/.cvsignore
index f3acb7df82..02da896169 100644
--- a/po/.cvsignore
+++ b/po/.cvsignore
@@ -41,6 +41,9 @@ crypt.pot
argp.pot
linuxthreads_db.pot
linuxthreads.pot
+nptl_db.pot
+nptl.pot
+libidn.pot
soft-fp.pot
resolv.pot
nss.pot
diff --git a/po/libc.pot b/po/libc.pot
index cd4f561738..fa5a221435 100644
--- a/po/libc.pot
+++ b/po/libc.pot
@@ -5,8 +5,8 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.3.2\n"
-"POT-Creation-Date: 2003-02-22 15:34-0800\n"
+"Project-Id-Version: libc 2.3.90\n"
+"POT-Creation-Date: 2005-04-07 21:55-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -59,9 +59,8 @@ msgstr ""
#. 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 stdio-common/../sysdeps/gnu/errlist.c:351
+#: sysdeps/generic/siglist.h:39 stdio-common/../sysdeps/gnu/errlist.c:359
#: stdio-common/../sysdeps/unix/siglist.c:39
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62
msgid "Broken pipe"
msgstr ""
@@ -178,12 +177,12 @@ msgstr ""
msgid "cannot read header from `%s'"
msgstr ""
-#: iconv/iconv_charmap.c:159 iconv/iconv_prog.c:293 catgets/gencat.c:288
+#: iconv/iconv_charmap.c:159 iconv/iconv_prog.c:299 catgets/gencat.c:289
#, c-format
msgid "cannot open input file `%s'"
msgstr ""
-#: iconv/iconv_charmap.c:177 iconv/iconv_prog.c:311
+#: iconv/iconv_charmap.c:177 iconv/iconv_prog.c:317
#, c-format
msgid "error while closing input `%s'"
msgstr ""
@@ -193,16 +192,16 @@ msgstr ""
msgid "illegal input sequence at position %Zd"
msgstr ""
-#: iconv/iconv_charmap.c:462 iconv/iconv_prog.c:503
+#: iconv/iconv_charmap.c:462 iconv/iconv_prog.c:527
msgid "incomplete character or shift sequence at end of buffer"
msgstr ""
-#: iconv/iconv_charmap.c:507 iconv/iconv_charmap.c:543 iconv/iconv_prog.c:546
-#: iconv/iconv_prog.c:582
+#: iconv/iconv_charmap.c:507 iconv/iconv_charmap.c:543 iconv/iconv_prog.c:570
+#: iconv/iconv_prog.c:606
msgid "error while reading the input"
msgstr ""
-#: iconv/iconv_charmap.c:525 iconv/iconv_prog.c:564
+#: iconv/iconv_charmap.c:525 iconv/iconv_prog.c:588
msgid "unable to allocate buffer for input"
msgstr ""
@@ -254,48 +253,50 @@ msgstr ""
msgid "[FILE...]"
msgstr ""
-#: iconv/iconv_prog.c:199
+#: iconv/iconv_prog.c:201
msgid "cannot open output file"
msgstr ""
-#: iconv/iconv_prog.c:241
+#: iconv/iconv_prog.c:243
#, c-format
msgid "conversion from `%s' and to `%s' are not supported"
msgstr ""
-#: iconv/iconv_prog.c:246
+#: iconv/iconv_prog.c:248
#, c-format
msgid "conversion from `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:253
+#: iconv/iconv_prog.c:255
#, c-format
msgid "conversion to `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:257
+#: iconv/iconv_prog.c:259
#, c-format
msgid "conversion from `%s' to `%s' is not supported"
msgstr ""
-#: iconv/iconv_prog.c:263
+#: iconv/iconv_prog.c:269
msgid "failed to start conversion processing"
msgstr ""
-#: iconv/iconv_prog.c:358
+#: iconv/iconv_prog.c:363
msgid "error while closing output file"
msgstr ""
-#: iconv/iconv_prog.c:407 iconv/iconvconfig.c:357 locale/programs/locale.c:274
+#: iconv/iconv_prog.c:412 iconv/iconvconfig.c:381
#: locale/programs/localedef.c:372 catgets/gencat.c:233
-#: malloc/memusagestat.c:602 debug/pcprofiledump.c:199
-msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
+#: malloc/memusagestat.c:524 nss/getent.c:787 debug/pcprofiledump.c:199
+msgid ""
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
msgstr ""
-#: iconv/iconv_prog.c:421 iconv/iconvconfig.c:371 locale/programs/locale.c:287
-#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:910
-#: nss/getent.c:74 nscd/nscd.c:330 nscd/nscd_nischeck.c:90 elf/ldconfig.c:271
-#: elf/sprof.c:349
+#: iconv/iconv_prog.c:427 iconv/iconvconfig.c:396 locale/programs/locale.c:276
+#: locale/programs/localedef.c:388 catgets/gencat.c:247 posix/getconf.c:963
+#: nss/getent.c:82 nscd/nscd.c:394 nscd/nscd_nischeck.c:90 elf/ldconfig.c:287
+#: elf/sprof.c:355
#, c-format
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
@@ -303,33 +304,33 @@ msgid ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
-#: iconv/iconv_prog.c:426 iconv/iconvconfig.c:376 locale/programs/locale.c:292
-#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:915
-#: nss/getent.c:79 nscd/nscd.c:335 nscd/nscd_nischeck.c:95 elf/ldconfig.c:276
-#: elf/sprof.c:355
+#: iconv/iconv_prog.c:432 iconv/iconvconfig.c:401 locale/programs/locale.c:281
+#: locale/programs/localedef.c:393 catgets/gencat.c:252 posix/getconf.c:968
+#: nss/getent.c:87 nscd/nscd.c:399 nscd/nscd_nischeck.c:95 elf/ldconfig.c:292
+#: elf/sprof.c:361
#, c-format
msgid "Written by %s.\n"
msgstr ""
-#: iconv/iconv_prog.c:456 iconv/iconv_prog.c:482
+#: iconv/iconv_prog.c:472 iconv/iconv_prog.c:498
msgid "conversion stopped due to problem in writing the output"
msgstr ""
-#: iconv/iconv_prog.c:499
+#: iconv/iconv_prog.c:523
#, c-format
msgid "illegal input sequence at position %ld"
msgstr ""
-#: iconv/iconv_prog.c:507
+#: iconv/iconv_prog.c:531
msgid "internal error (illegal descriptor)"
msgstr ""
-#: iconv/iconv_prog.c:510
+#: iconv/iconv_prog.c:534
#, c-format
msgid "unknown iconv() error %d"
msgstr ""
-#: iconv/iconv_prog.c:753
+#: iconv/iconv_prog.c:780
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"
@@ -339,27 +340,41 @@ msgid ""
" "
msgstr ""
-#: iconv/iconvconfig.c:110
+#: iconv/iconvconfig.c:111
msgid "Create fastloading iconv module configuration file."
msgstr ""
-#: iconv/iconvconfig.c:114
+#: iconv/iconvconfig.c:115
msgid "[DIR...]"
msgstr ""
-#: iconv/iconvconfig.c:126
+#: iconv/iconvconfig.c:128
msgid "Prefix used for all file accesses"
msgstr ""
-#: iconv/iconvconfig.c:327 locale/programs/localedef.c:292
+#: iconv/iconvconfig.c:129
+msgid ""
+"Put output in FILE instead of installed location (--prefix does not apply to "
+"FILE)"
+msgstr ""
+
+#: iconv/iconvconfig.c:133
+msgid "Do not search standard directories, only those on the command line"
+msgstr ""
+
+#: iconv/iconvconfig.c:302
+msgid "Directory arguments required when using --nostdlib"
+msgstr ""
+
+#: iconv/iconvconfig.c:344 locale/programs/localedef.c:292
msgid "no output file produced because warning were issued"
msgstr ""
-#: iconv/iconvconfig.c:405
+#: iconv/iconvconfig.c:430
msgid "while inserting in search tree"
msgstr ""
-#: iconv/iconvconfig.c:1204
+#: iconv/iconvconfig.c:1238
msgid "cannot generate output file"
msgstr ""
@@ -368,165 +383,165 @@ msgstr ""
msgid "cannot read character map directory `%s'"
msgstr ""
-#: locale/programs/charmap.c:135
+#: locale/programs/charmap.c:139
#, c-format
msgid "character map file `%s' not found"
msgstr ""
-#: locale/programs/charmap.c:193
+#: locale/programs/charmap.c:197
#, c-format
msgid "default character map file `%s' not found"
msgstr ""
-#: locale/programs/charmap.c:255
+#: locale/programs/charmap.c:260
#, c-format
msgid ""
"character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
msgstr ""
-#: locale/programs/charmap.c:332
+#: locale/programs/charmap.c:339
#, c-format
msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
msgstr ""
-#: locale/programs/charmap.c:352 locale/programs/charmap.c:369
-#: locale/programs/repertoire.c:175
+#: locale/programs/charmap.c:359 locale/programs/charmap.c:376
+#: locale/programs/repertoire.c:176
#, c-format
msgid "syntax error in prolog: %s"
msgstr ""
-#: locale/programs/charmap.c:353
+#: locale/programs/charmap.c:360
msgid "invalid definition"
msgstr ""
-#: locale/programs/charmap.c:370 locale/programs/locfile.c:126
-#: locale/programs/locfile.c:153 locale/programs/repertoire.c:176
+#: locale/programs/charmap.c:377 locale/programs/locfile.c:127
+#: locale/programs/locfile.c:154 locale/programs/repertoire.c:177
msgid "bad argument"
msgstr ""
-#: locale/programs/charmap.c:398
+#: locale/programs/charmap.c:405
#, c-format
msgid "duplicate definition of <%s>"
msgstr ""
-#: locale/programs/charmap.c:405
+#: locale/programs/charmap.c:412
#, c-format
msgid "value for <%s> must be 1 or greater"
msgstr ""
-#: locale/programs/charmap.c:417
+#: locale/programs/charmap.c:424
#, c-format
msgid "value of <%s> must be greater or equal than the value of <%s>"
msgstr ""
-#: locale/programs/charmap.c:440 locale/programs/repertoire.c:184
+#: locale/programs/charmap.c:447 locale/programs/repertoire.c:185
#, c-format
msgid "argument to <%s> must be a single character"
msgstr ""
-#: locale/programs/charmap.c:466
+#: locale/programs/charmap.c:473
msgid "character sets with locking states are not supported"
msgstr ""
-#: locale/programs/charmap.c:493 locale/programs/charmap.c:547
-#: locale/programs/charmap.c:579 locale/programs/charmap.c:673
-#: locale/programs/charmap.c:728 locale/programs/charmap.c:769
-#: locale/programs/charmap.c:810
+#: locale/programs/charmap.c:500 locale/programs/charmap.c:554
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:680
+#: locale/programs/charmap.c:735 locale/programs/charmap.c:776
+#: locale/programs/charmap.c:817
#, c-format
msgid "syntax error in %s definition: %s"
msgstr ""
-#: locale/programs/charmap.c:494 locale/programs/charmap.c:674
-#: locale/programs/charmap.c:770 locale/programs/repertoire.c:231
+#: locale/programs/charmap.c:501 locale/programs/charmap.c:681
+#: locale/programs/charmap.c:777 locale/programs/repertoire.c:232
msgid "no symbolic name given"
msgstr ""
-#: locale/programs/charmap.c:548
+#: locale/programs/charmap.c:555
msgid "invalid encoding given"
msgstr ""
-#: locale/programs/charmap.c:557
+#: locale/programs/charmap.c:564
msgid "too few bytes in character encoding"
msgstr ""
-#: locale/programs/charmap.c:559
+#: locale/programs/charmap.c:566
msgid "too many bytes in character encoding"
msgstr ""
-#: locale/programs/charmap.c:581 locale/programs/charmap.c:729
-#: locale/programs/charmap.c:812 locale/programs/repertoire.c:297
+#: locale/programs/charmap.c:588 locale/programs/charmap.c:736
+#: locale/programs/charmap.c:819 locale/programs/repertoire.c:298
msgid "no symbolic name given for end of range"
msgstr ""
-#: locale/programs/charmap.c:605 locale/programs/locfile.h:96
-#: locale/programs/repertoire.c:314
+#: locale/programs/charmap.c:612 locale/programs/locfile.c:819
+#: locale/programs/repertoire.c:315
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
-#: locale/programs/charmap.c:638
+#: locale/programs/charmap.c:645
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
-#: locale/programs/charmap.c:646 locale/programs/charmap.c:709
+#: locale/programs/charmap.c:653 locale/programs/charmap.c:716
#, c-format
msgid "value for %s must be an integer"
msgstr ""
-#: locale/programs/charmap.c:837
+#: locale/programs/charmap.c:844
#, c-format
msgid "%s: error in state machine"
msgstr ""
-#: locale/programs/charmap.c:845 locale/programs/ld-address.c:605
-#: locale/programs/ld-collate.c:2635 locale/programs/ld-collate.c:3793
-#: locale/programs/ld-ctype.c:2216 locale/programs/ld-ctype.c:2977
+#: locale/programs/charmap.c:852 locale/programs/ld-address.c:605
+#: locale/programs/ld-collate.c:2650 locale/programs/ld-collate.c:3818
+#: locale/programs/ld-ctype.c:2226 locale/programs/ld-ctype.c:2995
#: locale/programs/ld-identification.c:469
#: locale/programs/ld-measurement.c:255 locale/programs/ld-messages.c:349
-#: locale/programs/ld-monetary.c:952 locale/programs/ld-name.c:324
+#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:324
#: locale/programs/ld-numeric.c:392 locale/programs/ld-paper.c:258
-#: locale/programs/ld-telephone.c:330 locale/programs/ld-time.c:1217
-#: locale/programs/locfile.h:103 locale/programs/repertoire.c:325
+#: locale/programs/ld-telephone.c:330 locale/programs/ld-time.c:1220
+#: locale/programs/locfile.c:826 locale/programs/repertoire.c:326
#, c-format
msgid "%s: premature end of file"
msgstr ""
-#: locale/programs/charmap.c:864 locale/programs/charmap.c:875
+#: locale/programs/charmap.c:871 locale/programs/charmap.c:882
#, c-format
msgid "unknown character `%s'"
msgstr ""
-#: locale/programs/charmap.c:883
+#: locale/programs/charmap.c:890
#, c-format
msgid ""
"number of bytes for byte sequence of beginning and end of range not the "
"same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:987 locale/programs/ld-collate.c:2915
-#: locale/programs/repertoire.c:420
+#: locale/programs/charmap.c:995 locale/programs/ld-collate.c:2930
+#: locale/programs/repertoire.c:421
msgid "invalid names for character range"
msgstr ""
-#: locale/programs/charmap.c:999 locale/programs/repertoire.c:432
+#: locale/programs/charmap.c:1007 locale/programs/repertoire.c:433
msgid "hexadecimal range format should use only capital characters"
msgstr ""
-#: locale/programs/charmap.c:1017
+#: locale/programs/charmap.c:1025
#, c-format
msgid "<%s> and <%s> are illegal names for range"
msgstr ""
-#: locale/programs/charmap.c:1023
+#: locale/programs/charmap.c:1031
msgid "upper limit in range is not higher then lower limit"
msgstr ""
-#: locale/programs/charmap.c:1081
+#: locale/programs/charmap.c:1089
msgid "resulting bytes for range not representable."
msgstr ""
-#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1519
-#: locale/programs/ld-ctype.c:416 locale/programs/ld-identification.c:134
+#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1534
+#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:134
#: locale/programs/ld-measurement.c:95 locale/programs/ld-messages.c:98
#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:95
#: locale/programs/ld-numeric.c:99 locale/programs/ld-paper.c:92
@@ -540,8 +555,8 @@ msgstr ""
#: locale/programs/ld-address.c:290 locale/programs/ld-address.c:309
#: locale/programs/ld-address.c:322 locale/programs/ld-identification.c:147
#: locale/programs/ld-measurement.c:106 locale/programs/ld-monetary.c:206
-#: locale/programs/ld-monetary.c:244 locale/programs/ld-monetary.c:260
-#: locale/programs/ld-monetary.c:272 locale/programs/ld-name.c:106
+#: locale/programs/ld-monetary.c:250 locale/programs/ld-monetary.c:266
+#: locale/programs/ld-monetary.c:278 locale/programs/ld-name.c:106
#: locale/programs/ld-name.c:143 locale/programs/ld-numeric.c:113
#: locale/programs/ld-numeric.c:127 locale/programs/ld-paper.c:103
#: locale/programs/ld-paper.c:112 locale/programs/ld-telephone.c:106
@@ -585,522 +600,522 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:497 locale/programs/ld-address.c:534
-#: locale/programs/ld-address.c:572 locale/programs/ld-ctype.c:2592
+#: locale/programs/ld-address.c:572 locale/programs/ld-ctype.c:2602
#: locale/programs/ld-identification.c:365
#: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:302
-#: locale/programs/ld-monetary.c:694 locale/programs/ld-monetary.c:729
-#: locale/programs/ld-monetary.c:770 locale/programs/ld-name.c:281
+#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735
+#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:281
#: locale/programs/ld-numeric.c:264 locale/programs/ld-paper.c:225
-#: locale/programs/ld-telephone.c:289 locale/programs/ld-time.c:1106
-#: locale/programs/ld-time.c:1148
+#: locale/programs/ld-telephone.c:289 locale/programs/ld-time.c:1109
+#: locale/programs/ld-time.c:1151
#, c-format
msgid "%s: field `%s' declared more than once"
msgstr ""
#: locale/programs/ld-address.c:501 locale/programs/ld-address.c:539
#: locale/programs/ld-identification.c:369 locale/programs/ld-messages.c:312
-#: locale/programs/ld-monetary.c:698 locale/programs/ld-monetary.c:733
+#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739
#: locale/programs/ld-name.c:285 locale/programs/ld-numeric.c:268
-#: locale/programs/ld-telephone.c:293 locale/programs/ld-time.c:1000
-#: locale/programs/ld-time.c:1069 locale/programs/ld-time.c:1111
+#: locale/programs/ld-telephone.c:293 locale/programs/ld-time.c:1003
+#: locale/programs/ld-time.c:1072 locale/programs/ld-time.c:1114
#, c-format
msgid "%s: unknown character in field `%s'"
msgstr ""
-#: locale/programs/ld-address.c:586 locale/programs/ld-collate.c:3775
-#: locale/programs/ld-ctype.c:2957 locale/programs/ld-identification.c:450
+#: locale/programs/ld-address.c:586 locale/programs/ld-collate.c:3800
+#: locale/programs/ld-ctype.c:2975 locale/programs/ld-identification.c:450
#: locale/programs/ld-measurement.c:236 locale/programs/ld-messages.c:331
-#: locale/programs/ld-monetary.c:934 locale/programs/ld-name.c:306
+#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:306
#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:240
-#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1199
+#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1202
#, c-format
msgid "%s: incomplete `END' line"
msgstr ""
-#: locale/programs/ld-address.c:589 locale/programs/ld-collate.c:2638
-#: locale/programs/ld-collate.c:3777 locale/programs/ld-ctype.c:2219
-#: locale/programs/ld-ctype.c:2960 locale/programs/ld-identification.c:453
+#: locale/programs/ld-address.c:589 locale/programs/ld-collate.c:2653
+#: locale/programs/ld-collate.c:3802 locale/programs/ld-ctype.c:2229
+#: locale/programs/ld-ctype.c:2978 locale/programs/ld-identification.c:453
#: locale/programs/ld-measurement.c:239 locale/programs/ld-messages.c:333
-#: locale/programs/ld-monetary.c:936 locale/programs/ld-name.c:308
+#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:308
#: locale/programs/ld-numeric.c:376 locale/programs/ld-paper.c:242
-#: locale/programs/ld-telephone.c:314 locale/programs/ld-time.c:1201
+#: locale/programs/ld-telephone.c:314 locale/programs/ld-time.c:1204
#, c-format
msgid "%1$s: definition does not end with `END %1$s'"
msgstr ""
-#: locale/programs/ld-address.c:596 locale/programs/ld-collate.c:520
-#: locale/programs/ld-collate.c:572 locale/programs/ld-collate.c:869
-#: locale/programs/ld-collate.c:882 locale/programs/ld-collate.c:2625
-#: locale/programs/ld-collate.c:3784 locale/programs/ld-ctype.c:1947
-#: locale/programs/ld-ctype.c:2206 locale/programs/ld-ctype.c:2782
-#: locale/programs/ld-ctype.c:2968 locale/programs/ld-identification.c:460
+#: locale/programs/ld-address.c:596 locale/programs/ld-collate.c:523
+#: locale/programs/ld-collate.c:575 locale/programs/ld-collate.c:871
+#: locale/programs/ld-collate.c:884 locale/programs/ld-collate.c:2640
+#: locale/programs/ld-collate.c:3809 locale/programs/ld-ctype.c:1957
+#: locale/programs/ld-ctype.c:2216 locale/programs/ld-ctype.c:2800
+#: locale/programs/ld-ctype.c:2986 locale/programs/ld-identification.c:460
#: locale/programs/ld-measurement.c:246 locale/programs/ld-messages.c:340
-#: locale/programs/ld-monetary.c:943 locale/programs/ld-name.c:315
+#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:315
#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:249
-#: locale/programs/ld-telephone.c:321 locale/programs/ld-time.c:1208
+#: locale/programs/ld-telephone.c:321 locale/programs/ld-time.c:1211
#, c-format
msgid "%s: syntax error"
msgstr ""
-#: locale/programs/ld-collate.c:395
+#: locale/programs/ld-collate.c:398
#, c-format
msgid "`%.*s' already defined in charmap"
msgstr ""
-#: locale/programs/ld-collate.c:404
+#: locale/programs/ld-collate.c:407
#, c-format
msgid "`%.*s' already defined in repertoire"
msgstr ""
-#: locale/programs/ld-collate.c:411
+#: locale/programs/ld-collate.c:414
#, c-format
msgid "`%.*s' already defined as collating symbol"
msgstr ""
-#: locale/programs/ld-collate.c:418
+#: locale/programs/ld-collate.c:421
#, c-format
msgid "`%.*s' already defined as collating element"
msgstr ""
-#: locale/programs/ld-collate.c:449 locale/programs/ld-collate.c:475
+#: locale/programs/ld-collate.c:452 locale/programs/ld-collate.c:478
#, c-format
msgid "%s: `forward' and `backward' are mutually excluding each other"
msgstr ""
-#: locale/programs/ld-collate.c:459 locale/programs/ld-collate.c:485
-#: locale/programs/ld-collate.c:501
+#: locale/programs/ld-collate.c:462 locale/programs/ld-collate.c:488
+#: locale/programs/ld-collate.c:504
#, c-format
msgid "%s: `%s' mentioned more than once in definition of weight %d"
msgstr ""
-#: locale/programs/ld-collate.c:557
+#: locale/programs/ld-collate.c:560
#, c-format
msgid "%s: too many rules; first entry only had %d"
msgstr ""
-#: locale/programs/ld-collate.c:593
+#: locale/programs/ld-collate.c:596
#, c-format
msgid "%s: not enough sorting rules"
msgstr ""
-#: locale/programs/ld-collate.c:759
+#: locale/programs/ld-collate.c:761
#, c-format
msgid "%s: empty weight string not allowed"
msgstr ""
-#: locale/programs/ld-collate.c:854
+#: locale/programs/ld-collate.c:856
#, c-format
msgid "%s: weights must use the same ellipsis symbol as the name"
msgstr ""
-#: locale/programs/ld-collate.c:910
+#: locale/programs/ld-collate.c:912
#, c-format
msgid "%s: too many values"
msgstr ""
-#: locale/programs/ld-collate.c:1023 locale/programs/ld-collate.c:1194
+#: locale/programs/ld-collate.c:1031 locale/programs/ld-collate.c:1206
#, c-format
msgid "order for `%.*s' already defined at %s:%Zu"
msgstr ""
-#: locale/programs/ld-collate.c:1073
+#: locale/programs/ld-collate.c:1081
#, c-format
msgid "%s: the start and the end symbol of a range must stand for characters"
msgstr ""
-#: locale/programs/ld-collate.c:1100
+#: locale/programs/ld-collate.c:1108
#, c-format
msgid ""
"%s: byte sequences of first and last character must have the same length"
msgstr ""
-#: locale/programs/ld-collate.c:1142
+#: locale/programs/ld-collate.c:1150
#, c-format
msgid ""
"%s: byte sequence of first character of sequence is not lower than that of "
"the last character"
msgstr ""
-#: locale/programs/ld-collate.c:1263
+#: locale/programs/ld-collate.c:1275
#, c-format
msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
msgstr ""
-#: locale/programs/ld-collate.c:1267
+#: locale/programs/ld-collate.c:1279
#, c-format
msgid ""
"%s: symbolic range ellipsis must not be directly followed by `order_end'"
msgstr ""
-#: locale/programs/ld-collate.c:1287 locale/programs/ld-ctype.c:1467
+#: locale/programs/ld-collate.c:1299 locale/programs/ld-ctype.c:1477
#, c-format
msgid "`%s' and `%.*s' are no valid names for symbolic range"
msgstr ""
-#: locale/programs/ld-collate.c:1333 locale/programs/ld-collate.c:3712
+#: locale/programs/ld-collate.c:1348 locale/programs/ld-collate.c:3737
#, c-format
msgid "%s: order for `%.*s' already defined at %s:%Zu"
msgstr ""
-#: locale/programs/ld-collate.c:1342
+#: locale/programs/ld-collate.c:1357
#, c-format
msgid "%s: `%s' must be a character"
msgstr ""
-#: locale/programs/ld-collate.c:1535
+#: locale/programs/ld-collate.c:1550
#, c-format
msgid ""
"%s: `position' must be used for a specific level in all sections or none"
msgstr ""
-#: locale/programs/ld-collate.c:1560
+#: locale/programs/ld-collate.c:1575
#, c-format
msgid "symbol `%s' not defined"
msgstr ""
-#: locale/programs/ld-collate.c:1636 locale/programs/ld-collate.c:1742
+#: locale/programs/ld-collate.c:1651 locale/programs/ld-collate.c:1757
#, c-format
msgid "symbol `%s' has the same encoding as"
msgstr ""
-#: locale/programs/ld-collate.c:1640 locale/programs/ld-collate.c:1746
+#: locale/programs/ld-collate.c:1655 locale/programs/ld-collate.c:1761
#, c-format
msgid "symbol `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:1788
+#: locale/programs/ld-collate.c:1803
msgid "no definition of `UNDEFINED'"
msgstr ""
-#: locale/programs/ld-collate.c:1817
+#: locale/programs/ld-collate.c:1832
msgid "too many errors; giving up"
msgstr ""
-#: locale/programs/ld-collate.c:2720
+#: locale/programs/ld-collate.c:2735
#, c-format
msgid "%s: duplicate definition of `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:2756
+#: locale/programs/ld-collate.c:2771
#, c-format
msgid "%s: duplicate declaration of section `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:2895
+#: locale/programs/ld-collate.c:2910
#, c-format
msgid "%s: unknown character in collating symbol name"
msgstr ""
-#: locale/programs/ld-collate.c:3027
+#: locale/programs/ld-collate.c:3042
#, c-format
msgid "%s: unknown character in equivalent definition name"
msgstr ""
-#: locale/programs/ld-collate.c:3040
+#: locale/programs/ld-collate.c:3055
#, c-format
msgid "%s: unknown character in equivalent definition value"
msgstr ""
-#: locale/programs/ld-collate.c:3050
+#: locale/programs/ld-collate.c:3065
#, c-format
msgid "%s: unknown symbol `%s' in equivalent definition"
msgstr ""
-#: locale/programs/ld-collate.c:3059
+#: locale/programs/ld-collate.c:3074
msgid "error while adding equivalent collating symbol"
msgstr ""
-#: locale/programs/ld-collate.c:3089
+#: locale/programs/ld-collate.c:3104
#, c-format
msgid "duplicate definition of script `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3137
+#: locale/programs/ld-collate.c:3152
#, c-format
msgid "%s: unknown section name `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3165
+#: locale/programs/ld-collate.c:3180
#, c-format
msgid "%s: multiple order definitions for section `%s'"
msgstr ""
-#: locale/programs/ld-collate.c:3190
+#: locale/programs/ld-collate.c:3205
#, c-format
msgid "%s: invalid number of sorting rules"
msgstr ""
-#: locale/programs/ld-collate.c:3217
+#: locale/programs/ld-collate.c:3232
#, c-format
msgid "%s: multiple order definitions for unnamed section"
msgstr ""
-#: locale/programs/ld-collate.c:3271 locale/programs/ld-collate.c:3394
-#: locale/programs/ld-collate.c:3753
+#: locale/programs/ld-collate.c:3286 locale/programs/ld-collate.c:3414
+#: locale/programs/ld-collate.c:3778
#, c-format
msgid "%s: missing `order_end' keyword"
msgstr ""
-#: locale/programs/ld-collate.c:3329
+#: locale/programs/ld-collate.c:3347
#, c-format
msgid "%s: order for collating symbol %.*s not yet defined"
msgstr ""
-#: locale/programs/ld-collate.c:3345
+#: locale/programs/ld-collate.c:3365
#, c-format
msgid "%s: order for collating element %.*s not yet defined"
msgstr ""
-#: locale/programs/ld-collate.c:3356
+#: locale/programs/ld-collate.c:3376
#, c-format
msgid "%s: cannot reorder after %.*s: symbol not known"
msgstr ""
-#: locale/programs/ld-collate.c:3408 locale/programs/ld-collate.c:3765
+#: locale/programs/ld-collate.c:3428 locale/programs/ld-collate.c:3790
#, c-format
msgid "%s: missing `reorder-end' keyword"
msgstr ""
-#: locale/programs/ld-collate.c:3442 locale/programs/ld-collate.c:3637
+#: locale/programs/ld-collate.c:3462 locale/programs/ld-collate.c:3662
#, c-format
msgid "%s: section `%.*s' not known"
msgstr ""
-#: locale/programs/ld-collate.c:3507
+#: locale/programs/ld-collate.c:3527
#, c-format
msgid "%s: bad symbol <%.*s>"
msgstr ""
-#: locale/programs/ld-collate.c:3700
+#: locale/programs/ld-collate.c:3725
#, c-format
msgid "%s: cannot have `%s' as end of ellipsis range"
msgstr ""
-#: locale/programs/ld-collate.c:3749
+#: locale/programs/ld-collate.c:3774
#, c-format
msgid "%s: empty category description not allowed"
msgstr ""
-#: locale/programs/ld-collate.c:3768
+#: locale/programs/ld-collate.c:3793
#, c-format
msgid "%s: missing `reorder-sections-end' keyword"
msgstr ""
-#: locale/programs/ld-ctype.c:435
+#: locale/programs/ld-ctype.c:440
msgid "No character set name specified in charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:464
+#: locale/programs/ld-ctype.c:469
#, c-format
msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:479
+#: locale/programs/ld-ctype.c:484
#, c-format
msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:493 locale/programs/ld-ctype.c:551
+#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556
#, c-format
msgid "internal error in %s, line %u"
msgstr ""
-#: locale/programs/ld-ctype.c:522
+#: locale/programs/ld-ctype.c:527
#, c-format
msgid "character '%s' in class `%s' must be in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:538
+#: locale/programs/ld-ctype.c:543
#, c-format
msgid "character '%s' in class `%s' must not be in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:568 locale/programs/ld-ctype.c:606
+#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611
#, c-format
msgid "<SP> character not in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:580 locale/programs/ld-ctype.c:617
+#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622
#, c-format
msgid "<SP> character must not be in class `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:595
+#: locale/programs/ld-ctype.c:600
msgid "character <SP> not defined in character map"
msgstr ""
-#: locale/programs/ld-ctype.c:709
+#: locale/programs/ld-ctype.c:714
msgid "`digit' category has not entries in groups of ten"
msgstr ""
-#: locale/programs/ld-ctype.c:758
+#: locale/programs/ld-ctype.c:763
msgid "no input digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:823
+#: locale/programs/ld-ctype.c:828
msgid "not all characters used in `outdigit' are available in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:840
+#: locale/programs/ld-ctype.c:845
msgid "not all characters used in `outdigit' are available in the repertoire"
msgstr ""
-#: locale/programs/ld-ctype.c:1235
+#: locale/programs/ld-ctype.c:1245
#, c-format
msgid "character class `%s' already defined"
msgstr ""
-#: locale/programs/ld-ctype.c:1241
+#: locale/programs/ld-ctype.c:1251
#, c-format
msgid "implementation limit: no more than %Zd character classes allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1267
+#: locale/programs/ld-ctype.c:1277
#, c-format
msgid "character map `%s' already defined"
msgstr ""
-#: locale/programs/ld-ctype.c:1273
+#: locale/programs/ld-ctype.c:1283
#, c-format
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1538 locale/programs/ld-ctype.c:1663
-#: locale/programs/ld-ctype.c:1769 locale/programs/ld-ctype.c:2455
-#: locale/programs/ld-ctype.c:3443
+#: locale/programs/ld-ctype.c:1548 locale/programs/ld-ctype.c:1673
+#: locale/programs/ld-ctype.c:1779 locale/programs/ld-ctype.c:2465
+#: locale/programs/ld-ctype.c:3461
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1566 locale/programs/ld-ctype.c:2137
+#: locale/programs/ld-ctype.c:1576 locale/programs/ld-ctype.c:2147
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1693
+#: locale/programs/ld-ctype.c:1703
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1700
+#: locale/programs/ld-ctype.c:1710
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:2057 locale/programs/ld-ctype.c:2108
+#: locale/programs/ld-ctype.c:2067 locale/programs/ld-ctype.c:2118
msgid "premature end of `translit_ignore' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2063 locale/programs/ld-ctype.c:2114
-#: locale/programs/ld-ctype.c:2156
+#: locale/programs/ld-ctype.c:2073 locale/programs/ld-ctype.c:2124
+#: locale/programs/ld-ctype.c:2166
msgid "syntax error"
msgstr ""
-#: locale/programs/ld-ctype.c:2287
+#: locale/programs/ld-ctype.c:2297
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2302
+#: locale/programs/ld-ctype.c:2312
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2477
+#: locale/programs/ld-ctype.c:2487
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2486
+#: locale/programs/ld-ctype.c:2496
msgid ""
"with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2501
+#: locale/programs/ld-ctype.c:2511
msgid ""
"with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2515
+#: locale/programs/ld-ctype.c:2525
msgid ""
"with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2666
+#: locale/programs/ld-ctype.c:2676
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:2744 locale/programs/ld-ctype.c:2888
+#: locale/programs/ld-ctype.c:2762 locale/programs/ld-ctype.c:2906
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2839
+#: locale/programs/ld-ctype.c:2857
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2844
+#: locale/programs/ld-ctype.c:2862
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2866
+#: locale/programs/ld-ctype.c:2884
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:3019
+#: locale/programs/ld-ctype.c:3037
#, c-format
msgid "%s: character `%s' not defined in charmap while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:3024 locale/programs/ld-ctype.c:3108
-#: locale/programs/ld-ctype.c:3128 locale/programs/ld-ctype.c:3149
-#: locale/programs/ld-ctype.c:3170 locale/programs/ld-ctype.c:3191
-#: locale/programs/ld-ctype.c:3212 locale/programs/ld-ctype.c:3252
-#: locale/programs/ld-ctype.c:3273 locale/programs/ld-ctype.c:3340
+#: locale/programs/ld-ctype.c:3042 locale/programs/ld-ctype.c:3126
+#: locale/programs/ld-ctype.c:3146 locale/programs/ld-ctype.c:3167
+#: locale/programs/ld-ctype.c:3188 locale/programs/ld-ctype.c:3209
+#: locale/programs/ld-ctype.c:3230 locale/programs/ld-ctype.c:3270
+#: locale/programs/ld-ctype.c:3291 locale/programs/ld-ctype.c:3358
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3103 locale/programs/ld-ctype.c:3123
-#: locale/programs/ld-ctype.c:3165 locale/programs/ld-ctype.c:3186
-#: locale/programs/ld-ctype.c:3207 locale/programs/ld-ctype.c:3247
-#: locale/programs/ld-ctype.c:3268 locale/programs/ld-ctype.c:3335
-#: locale/programs/ld-ctype.c:3377 locale/programs/ld-ctype.c:3402
+#: locale/programs/ld-ctype.c:3121 locale/programs/ld-ctype.c:3141
+#: locale/programs/ld-ctype.c:3183 locale/programs/ld-ctype.c:3204
+#: locale/programs/ld-ctype.c:3225 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3286 locale/programs/ld-ctype.c:3353
+#: locale/programs/ld-ctype.c:3395 locale/programs/ld-ctype.c:3420
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:3144
+#: locale/programs/ld-ctype.c:3162
#, c-format
msgid "character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:3384 locale/programs/ld-ctype.c:3409
+#: locale/programs/ld-ctype.c:3402 locale/programs/ld-ctype.c:3427
#, c-format
msgid ""
"%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3464
+#: locale/programs/ld-ctype.c:3482
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3755
+#: locale/programs/ld-ctype.c:3773
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3851
+#: locale/programs/ld-ctype.c:3869
#, c-format
msgid "%s: table for class \"%s\": %lu bytes\n"
msgstr ""
-#: locale/programs/ld-ctype.c:3920
+#: locale/programs/ld-ctype.c:3938
#, c-format
msgid "%s: table for map \"%s\": %lu bytes\n"
msgstr ""
-#: locale/programs/ld-ctype.c:4053
+#: locale/programs/ld-ctype.c:4071
#, c-format
msgid "%s: table for width: %lu bytes\n"
msgstr ""
@@ -1140,39 +1155,39 @@ msgstr ""
msgid "%s: value of field `int_curr_symbol' has wrong length"
msgstr ""
-#: locale/programs/ld-monetary.c:232
+#: locale/programs/ld-monetary.c:237
#, c-format
msgid ""
"%s: value of field `int_curr_symbol' does not correspond to a valid name in "
"ISO 4217"
msgstr ""
-#: locale/programs/ld-monetary.c:250 locale/programs/ld-numeric.c:119
+#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:119
#, c-format
msgid "%s: value for field `%s' must not be the empty string"
msgstr ""
-#: locale/programs/ld-monetary.c:278 locale/programs/ld-monetary.c:308
+#: 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 ""
-#: locale/programs/ld-monetary.c:740 locale/programs/ld-numeric.c:275
+#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:275
#, c-format
msgid "%s: value for field `%s' must be a single character"
msgstr ""
-#: locale/programs/ld-monetary.c:837 locale/programs/ld-numeric.c:319
+#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:319
#, c-format
msgid "%s: `-1' must be last entry in `%s' field"
msgstr ""
-#: locale/programs/ld-monetary.c:859 locale/programs/ld-numeric.c:340
+#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:340
#, c-format
msgid "%s: values for field `%s' must be smaller than 127"
msgstr ""
-#: locale/programs/ld-monetary.c:902
+#: locale/programs/ld-monetary.c:908
msgid "conversion rate value cannot be zero"
msgstr ""
@@ -1258,62 +1273,62 @@ msgstr ""
msgid "%s: values for field `%s' must not be larger than %d"
msgstr ""
-#: locale/programs/ld-time.c:984
+#: locale/programs/ld-time.c:987
#, c-format
msgid "%s: too few values for field `%s'"
msgstr ""
-#: locale/programs/ld-time.c:1029
+#: locale/programs/ld-time.c:1032
msgid "extra trailing semicolon"
msgstr ""
-#: locale/programs/ld-time.c:1032
+#: locale/programs/ld-time.c:1035
#, c-format
msgid "%s: too many values for field `%s'"
msgstr ""
-#: locale/programs/linereader.c:275
+#: locale/programs/linereader.c:131
+msgid "trailing garbage at end of line"
+msgstr ""
+
+#: locale/programs/linereader.c:305
msgid "garbage at end of number"
msgstr ""
-#: locale/programs/linereader.c:387
+#: locale/programs/linereader.c:417
msgid "garbage at end of character code specification"
msgstr ""
-#: locale/programs/linereader.c:473
+#: locale/programs/linereader.c:503
msgid "unterminated symbolic name"
msgstr ""
-#: locale/programs/linereader.c:537 catgets/gencat.c:1195
+#: locale/programs/linereader.c:567 catgets/gencat.c:1196
msgid "invalid escape sequence"
msgstr ""
-#: locale/programs/linereader.c:600
+#: locale/programs/linereader.c:630
msgid "illegal escape sequence at end of string"
msgstr ""
-#: locale/programs/linereader.c:604 locale/programs/linereader.c:832
+#: locale/programs/linereader.c:634 locale/programs/linereader.c:862
msgid "unterminated string"
msgstr ""
-#: locale/programs/linereader.c:646
+#: locale/programs/linereader.c:676
msgid "non-symbolic character value should not be used"
msgstr ""
-#: locale/programs/linereader.c:793
+#: locale/programs/linereader.c:823
#, c-format
msgid "symbol `%.*s' not in charmap"
msgstr ""
-#: locale/programs/linereader.c:814
+#: locale/programs/linereader.c:844
#, c-format
msgid "symbol `%.*s' not in repertoire map"
msgstr ""
-#: locale/programs/linereader.h:162
-msgid "trailing garbage at end of line"
-msgstr ""
-
#: locale/programs/locale.c:75
msgid "System information:"
msgstr ""
@@ -1343,16 +1358,35 @@ msgid "Print more information"
msgstr ""
#: locale/programs/locale.c:88
-msgid "Get locale-specific information."
+msgid ""
+"Get locale-specific information.\013For bug reporting instructions, please "
+"see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
msgstr ""
-#: locale/programs/locale.c:91
+#: locale/programs/locale.c:93
msgid ""
"NAME\n"
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:512
+#: locale/programs/locale.c:194
+msgid "Cannot set LC_CTYPE to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:196
+msgid "Cannot set LC_MESSAGES to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:209
+msgid "Cannot set LC_COLLATE to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:225
+msgid "Cannot set LC_ALL to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:501
msgid "while preparing output"
msgstr ""
@@ -1444,7 +1478,7 @@ msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
#: locale/programs/localedef.c:258 locale/programs/localedef.c:274
-#: locale/programs/localedef.c:599 locale/programs/localedef.c:619
+#: locale/programs/localedef.c:600 locale/programs/localedef.c:620
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr ""
@@ -1463,29 +1497,29 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:567
+#: locale/programs/localedef.c:568
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:573
+#: locale/programs/localedef.c:574
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
-#: locale/programs/locarchive.c:89 locale/programs/locarchive.c:259
+#: locale/programs/locarchive.c:89 locale/programs/locarchive.c:258
msgid "cannot create temporary file"
msgstr ""
-#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:305
+#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:304
msgid "cannot initialize archive file"
msgstr ""
-#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:312
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:311
msgid "cannot resize archive file"
msgstr ""
-#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:321
-#: locale/programs/locarchive.c:511
+#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:320
+#: locale/programs/locarchive.c:508
msgid "cannot map archive header"
msgstr ""
@@ -1497,162 +1531,162 @@ msgstr ""
msgid "cannot change mode of new locale archive"
msgstr ""
-#: locale/programs/locarchive.c:253
+#: locale/programs/locarchive.c:252
msgid "cannot map locale archive file"
msgstr ""
-#: locale/programs/locarchive.c:329
+#: locale/programs/locarchive.c:328
msgid "cannot lock new archive"
msgstr ""
-#: locale/programs/locarchive.c:380
+#: locale/programs/locarchive.c:377
msgid "cannot extend locale archive file"
msgstr ""
-#: locale/programs/locarchive.c:389
+#: locale/programs/locarchive.c:386
msgid "cannot change mode of resized locale archive"
msgstr ""
-#: locale/programs/locarchive.c:397
+#: locale/programs/locarchive.c:394
msgid "cannot rename new archive"
msgstr ""
-#: locale/programs/locarchive.c:450
+#: locale/programs/locarchive.c:447
#, c-format
msgid "cannot open locale archive \"%s\""
msgstr ""
-#: locale/programs/locarchive.c:455
+#: locale/programs/locarchive.c:452
#, c-format
msgid "cannot stat locale archive \"%s\""
msgstr ""
-#: locale/programs/locarchive.c:474
+#: locale/programs/locarchive.c:471
#, c-format
msgid "cannot lock locale archive \"%s\""
msgstr ""
-#: locale/programs/locarchive.c:497
+#: locale/programs/locarchive.c:494
msgid "cannot read archive header"
msgstr ""
-#: locale/programs/locarchive.c:557
+#: locale/programs/locarchive.c:554
#, c-format
msgid "locale '%s' already exists"
msgstr ""
-#: locale/programs/locarchive.c:788 locale/programs/locarchive.c:803
-#: locale/programs/locarchive.c:815 locale/programs/locarchive.c:827
-#: locale/programs/locfile.c:343
+#: locale/programs/locarchive.c:785 locale/programs/locarchive.c:800
+#: locale/programs/locarchive.c:812 locale/programs/locarchive.c:824
+#: locale/programs/locfile.c:344
msgid "cannot add to locale archive"
msgstr ""
-#: locale/programs/locarchive.c:982
+#: locale/programs/locarchive.c:979
#, c-format
msgid "locale alias file `%s' not found"
msgstr ""
-#: locale/programs/locarchive.c:1126
+#: locale/programs/locarchive.c:1123
#, c-format
msgid "Adding %s\n"
msgstr ""
-#: locale/programs/locarchive.c:1132
+#: locale/programs/locarchive.c:1129
#, c-format
msgid "stat of \"%s\" failed: %s: ignored"
msgstr ""
-#: locale/programs/locarchive.c:1138
+#: locale/programs/locarchive.c:1135
#, c-format
msgid "\"%s\" is no directory; ignored"
msgstr ""
-#: locale/programs/locarchive.c:1145
+#: locale/programs/locarchive.c:1142
#, c-format
msgid "cannot open directory \"%s\": %s: ignored"
msgstr ""
-#: locale/programs/locarchive.c:1217
+#: locale/programs/locarchive.c:1214
#, c-format
msgid "incomplete set of locale files in \"%s\""
msgstr ""
-#: locale/programs/locarchive.c:1281
+#: locale/programs/locarchive.c:1278
#, c-format
msgid "cannot read all files in \"%s\": ignored"
msgstr ""
-#: locale/programs/locarchive.c:1351
+#: locale/programs/locarchive.c:1348
#, c-format
msgid "locale \"%s\" not in archive"
msgstr ""
-#: locale/programs/locfile.c:132
+#: locale/programs/locfile.c:133
#, c-format
msgid "argument to `%s' must be a single character"
msgstr ""
-#: locale/programs/locfile.c:251
+#: locale/programs/locfile.c:252
msgid "syntax error: not inside a locale definition section"
msgstr ""
-#: locale/programs/locfile.c:625
+#: locale/programs/locfile.c:626
#, c-format
msgid "cannot open output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:649
+#: locale/programs/locfile.c:650
#, c-format
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:745
+#: locale/programs/locfile.c:746
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.h:59
+#: locale/programs/locfile.c:782
msgid "expect string argument for `copy'"
msgstr ""
-#: locale/programs/locfile.h:63
+#: locale/programs/locfile.c:786
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.h:82
+#: locale/programs/locfile.c:805
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
-#: locale/programs/repertoire.c:296
+#: locale/programs/repertoire.c:231 locale/programs/repertoire.c:272
+#: locale/programs/repertoire.c:297
#, c-format
msgid "syntax error in repertoire map definition: %s"
msgstr ""
-#: locale/programs/repertoire.c:272
+#: locale/programs/repertoire.c:273
msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
msgstr ""
-#: locale/programs/repertoire.c:332
+#: locale/programs/repertoire.c:333
msgid "cannot safe new repertoire map"
msgstr ""
-#: locale/programs/repertoire.c:343
+#: locale/programs/repertoire.c:344
#, c-format
msgid "repertoire map file `%s' not found"
msgstr ""
-#: locale/programs/repertoire.c:450
+#: locale/programs/repertoire.c:451
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr ""
-#: locale/programs/repertoire.c:457
+#: locale/programs/repertoire.c:458
msgid "upper limit in range is not smaller then lower limit"
msgstr ""
-#: locale/programs/xmalloc.c:70 malloc/obstack.c:505 malloc/obstack.c:508
-#: posix/getconf.c:1002
+#: locale/programs/xmalloc.c:70 malloc/obstack.c:415 malloc/obstack.c:418
+#: posix/getconf.c:1104 elf/ldconfig.c:1101
msgid "memory exhausted"
msgstr ""
@@ -1666,7 +1700,8 @@ msgstr ""
msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
msgstr ""
-#: intl/tst-codeset.c:40 intl/tst-codeset.c:50
+#: intl/tst-codeset.c:40 intl/tst-codeset.c:50 intl/tst-gettext3.c:42
+#: intl/tst-gettext3.c:52
msgid "cheese"
msgstr ""
@@ -1678,7 +1713,7 @@ msgstr ""
msgid "Another string for testing."
msgstr ""
-#: catgets/gencat.c:111 catgets/gencat.c:115 nscd/nscd.c:84
+#: catgets/gencat.c:111 catgets/gencat.c:115 nscd/nscd.c:99
msgid "NAME"
msgstr ""
@@ -1707,103 +1742,102 @@ msgid ""
"[OUTPUT-FILE [INPUT-FILE]...]"
msgstr ""
-#: catgets/gencat.c:282
+#: catgets/gencat.c:283
msgid "*standard input*"
msgstr ""
-#: catgets/gencat.c:417 catgets/gencat.c:494
+#: catgets/gencat.c:418 catgets/gencat.c:495
msgid "illegal set number"
msgstr ""
-#: catgets/gencat.c:444
+#: catgets/gencat.c:445
msgid "duplicate set definition"
msgstr ""
-#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
+#: catgets/gencat.c:447 catgets/gencat.c:624 catgets/gencat.c:678
msgid "this is the first definition"
msgstr ""
-#: catgets/gencat.c:522
+#: catgets/gencat.c:523
#, c-format
msgid "unknown set `%s'"
msgstr ""
-#: catgets/gencat.c:563
+#: catgets/gencat.c:564
msgid "invalid quote character"
msgstr ""
-#: catgets/gencat.c:576
+#: catgets/gencat.c:577
#, c-format
msgid "unknown directive `%s': line ignored"
msgstr ""
-#: catgets/gencat.c:621
+#: catgets/gencat.c:622
msgid "duplicated message number"
msgstr ""
-#: catgets/gencat.c:674
+#: catgets/gencat.c:675
msgid "duplicated message identifier"
msgstr ""
-#: catgets/gencat.c:731
+#: catgets/gencat.c:732
msgid "invalid character: message ignored"
msgstr ""
-#: catgets/gencat.c:774
+#: catgets/gencat.c:775
msgid "invalid line"
msgstr ""
-#: catgets/gencat.c:828
+#: catgets/gencat.c:829
msgid "malformed line ignored"
msgstr ""
-#: catgets/gencat.c:992 catgets/gencat.c:1033
+#: catgets/gencat.c:993 catgets/gencat.c:1034
#, c-format
msgid "cannot open output file `%s'"
msgstr ""
-#: catgets/gencat.c:1217
+#: catgets/gencat.c:1218
msgid "unterminated message"
msgstr ""
-#: catgets/gencat.c:1241
+#: catgets/gencat.c:1242
msgid "while opening old catalog file"
msgstr ""
-#: catgets/gencat.c:1332
+#: catgets/gencat.c:1333
msgid "conversion modules not available"
msgstr ""
-#: catgets/gencat.c:1358
+#: catgets/gencat.c:1359
msgid "cannot determine escape character"
msgstr ""
#: stdlib/../sysdeps/unix/sysv/linux/ia64/makecontext.c:63
+#, c-format
msgid "makecontext: does not know how to handle more than 8 arguments\n"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:12 posix/regcomp.c:133
-#: nis/nis_error.c:29 nis/ypclnt.c:787 nis/ypclnt.c:861
+#: stdio-common/../sysdeps/gnu/errlist.c:20 posix/regcomp.c:160
+#: nis/nis_error.c:29 nis/ypclnt.c:793 nis/ypclnt.c:860
msgid "Success"
msgstr ""
#. TRANS Operation not permitted; only the owner of the file (or other resource)
#. TRANS or processes with special privileges can perform the operation.
-#: stdio-common/../sysdeps/gnu/errlist.c:17
+#: stdio-common/../sysdeps/gnu/errlist.c:25
msgid "Operation not permitted"
msgstr ""
#. TRANS No such file or directory. This is a ``file doesn't exist'' error
#. TRANS for ordinary files that are referenced in contexts where they are
#. TRANS expected to already exist.
-#: stdio-common/../sysdeps/gnu/errlist.c:28
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:32
+#: stdio-common/../sysdeps/gnu/errlist.c:36
msgid "No such file or directory"
msgstr ""
#. TRANS No process matches the specified process ID.
-#: stdio-common/../sysdeps/gnu/errlist.c:37
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:33
+#: stdio-common/../sysdeps/gnu/errlist.c:45
msgid "No such process"
msgstr ""
@@ -1814,13 +1848,12 @@ msgstr ""
#. TRANS You can choose to have functions resume after a signal that is handled,
#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
#. TRANS Primitives}.
-#: stdio-common/../sysdeps/gnu/errlist.c:52
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:34
+#: stdio-common/../sysdeps/gnu/errlist.c:60
msgid "Interrupted system call"
msgstr ""
#. TRANS Input/output error; usually used for physical read or write errors.
-#: stdio-common/../sysdeps/gnu/errlist.c:61
+#: stdio-common/../sysdeps/gnu/errlist.c:69
msgid "Input/output error"
msgstr ""
@@ -1829,8 +1862,7 @@ msgstr ""
#. TRANS This can mean that the device file was installed incorrectly, or that
#. TRANS the physical device is missing or not correctly attached to the
#. TRANS computer.
-#: stdio-common/../sysdeps/gnu/errlist.c:74
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:36
+#: stdio-common/../sysdeps/gnu/errlist.c:82
msgid "No such device or address"
msgstr ""
@@ -1838,29 +1870,27 @@ msgstr ""
#. 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.
-#: stdio-common/../sysdeps/gnu/errlist.c:86
+#: stdio-common/../sysdeps/gnu/errlist.c:94
msgid "Argument list too long"
msgstr ""
#. TRANS Invalid executable file format. This condition is detected by the
#. TRANS @code{exec} functions; see @ref{Executing a File}.
-#: stdio-common/../sysdeps/gnu/errlist.c:96
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:38
+#: stdio-common/../sysdeps/gnu/errlist.c:104
msgid "Exec format error"
msgstr ""
#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
#. TRANS closed or reading from a descriptor open only for writing (or vice
#. TRANS versa).
-#: stdio-common/../sysdeps/gnu/errlist.c:107
+#: stdio-common/../sysdeps/gnu/errlist.c:115
msgid "Bad file descriptor"
msgstr ""
#. TRANS There are no child processes. This error happens on operations that are
#. TRANS supposed to manipulate child processes, when there aren't any processes
#. TRANS to manipulate.
-#: stdio-common/../sysdeps/gnu/errlist.c:118
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:40
+#: stdio-common/../sysdeps/gnu/errlist.c:126
msgid "No child processes"
msgstr ""
@@ -1868,83 +1898,75 @@ msgstr ""
#. TRANS deadlock situation. The system does not guarantee that it will notice
#. TRANS all such situations. This error means you got lucky and the system
#. TRANS noticed; it might just hang. @xref{File Locks}, for an example.
-#: stdio-common/../sysdeps/gnu/errlist.c:130
+#: stdio-common/../sysdeps/gnu/errlist.c:138
msgid "Resource deadlock avoided"
msgstr ""
#. TRANS No memory available. The system cannot allocate more virtual memory
#. TRANS because its capacity is full.
-#: stdio-common/../sysdeps/gnu/errlist.c:140
+#: stdio-common/../sysdeps/gnu/errlist.c:148
msgid "Cannot allocate memory"
msgstr ""
#. TRANS Permission denied; the file permissions do not allow the attempted operation.
-#: stdio-common/../sysdeps/gnu/errlist.c:149
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:43
-#: nis/nis_error.c:39 nis/ypclnt.c:817
+#: stdio-common/../sysdeps/gnu/errlist.c:157 nis/nis_error.c:39
+#: nis/ypclnt.c:823
msgid "Permission denied"
msgstr ""
#. TRANS Bad address; an invalid pointer was detected.
#. TRANS In the GNU system, this error never happens; you get a signal instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:159
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:44
+#: stdio-common/../sysdeps/gnu/errlist.c:167
msgid "Bad address"
msgstr ""
#. TRANS A file that isn't a block special file was given in a situation that
#. TRANS requires one. For example, trying to mount an ordinary file as a file
#. TRANS system in Unix gives this error.
-#: stdio-common/../sysdeps/gnu/errlist.c:170
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:45
+#: stdio-common/../sysdeps/gnu/errlist.c:178
msgid "Block device required"
msgstr ""
#. TRANS Resource busy; a system resource that can't be shared is already in use.
#. TRANS For example, if you try to delete a file that is the root of a currently
#. TRANS mounted filesystem, you get this error.
-#: stdio-common/../sysdeps/gnu/errlist.c:181
+#: stdio-common/../sysdeps/gnu/errlist.c:189
msgid "Device or resource busy"
msgstr ""
#. TRANS File exists; an existing file was specified in a context where it only
#. TRANS makes sense to specify a new file.
-#: stdio-common/../sysdeps/gnu/errlist.c:191
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:47
+#: stdio-common/../sysdeps/gnu/errlist.c:199
msgid "File exists"
msgstr ""
#. TRANS An attempt to make an improper link across file systems was detected.
#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
-#: stdio-common/../sysdeps/gnu/errlist.c:202
+#: stdio-common/../sysdeps/gnu/errlist.c:210
msgid "Invalid cross-device link"
msgstr ""
#. TRANS The wrong type of device was given to a function that expects a
#. TRANS particular sort of device.
-#: stdio-common/../sysdeps/gnu/errlist.c:212
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:49
+#: stdio-common/../sysdeps/gnu/errlist.c:220
msgid "No such device"
msgstr ""
#. TRANS A file that isn't a directory was specified when a directory is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:221
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:50
+#: stdio-common/../sysdeps/gnu/errlist.c:229
msgid "Not a directory"
msgstr ""
#. TRANS File is a directory; you cannot open a directory for writing,
#. TRANS or create or remove hard links to it.
-#: stdio-common/../sysdeps/gnu/errlist.c:231
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:51
+#: stdio-common/../sysdeps/gnu/errlist.c:239
msgid "Is a directory"
msgstr ""
#. TRANS Invalid argument. This is used to indicate various kinds of problems
#. TRANS with passing the wrong argument to a library function.
-#: stdio-common/../sysdeps/gnu/errlist.c:241
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:52
+#: stdio-common/../sysdeps/gnu/errlist.c:249
msgid "Invalid argument"
msgstr ""
@@ -1955,22 +1977,20 @@ msgstr ""
#. TRANS limit that can usually be increased. If you get this error, you might
#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
#. TRANS @pxref{Limits on Resources}.
-#: stdio-common/../sysdeps/gnu/errlist.c:256
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:54
+#: stdio-common/../sysdeps/gnu/errlist.c:264
msgid "Too many open files"
msgstr ""
#. 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.
-#: stdio-common/../sysdeps/gnu/errlist.c:267
+#: stdio-common/../sysdeps/gnu/errlist.c:275
msgid "Too many open files in system"
msgstr ""
#. TRANS Inappropriate I/O control operation, such as trying to set terminal
#. TRANS modes on an ordinary file.
-#: stdio-common/../sysdeps/gnu/errlist.c:277
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:55
+#: stdio-common/../sysdeps/gnu/errlist.c:285
msgid "Inappropriate ioctl for device"
msgstr ""
@@ -1979,53 +1999,47 @@ msgstr ""
#. 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.
-#: stdio-common/../sysdeps/gnu/errlist.c:290
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:56
+#: stdio-common/../sysdeps/gnu/errlist.c:298
msgid "Text file busy"
msgstr ""
#. TRANS File too big; the size of a file would be larger than allowed by the system.
-#: stdio-common/../sysdeps/gnu/errlist.c:299
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:57
+#: stdio-common/../sysdeps/gnu/errlist.c:307
msgid "File too large"
msgstr ""
#. TRANS No space left on device; write operation on a file failed because the
#. TRANS disk is full.
-#: stdio-common/../sysdeps/gnu/errlist.c:309
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:58
+#: stdio-common/../sysdeps/gnu/errlist.c:317
msgid "No space left on device"
msgstr ""
#. TRANS Invalid seek operation (such as on a pipe).
-#: stdio-common/../sysdeps/gnu/errlist.c:318
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:59
+#: stdio-common/../sysdeps/gnu/errlist.c:326
msgid "Illegal seek"
msgstr ""
#. TRANS An attempt was made to modify something on a read-only file system.
-#: stdio-common/../sysdeps/gnu/errlist.c:327
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:60
+#: stdio-common/../sysdeps/gnu/errlist.c:335
msgid "Read-only file system"
msgstr ""
#. TRANS Too many links; the link count of a single file would become too large.
#. TRANS @code{rename} can cause this error if the file being renamed already has
#. TRANS as many links as it can take (@pxref{Renaming Files}).
-#: stdio-common/../sysdeps/gnu/errlist.c:338
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:61
+#: stdio-common/../sysdeps/gnu/errlist.c:346
msgid "Too many links"
msgstr ""
#. TRANS Domain error; used by mathematical functions when an argument value does
#. TRANS not fall into the domain over which the function is defined.
-#: stdio-common/../sysdeps/gnu/errlist.c:361
+#: stdio-common/../sysdeps/gnu/errlist.c:369
msgid "Numerical argument out of domain"
msgstr ""
#. TRANS Range error; used by mathematical functions when the result value is
#. TRANS not representable because of overflow or underflow.
-#: stdio-common/../sysdeps/gnu/errlist.c:371
+#: stdio-common/../sysdeps/gnu/errlist.c:379
msgid "Numerical result out of range"
msgstr ""
@@ -2058,8 +2072,7 @@ msgstr ""
#. TRANS so usually an interactive program should report the error to the user
#. TRANS and return to its command loop.
#. TRANS @end itemize
-#: stdio-common/../sysdeps/gnu/errlist.c:408
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:41
+#: stdio-common/../sysdeps/gnu/errlist.c:416
msgid "Resource temporarily unavailable"
msgstr ""
@@ -2068,7 +2081,7 @@ msgstr ""
#. TRANS
#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
#. TRANS separate error code.
-#: stdio-common/../sysdeps/gnu/errlist.c:421
+#: stdio-common/../sysdeps/gnu/errlist.c:429
msgid "Operation would block"
msgstr ""
@@ -2080,54 +2093,47 @@ msgstr ""
#. TRANS the object before the call completes return @code{EALREADY}. You can
#. TRANS use the @code{select} function to find out when the pending operation
#. TRANS has completed; @pxref{Waiting for I/O}.
-#: stdio-common/../sysdeps/gnu/errlist.c:437
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:180
+#: stdio-common/../sysdeps/gnu/errlist.c:445
msgid "Operation now in progress"
msgstr ""
#. TRANS An operation is already in progress on an object that has non-blocking
#. TRANS mode selected.
-#: stdio-common/../sysdeps/gnu/errlist.c:447
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:179
+#: stdio-common/../sysdeps/gnu/errlist.c:455
msgid "Operation already in progress"
msgstr ""
#. TRANS A file that isn't a socket was specified when a socket is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:456
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:125
+#: stdio-common/../sysdeps/gnu/errlist.c:464
msgid "Socket operation on non-socket"
msgstr ""
#. TRANS The size of a message sent on a socket was larger than the supported
#. TRANS maximum size.
-#: stdio-common/../sysdeps/gnu/errlist.c:466
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:127
+#: stdio-common/../sysdeps/gnu/errlist.c:474
msgid "Message too long"
msgstr ""
#. TRANS The socket type does not support the requested communications protocol.
-#: stdio-common/../sysdeps/gnu/errlist.c:475
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:128
+#: stdio-common/../sysdeps/gnu/errlist.c:483
msgid "Protocol wrong type for socket"
msgstr ""
#. TRANS You specified a socket option that doesn't make sense for the
#. TRANS particular protocol being used by the socket. @xref{Socket Options}.
-#: stdio-common/../sysdeps/gnu/errlist.c:485
+#: stdio-common/../sysdeps/gnu/errlist.c:493
msgid "Protocol not available"
msgstr ""
#. TRANS The socket domain does not support the requested communications protocol
#. TRANS (perhaps because the requested protocol is completely invalid).
#. TRANS @xref{Creating a Socket}.
-#: stdio-common/../sysdeps/gnu/errlist.c:496
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:150
+#: stdio-common/../sysdeps/gnu/errlist.c:504
msgid "Protocol not supported"
msgstr ""
#. TRANS The socket type is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:505
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:151
+#: stdio-common/../sysdeps/gnu/errlist.c:513
msgid "Socket type not supported"
msgstr ""
@@ -2137,81 +2143,71 @@ msgstr ""
#. 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.
-#: stdio-common/../sysdeps/gnu/errlist.c:519
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:78
+#: stdio-common/../sysdeps/gnu/errlist.c:527
msgid "Operation not supported"
msgstr ""
#. TRANS The socket communications protocol family you requested is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:528
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:153
+#: stdio-common/../sysdeps/gnu/errlist.c:536
msgid "Protocol family not supported"
msgstr ""
#. TRANS The address family specified for a socket is not supported; it is
#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}.
-#: stdio-common/../sysdeps/gnu/errlist.c:538
+#: stdio-common/../sysdeps/gnu/errlist.c:546
msgid "Address family not supported by protocol"
msgstr ""
#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
-#: stdio-common/../sysdeps/gnu/errlist.c:547
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:155
+#: stdio-common/../sysdeps/gnu/errlist.c:555
msgid "Address already in use"
msgstr ""
#. TRANS The requested socket address is not available; for example, you tried
#. TRANS to give a socket a name that doesn't match the local host name.
#. TRANS @xref{Socket Addresses}.
-#: stdio-common/../sysdeps/gnu/errlist.c:558
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:156
+#: stdio-common/../sysdeps/gnu/errlist.c:566
msgid "Cannot assign requested address"
msgstr ""
#. TRANS A socket operation failed because the network was down.
-#: stdio-common/../sysdeps/gnu/errlist.c:567
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:157
+#: stdio-common/../sysdeps/gnu/errlist.c:575
msgid "Network is down"
msgstr ""
#. TRANS A socket operation failed because the subnet containing the remote host
#. TRANS was unreachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:577
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:158
+#: stdio-common/../sysdeps/gnu/errlist.c:585
msgid "Network is unreachable"
msgstr ""
#. TRANS A network connection was reset because the remote host crashed.
-#: stdio-common/../sysdeps/gnu/errlist.c:586
+#: stdio-common/../sysdeps/gnu/errlist.c:594
msgid "Network dropped connection on reset"
msgstr ""
#. TRANS A network connection was aborted locally.
-#: stdio-common/../sysdeps/gnu/errlist.c:595
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:160
+#: stdio-common/../sysdeps/gnu/errlist.c:603
msgid "Software caused connection abort"
msgstr ""
#. TRANS A network connection was closed for reasons outside the control of the
#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
#. TRANS protocol violation.
-#: stdio-common/../sysdeps/gnu/errlist.c:606
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:161
+#: stdio-common/../sysdeps/gnu/errlist.c:614
msgid "Connection reset by peer"
msgstr ""
#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this
#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
#. TRANS other from network operations.
-#: stdio-common/../sysdeps/gnu/errlist.c:617
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:162
+#: stdio-common/../sysdeps/gnu/errlist.c:625
msgid "No buffer space available"
msgstr ""
#. TRANS You tried to connect a socket that is already connected.
#. TRANS @xref{Connecting}.
-#: stdio-common/../sysdeps/gnu/errlist.c:627
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:163
+#: stdio-common/../sysdeps/gnu/errlist.c:635
msgid "Transport endpoint is already connected"
msgstr ""
@@ -2219,93 +2215,83 @@ msgstr ""
#. TRANS try to transmit data over a socket, without first specifying a
#. TRANS destination for the data. For a connectionless socket (for datagram
#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:639
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:164
+#: stdio-common/../sysdeps/gnu/errlist.c:647
msgid "Transport endpoint is not connected"
msgstr ""
#. TRANS No default destination address was set for the socket. You get this
#. TRANS error when you try to transmit data over a connectionless socket,
#. TRANS without first specifying a destination for the data with @code{connect}.
-#: stdio-common/../sysdeps/gnu/errlist.c:650
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:126
+#: stdio-common/../sysdeps/gnu/errlist.c:658
msgid "Destination address required"
msgstr ""
#. TRANS The socket has already been shut down.
-#: stdio-common/../sysdeps/gnu/errlist.c:659
+#: stdio-common/../sysdeps/gnu/errlist.c:667
msgid "Cannot send after transport endpoint shutdown"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:668
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:174
+#: stdio-common/../sysdeps/gnu/errlist.c:676
msgid "Too many references: cannot splice"
msgstr ""
#. TRANS A socket operation with a specified timeout received no response during
#. TRANS the timeout period.
-#: stdio-common/../sysdeps/gnu/errlist.c:678
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:175
+#: stdio-common/../sysdeps/gnu/errlist.c:686
msgid "Connection timed out"
msgstr ""
#. TRANS A remote host refused to allow the network connection (typically because
#. TRANS it is not running the requested service).
-#: stdio-common/../sysdeps/gnu/errlist.c:688
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:176
+#: stdio-common/../sysdeps/gnu/errlist.c:696
msgid "Connection refused"
msgstr ""
#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
#. TRANS This often indicates a cycle of symbolic links.
-#: stdio-common/../sysdeps/gnu/errlist.c:698
+#: stdio-common/../sysdeps/gnu/errlist.c:706
msgid "Too many levels of symbolic links"
msgstr ""
#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
#. TRANS Files}) or host name too long (in @code{gethostname} or
#. TRANS @code{sethostname}; @pxref{Host Identification}).
-#: stdio-common/../sysdeps/gnu/errlist.c:709
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:108
+#: stdio-common/../sysdeps/gnu/errlist.c:717
msgid "File name too long"
msgstr ""
#. TRANS The remote host for a requested network connection is down.
-#: stdio-common/../sysdeps/gnu/errlist.c:718
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:177
+#: stdio-common/../sysdeps/gnu/errlist.c:726
msgid "Host is down"
msgstr ""
#. TRANS The remote host for a requested network connection is not reachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:727
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:178
+#: stdio-common/../sysdeps/gnu/errlist.c:735
msgid "No route to host"
msgstr ""
#. TRANS Directory not empty, where an empty directory was expected. Typically,
#. TRANS this error occurs when you are trying to delete a directory.
-#: stdio-common/../sysdeps/gnu/errlist.c:737
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:123
+#: stdio-common/../sysdeps/gnu/errlist.c:745
msgid "Directory not empty"
msgstr ""
#. TRANS This means that the per-user limit on new process would be exceeded by
#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on
#. TRANS the @code{RLIMIT_NPROC} limit.
-#: stdio-common/../sysdeps/gnu/errlist.c:748
+#: stdio-common/../sysdeps/gnu/errlist.c:756
msgid "Too many processes"
msgstr ""
#. TRANS The file quota system is confused because there are too many users.
#. TRANS @c This can probably happen in a GNU system when using NFS.
-#: stdio-common/../sysdeps/gnu/errlist.c:758
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:124
+#: stdio-common/../sysdeps/gnu/errlist.c:766
msgid "Too many users"
msgstr ""
#. TRANS The user's disk quota was exceeded.
-#: stdio-common/../sysdeps/gnu/errlist.c:767
+#: stdio-common/../sysdeps/gnu/errlist.c:775
msgid "Disk quota exceeded"
msgstr ""
@@ -2313,8 +2299,7 @@ msgstr ""
#. TRANS system which is due to file system rearrangements on the server host.
#. TRANS Repairing this condition usually requires unmounting and remounting
#. TRANS the NFS file system on the local host.
-#: stdio-common/../sysdeps/gnu/errlist.c:779
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
+#: stdio-common/../sysdeps/gnu/errlist.c:787
msgid "Stale NFS file handle"
msgstr ""
@@ -2322,33 +2307,32 @@ msgstr ""
#. 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.)
-#: stdio-common/../sysdeps/gnu/errlist.c:791
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:96
+#: stdio-common/../sysdeps/gnu/errlist.c:799
msgid "Object is remote"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:800
+#: stdio-common/../sysdeps/gnu/errlist.c:808
msgid "RPC struct is bad"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:809
+#: stdio-common/../sysdeps/gnu/errlist.c:817
msgid "RPC version wrong"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:818
+#: stdio-common/../sysdeps/gnu/errlist.c:826
msgid "RPC program not available"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:827
+#: stdio-common/../sysdeps/gnu/errlist.c:835
msgid "RPC program version wrong"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:836
+#: stdio-common/../sysdeps/gnu/errlist.c:844
msgid "RPC bad procedure for program"
msgstr ""
@@ -2356,7 +2340,7 @@ msgstr ""
#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but
#. TRANS it can result from an operation to an NFS server running another
#. TRANS operating system.
-#: stdio-common/../sysdeps/gnu/errlist.c:848
+#: stdio-common/../sysdeps/gnu/errlist.c:856
msgid "No locks available"
msgstr ""
@@ -2365,17 +2349,17 @@ msgstr ""
#. TRANS
#. TRANS On some systems @code{chmod} returns this error if you try to set the
#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
-#: stdio-common/../sysdeps/gnu/errlist.c:861
+#: stdio-common/../sysdeps/gnu/errlist.c:869
msgid "Inappropriate file type or format"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:870
+#: stdio-common/../sysdeps/gnu/errlist.c:878
msgid "Authentication error"
msgstr ""
#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:879
+#: stdio-common/../sysdeps/gnu/errlist.c:887
msgid "Need authenticator"
msgstr ""
@@ -2384,7 +2368,7 @@ msgstr ""
#. TRANS operating system. When you get this error, you can be sure that this
#. TRANS particular function will always fail with @code{ENOSYS} unless you
#. TRANS install a new version of the C library or the operating system.
-#: stdio-common/../sysdeps/gnu/errlist.c:892
+#: stdio-common/../sysdeps/gnu/errlist.c:900
msgid "Function not implemented"
msgstr ""
@@ -2400,13 +2384,13 @@ msgstr ""
#. TRANS
#. TRANS If the entire function is not available at all in the implementation,
#. TRANS it returns @code{ENOSYS} instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:912
+#: stdio-common/../sysdeps/gnu/errlist.c:920
msgid "Not supported"
msgstr ""
#. TRANS While decoding a multibyte character the function came along an invalid
#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
-#: stdio-common/../sysdeps/gnu/errlist.c:922
+#: stdio-common/../sysdeps/gnu/errlist.c:930
msgid "Invalid or incomplete multibyte or wide character"
msgstr ""
@@ -2416,88 +2400,80 @@ msgstr ""
#. TRANS error because functions such as @code{read} and @code{write} translate
#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control},
#. TRANS for information on process groups and these signals.
-#: stdio-common/../sysdeps/gnu/errlist.c:936
+#: stdio-common/../sysdeps/gnu/errlist.c:944
msgid "Inappropriate operation for background process"
msgstr ""
#. TRANS In the GNU system, 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.
-#: stdio-common/../sysdeps/gnu/errlist.c:947
+#: stdio-common/../sysdeps/gnu/errlist.c:955
msgid "Translator died"
msgstr ""
#. TRANS The experienced user will know what is wrong.
#. TRANS @c This error code is a joke. Its perror text is part of the joke.
#. TRANS @c Don't change it.
-#: stdio-common/../sysdeps/gnu/errlist.c:958
+#: stdio-common/../sysdeps/gnu/errlist.c:966
msgid "?"
msgstr ""
#. TRANS You did @strong{what}?
-#: stdio-common/../sysdeps/gnu/errlist.c:967
+#: stdio-common/../sysdeps/gnu/errlist.c:975
msgid "You really blew it this time"
msgstr ""
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: stdio-common/../sysdeps/gnu/errlist.c:976
+#: stdio-common/../sysdeps/gnu/errlist.c:984
msgid "Computer bought the farm"
msgstr ""
#. TRANS This error code has no purpose.
-#: stdio-common/../sysdeps/gnu/errlist.c:985
+#: stdio-common/../sysdeps/gnu/errlist.c:993
msgid "Gratuitous error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:993
+#: stdio-common/../sysdeps/gnu/errlist.c:1001
msgid "Bad message"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1001
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:66
+#: stdio-common/../sysdeps/gnu/errlist.c:1009
msgid "Identifier removed"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1009
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:104
+#: stdio-common/../sysdeps/gnu/errlist.c:1017
msgid "Multihop attempted"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1017
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:91
+#: stdio-common/../sysdeps/gnu/errlist.c:1025
msgid "No data available"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1025
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:97
+#: stdio-common/../sysdeps/gnu/errlist.c:1033
msgid "Link has been severed"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1033
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:65
+#: stdio-common/../sysdeps/gnu/errlist.c:1041
msgid "No message of desired type"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1041
+#: stdio-common/../sysdeps/gnu/errlist.c:1049
msgid "Out of streams resources"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1049
+#: stdio-common/../sysdeps/gnu/errlist.c:1057
msgid "Device not a stream"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1057
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:109
+#: stdio-common/../sysdeps/gnu/errlist.c:1065
msgid "Value too large for defined data type"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1065
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:101
+#: stdio-common/../sysdeps/gnu/errlist.c:1073
msgid "Protocol error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1073
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:92
+#: stdio-common/../sysdeps/gnu/errlist.c:1081
msgid "Timer expired"
msgstr ""
@@ -2505,187 +2481,163 @@ msgstr ""
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: stdio-common/../sysdeps/gnu/errlist.c:1085
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:77
+#: stdio-common/../sysdeps/gnu/errlist.c:1093
msgid "Operation canceled"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1093
+#: stdio-common/../sysdeps/gnu/errlist.c:1101
msgid "Interrupted system call should be restarted"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1101
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:67
+#: stdio-common/../sysdeps/gnu/errlist.c:1109
msgid "Channel number out of range"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1109
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:68
+#: stdio-common/../sysdeps/gnu/errlist.c:1117
msgid "Level 2 not synchronized"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1117
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:69
+#: stdio-common/../sysdeps/gnu/errlist.c:1125
msgid "Level 3 halted"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1125
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:70
+#: stdio-common/../sysdeps/gnu/errlist.c:1133
msgid "Level 3 reset"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1133
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:71
+#: stdio-common/../sysdeps/gnu/errlist.c:1141
msgid "Link number out of range"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1141
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:72
+#: stdio-common/../sysdeps/gnu/errlist.c:1149
msgid "Protocol driver not attached"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1149
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:73
+#: stdio-common/../sysdeps/gnu/errlist.c:1157
msgid "No CSI structure available"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1157
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:74
+#: stdio-common/../sysdeps/gnu/errlist.c:1165
msgid "Level 2 halted"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1165
+#: stdio-common/../sysdeps/gnu/errlist.c:1173
msgid "Invalid exchange"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1173
+#: stdio-common/../sysdeps/gnu/errlist.c:1181
msgid "Invalid request descriptor"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1181
+#: stdio-common/../sysdeps/gnu/errlist.c:1189
msgid "Exchange full"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1189
+#: stdio-common/../sysdeps/gnu/errlist.c:1197
msgid "No anode"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1197
+#: stdio-common/../sysdeps/gnu/errlist.c:1205
msgid "Invalid request code"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1205
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:85
+#: stdio-common/../sysdeps/gnu/errlist.c:1213
msgid "Invalid slot"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1213
+#: stdio-common/../sysdeps/gnu/errlist.c:1221
msgid "File locking deadlock error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1221
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:87
+#: stdio-common/../sysdeps/gnu/errlist.c:1229
msgid "Bad font file format"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1229
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:94
+#: stdio-common/../sysdeps/gnu/errlist.c:1237
msgid "Machine is not on the network"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1237
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:95
+#: stdio-common/../sysdeps/gnu/errlist.c:1245
msgid "Package not installed"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1245
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:98
+#: stdio-common/../sysdeps/gnu/errlist.c:1253
msgid "Advertise error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1253
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:99
+#: stdio-common/../sysdeps/gnu/errlist.c:1261
msgid "Srmount error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1261
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:100
+#: stdio-common/../sysdeps/gnu/errlist.c:1269
msgid "Communication error on send"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1269
+#: stdio-common/../sysdeps/gnu/errlist.c:1277
msgid "RFS specific error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1277
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:110
+#: stdio-common/../sysdeps/gnu/errlist.c:1285
msgid "Name not unique on network"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1285
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:111
+#: stdio-common/../sysdeps/gnu/errlist.c:1293
msgid "File descriptor in bad state"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1293
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:112
+#: stdio-common/../sysdeps/gnu/errlist.c:1301
msgid "Remote address changed"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1301
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:113
+#: stdio-common/../sysdeps/gnu/errlist.c:1309
msgid "Can not access a needed shared library"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1309
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:114
+#: stdio-common/../sysdeps/gnu/errlist.c:1317
msgid "Accessing a corrupted shared library"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1317
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:115
+#: stdio-common/../sysdeps/gnu/errlist.c:1325
msgid ".lib section in a.out corrupted"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1325
+#: stdio-common/../sysdeps/gnu/errlist.c:1333
msgid "Attempting to link in too many shared libraries"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1333
+#: stdio-common/../sysdeps/gnu/errlist.c:1341
msgid "Cannot exec a shared library directly"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1341
+#: stdio-common/../sysdeps/gnu/errlist.c:1349
msgid "Streams pipe error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1349
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:165
+#: stdio-common/../sysdeps/gnu/errlist.c:1357
msgid "Structure needs cleaning"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1357
+#: stdio-common/../sysdeps/gnu/errlist.c:1365
msgid "Not a XENIX named type file"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1365
+#: stdio-common/../sysdeps/gnu/errlist.c:1373
msgid "No XENIX semaphores available"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1373
+#: stdio-common/../sysdeps/gnu/errlist.c:1381
msgid "Is a named type file"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1381
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:170
+#: stdio-common/../sysdeps/gnu/errlist.c:1389
msgid "Remote I/O error"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1389
+#: stdio-common/../sysdeps/gnu/errlist.c:1397
msgid "No medium found"
msgstr ""
-#: stdio-common/../sysdeps/gnu/errlist.c:1397
+#: stdio-common/../sysdeps/gnu/errlist.c:1405
msgid "Wrong medium type"
msgstr ""
@@ -2697,337 +2649,86 @@ msgstr ""
msgid "IOT trap"
msgstr ""
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30
-msgid "Error 0"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31
-#: nis/nis_error.c:40
-msgid "Not owner"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35
-msgid "I/O error"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37
-msgid "Arg list too long"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39
-msgid "Bad file number"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42
-msgid "Not enough space"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46
-msgid "Device busy"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48
-msgid "Cross-device link"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53
-msgid "File table overflow"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63
-msgid "Argument out of domain"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64
-msgid "Result too large"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75
-msgid "Deadlock situation detected/avoided"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76
-msgid "No record locks available"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79
-msgid "Disc quota exceeded"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80
-msgid "Bad exchange descriptor"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81
-msgid "Bad request descriptor"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82
-msgid "Message tables full"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83
-msgid "Anode table overflow"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84
-msgid "Bad request code"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86
-msgid "File locking deadlock"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88
-msgid "Error 58"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89
-msgid "Error 59"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90
-msgid "Not a stream device"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93
-msgid "Out of stream resources"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102
-msgid "Error 72"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103
-msgid "Error 73"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105
-msgid "Error 75"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106
-msgid "Error 76"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107
-msgid "Not a data message"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116
-msgid "Attempting to link in more shared libraries than system limit"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117
-msgid "Can not exec a shared library directly"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118
-msgid "Illegal byte sequence"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119
-msgid "Operation not applicable"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120
-msgid ""
-"Number of symbolic links encountered during path name traversal exceeds "
-"MAXSYMLINKS"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121
-msgid "Error 91"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122
-msgid "Error 92"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129
-msgid "Option not supported by protocol"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130
-msgid "Error 100"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131
-msgid "Error 101"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132
-msgid "Error 102"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133
-msgid "Error 103"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134
-msgid "Error 104"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135
-msgid "Error 105"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136
-msgid "Error 106"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137
-msgid "Error 107"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138
-msgid "Error 108"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139
-msgid "Error 109"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140
-msgid "Error 110"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141
-msgid "Error 111"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142
-msgid "Error 112"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143
-msgid "Error 113"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144
-msgid "Error 114"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145
-msgid "Error 115"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146
-msgid "Error 116"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147
-msgid "Error 117"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148
-msgid "Error 118"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149
-msgid "Error 119"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152
-msgid "Operation not supported on transport endpoint"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154
-msgid "Address family not supported by protocol family"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159
-msgid "Network dropped connection because of reset"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166
-msgid "Error 136"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167
-msgid "Not a name file"
-msgstr ""
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168
-msgid "Not available"
+#: stdio-common/psignal.c:60
+#, c-format
+msgid "%s%sUnknown signal %d\n"
msgstr ""
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169
-msgid "Is a name file"
+#: stdio-common/psignal.c:63 stdio-common/psignal.c:65
+msgid "Unknown signal"
msgstr ""
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171
-msgid "Reserved for future use"
+#: dlfcn/dlinfo.c:63
+msgid "RTLD_SELF used in code not dynamically loaded"
msgstr ""
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172
-msgid "Error 142"
+#: dlfcn/dlinfo.c:72
+msgid "unsupported dlinfo request"
msgstr ""
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173
-msgid "Cannot send after socket shutdown"
+#: dlfcn/dlmopen.c:63
+msgid "invalid namespace"
msgstr ""
-#: stdio-common/psignal.c:63
-#, c-format
-msgid "%s%sUnknown signal %d\n"
+#: dlfcn/dlopen.c:64
+msgid "invalid mode parameter"
msgstr ""
-#: malloc/mcheck.c:346
+#: malloc/mcheck.c:324
msgid "memory is consistent, library is buggy\n"
msgstr ""
-#: malloc/mcheck.c:349
+#: malloc/mcheck.c:327
msgid "memory clobbered before allocated block\n"
msgstr ""
-#: malloc/mcheck.c:352
+#: malloc/mcheck.c:330
msgid "memory clobbered past end of allocated block\n"
msgstr ""
-#: malloc/mcheck.c:355
+#: malloc/mcheck.c:333
msgid "block freed twice\n"
msgstr ""
-#: malloc/mcheck.c:358
+#: malloc/mcheck.c:336
msgid "bogus mcheck_status, library is buggy\n"
msgstr ""
-#: malloc/memusagestat.c:53
+#: malloc/memusagestat.c:55
msgid "Name output file"
msgstr ""
-#: malloc/memusagestat.c:54
+#: malloc/memusagestat.c:56
msgid "Title string used in output graphic"
msgstr ""
-#: malloc/memusagestat.c:55
+#: malloc/memusagestat.c:57
msgid ""
"Generate output linear to time (default is linear to number of function "
"calls)"
msgstr ""
-#: malloc/memusagestat.c:57
+#: malloc/memusagestat.c:59
msgid "Also draw graph for total memory consumption"
msgstr ""
-#: malloc/memusagestat.c:58
+#: malloc/memusagestat.c:60
msgid "make output graphic VALUE pixel wide"
msgstr ""
-#: malloc/memusagestat.c:59
+#: malloc/memusagestat.c:61
msgid "make output graphic VALUE pixel high"
msgstr ""
-#: malloc/memusagestat.c:64
+#: malloc/memusagestat.c:66
msgid "Generate graphic from memory profiling data"
msgstr ""
-#: malloc/memusagestat.c:67
+#: malloc/memusagestat.c:69
msgid "DATAFILE [OUTFILE]"
msgstr ""
-#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:57
+#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:58
msgid "Unknown error"
msgstr ""
@@ -3041,344 +2742,378 @@ msgstr ""
msgid "Unknown signal %d"
msgstr ""
-#: timezone/zdump.c:175
+#: timezone/zdump.c:240
#, c-format
-msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
+msgid ""
+"%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
msgstr ""
-#: timezone/zdump.c:268
+#: timezone/zdump.c:257
+#, c-format
+msgid "%s: wild -c argument %s\n"
+msgstr ""
+
+#: timezone/zdump.c:347
msgid "Error writing standard output"
msgstr ""
-#: timezone/zic.c:365
+#: timezone/zdump.c:370
+#, c-format
+msgid ""
+"%s: use of -v on system with floating time_t other than float or double\n"
+msgstr ""
+
+#: timezone/zic.c:367
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr ""
-#: timezone/zic.c:390 misc/error.c:127 misc/error.c:155
+#: timezone/zic.c:392 misc/error.c:129 misc/error.c:157
msgid "Unknown system error"
msgstr ""
-#: timezone/zic.c:424
+#: timezone/zic.c:426
#, c-format
msgid "\"%s\", line %d: %s"
msgstr ""
-#: timezone/zic.c:427
+#: timezone/zic.c:429
#, c-format
msgid " (rule from \"%s\", line %d)"
msgstr ""
-#: timezone/zic.c:439
+#: timezone/zic.c:441
msgid "warning: "
msgstr ""
-#: timezone/zic.c:449
+#: timezone/zic.c:451
#, c-format
msgid ""
-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+"%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p "
+"posixrules ] \\\n"
"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:500
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr ""
-#: timezone/zic.c:501
+#: timezone/zic.c:510
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr ""
-#: timezone/zic.c:511
+#: timezone/zic.c:520
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr ""
-#: timezone/zic.c:521
+#: timezone/zic.c:530
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr ""
-#: timezone/zic.c:531
+#: timezone/zic.c:540
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr ""
-#: timezone/zic.c:638
-#, c-format
-msgid "%s: Can't unlink %s: %s\n"
+#: timezone/zic.c:589
+msgid "link to link"
msgstr ""
-#: timezone/zic.c:645
+#: timezone/zic.c:654
msgid "hard link failed, symbolic link used"
msgstr ""
-#: timezone/zic.c:653
+#: timezone/zic.c:662
#, c-format
msgid "%s: Can't link from %s to %s: %s\n"
msgstr ""
-#: timezone/zic.c:751 timezone/zic.c:753
+#: timezone/zic.c:771 timezone/zic.c:773
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:794
+#: timezone/zic.c:814
msgid "unruly zone"
msgstr ""
-#: timezone/zic.c:801
+#: timezone/zic.c:821
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:822
+#: timezone/zic.c:842
msgid "standard input"
msgstr ""
-#: timezone/zic.c:827
+#: timezone/zic.c:847
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr ""
-#: timezone/zic.c:838
+#: timezone/zic.c:858
msgid "line too long"
msgstr ""
-#: timezone/zic.c:858
+#: timezone/zic.c:878
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:874
+#: timezone/zic.c:894
#, c-format
msgid "%s: Leap line in non leap seconds file %s\n"
msgstr ""
-#: timezone/zic.c:881 timezone/zic.c:1295 timezone/zic.c:1320
+#: timezone/zic.c:901 timezone/zic.c:1322 timezone/zic.c:1347
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:889
+#: timezone/zic.c:909
#, c-format
msgid "%s: Error reading %s\n"
msgstr ""
-#: timezone/zic.c:896
+#: timezone/zic.c:916
#, c-format
msgid "%s: Error closing %s: %s\n"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:921
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:957
+#: timezone/zic.c:965
+msgid "24:00 not handled by pre-1998 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:979
msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:961
+#: timezone/zic.c:983
msgid "nameless rule"
msgstr ""
-#: timezone/zic.c:966
+#: timezone/zic.c:988
msgid "invalid saved time"
msgstr ""
-#: timezone/zic.c:985
+#: timezone/zic.c:1007
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:991
+#: timezone/zic.c:1013
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:999
+#: timezone/zic.c:1021
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1011
+#: timezone/zic.c:1033
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %d)"
msgstr ""
-#: timezone/zic.c:1027
+#: timezone/zic.c:1049
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1067
+#: timezone/zic.c:1089
msgid "invalid UTC offset"
msgstr ""
-#: timezone/zic.c:1070
+#: timezone/zic.c:1092
msgid "invalid abbreviation format"
msgstr ""
-#: timezone/zic.c:1096
+#: timezone/zic.c:1119
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1123
+#: timezone/zic.c:1147
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1132
+#: timezone/zic.c:1156
msgid "invalid leaping year"
msgstr ""
-#: timezone/zic.c:1147 timezone/zic.c:1250
+#: timezone/zic.c:1171 timezone/zic.c:1277
msgid "invalid month name"
msgstr ""
-#: timezone/zic.c:1160 timezone/zic.c:1372 timezone/zic.c:1386
+#: timezone/zic.c:1184 timezone/zic.c:1399 timezone/zic.c:1413
msgid "invalid day of month"
msgstr ""
-#: timezone/zic.c:1165
+#: timezone/zic.c:1189
msgid "time before zero"
msgstr ""
-#: timezone/zic.c:1173 timezone/zic.c:2049 timezone/zic.c:2068
-msgid "time overflow"
+#: timezone/zic.c:1193
+msgid "time too small"
+msgstr ""
+
+#: timezone/zic.c:1197
+msgid "time too large"
msgstr ""
-#: timezone/zic.c:1176 timezone/zic.c:1279
+#: timezone/zic.c:1201 timezone/zic.c:1306
msgid "invalid time of day"
msgstr ""
-#: timezone/zic.c:1195
+#: timezone/zic.c:1220
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1199
+#: timezone/zic.c:1225
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1214
+#: timezone/zic.c:1241
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1218
+#: timezone/zic.c:1245
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1222
+#: timezone/zic.c:1249
msgid "blank TO field on Link line"
msgstr ""
-#: timezone/zic.c:1299
+#: timezone/zic.c:1326
msgid "invalid starting year"
msgstr ""
-#: timezone/zic.c:1303 timezone/zic.c:1328
+#: timezone/zic.c:1330
msgid "starting year too low to be represented"
msgstr ""
-#: timezone/zic.c:1305 timezone/zic.c:1330
+#: timezone/zic.c:1332
msgid "starting year too high to be represented"
msgstr ""
-#: timezone/zic.c:1324
+#: timezone/zic.c:1351
msgid "invalid ending year"
msgstr ""
-#: timezone/zic.c:1333
+#: timezone/zic.c:1355
+msgid "ending year too low to be represented"
+msgstr ""
+
+#: timezone/zic.c:1357
+msgid "ending year too high to be represented"
+msgstr ""
+
+#: timezone/zic.c:1360
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1340
+#: timezone/zic.c:1367
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1377
+#: timezone/zic.c:1404
msgid "invalid weekday name"
msgstr ""
-#: timezone/zic.c:1492
+#: timezone/zic.c:1518
#, c-format
msgid "%s: Can't remove %s: %s\n"
msgstr ""
-#: timezone/zic.c:1502
+#: timezone/zic.c:1528
#, c-format
msgid "%s: Can't create %s: %s\n"
msgstr ""
-#: timezone/zic.c:1568
+#: timezone/zic.c:1595
#, c-format
msgid "%s: Error writing %s\n"
msgstr ""
-#: timezone/zic.c:1758
+#: timezone/zic.c:1786
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:1801
+#: timezone/zic.c:1829
msgid "too many transitions?!"
msgstr ""
-#: timezone/zic.c:1820
+#: timezone/zic.c:1848
msgid "internal error - addtype called with bad isdst"
msgstr ""
-#: timezone/zic.c:1824
+#: timezone/zic.c:1852
msgid "internal error - addtype called with bad ttisstd"
msgstr ""
-#: timezone/zic.c:1828
+#: timezone/zic.c:1856
msgid "internal error - addtype called with bad ttisgmt"
msgstr ""
-#: timezone/zic.c:1847
+#: timezone/zic.c:1875
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:1875
+#: timezone/zic.c:1903
msgid "too many leap seconds"
msgstr ""
-#: timezone/zic.c:1881
+#: timezone/zic.c:1909
msgid "repeated leap second moment"
msgstr ""
-#: timezone/zic.c:1933
+#: timezone/zic.c:1961
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:1934
+#: timezone/zic.c:1962
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2029
+#: timezone/zic.c:2058
msgid "Odd number of quotation marks"
msgstr ""
-#: timezone/zic.c:2115
+#: timezone/zic.c:2079 timezone/zic.c:2098
+msgid "time overflow"
+msgstr ""
+
+#: timezone/zic.c:2145
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:2149
-msgid "no day in month matches rule"
+#: timezone/zic.c:2180
+msgid ""
+"rule goes past start/end of month--will not work with pre-2004 versions of "
+"zic"
msgstr ""
-#: timezone/zic.c:2172
+#: timezone/zic.c:2202
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:2213
+#: timezone/zic.c:2243
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr ""
-#: timezone/zic.c:2235
+#: timezone/zic.c:2265
#, c-format
msgid "%s: %d did not sign extend correctly\n"
msgstr ""
-#: posix/../sysdeps/generic/wordexp.c:1801
+#: posix/../sysdeps/generic/wordexp.c:1799
msgid "parameter null or not set"
msgstr ""
@@ -3446,290 +3181,303 @@ msgstr ""
msgid "Interrupted by a signal"
msgstr ""
-#: posix/getconf.c:889
+#: posix/../sysdeps/posix/gai_strerror.c:47
+msgid "Parameter string not correctly encoded"
+msgstr ""
+
+#: posix/getconf.c:942
#, c-format
msgid "Usage: %s [-v specification] variable_name [pathname]\n"
msgstr ""
-#: posix/getconf.c:947
+#: posix/getconf.c:1018
#, c-format
msgid "unknown specification \"%s\""
msgstr ""
-#: posix/getconf.c:974 posix/getconf.c:990
+#: posix/getconf.c:1046
+#, c-format
+msgid "Couldn't execute %s"
+msgstr ""
+
+#: posix/getconf.c:1076 posix/getconf.c:1092
msgid "undefined"
msgstr ""
-#: posix/getconf.c:1012
+#: posix/getconf.c:1114
#, c-format
msgid "Unrecognized variable `%s'"
msgstr ""
-#: posix/getopt.c:692 posix/getopt.c:704
+#: posix/getopt.c:571 posix/getopt.c:590
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr ""
-#: posix/getopt.c:737 posix/getopt.c:741
+#: posix/getopt.c:623 posix/getopt.c:627
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr ""
-#: posix/getopt.c:750 posix/getopt.c:755
+#: posix/getopt.c:636 posix/getopt.c:641
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr ""
-#: posix/getopt.c:791 posix/getopt.c:804 posix/getopt.c:1093
-#: posix/getopt.c:1106
+#: posix/getopt.c:687 posix/getopt.c:709 posix/getopt.c:1040
+#: posix/getopt.c:1062
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr ""
-#: posix/getopt.c:842 posix/getopt.c:845
+#: posix/getopt.c:747 posix/getopt.c:750
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr ""
-#: posix/getopt.c:853 posix/getopt.c:856
+#: posix/getopt.c:758 posix/getopt.c:761
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr ""
-#: posix/getopt.c:903 posix/getopt.c:906
+#: posix/getopt.c:816 posix/getopt.c:819
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr ""
-#: posix/getopt.c:912 posix/getopt.c:915
+#: posix/getopt.c:825 posix/getopt.c:828
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr ""
-#: posix/getopt.c:962 posix/getopt.c:973 posix/getopt.c:1159
-#: posix/getopt.c:1172
+#: posix/getopt.c:883 posix/getopt.c:902 posix/getopt.c:1115
+#: posix/getopt.c:1136
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr ""
-#: posix/getopt.c:1025 posix/getopt.c:1036
+#: posix/getopt.c:955 posix/getopt.c:974
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr ""
-#: posix/getopt.c:1060 posix/getopt.c:1072
+#: posix/getopt.c:998 posix/getopt.c:1019
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr ""
-#: posix/regcomp.c:136
+#: posix/regcomp.c:163
msgid "No match"
msgstr ""
-#: posix/regcomp.c:139
+#: posix/regcomp.c:166
msgid "Invalid regular expression"
msgstr ""
-#: posix/regcomp.c:142
+#: posix/regcomp.c:169
msgid "Invalid collation character"
msgstr ""
-#: posix/regcomp.c:145
+#: posix/regcomp.c:172
msgid "Invalid character class name"
msgstr ""
-#: posix/regcomp.c:148
+#: posix/regcomp.c:175
msgid "Trailing backslash"
msgstr ""
-#: posix/regcomp.c:151
+#: posix/regcomp.c:178
msgid "Invalid back reference"
msgstr ""
-#: posix/regcomp.c:154
+#: posix/regcomp.c:181
msgid "Unmatched [ or [^"
msgstr ""
-#: posix/regcomp.c:157
+#: posix/regcomp.c:184
msgid "Unmatched ( or \\("
msgstr ""
-#: posix/regcomp.c:160
+#: posix/regcomp.c:187
msgid "Unmatched \\{"
msgstr ""
-#: posix/regcomp.c:163
+#: posix/regcomp.c:190
msgid "Invalid content of \\{\\}"
msgstr ""
-#: posix/regcomp.c:166
+#: posix/regcomp.c:193
msgid "Invalid range end"
msgstr ""
-#: posix/regcomp.c:169
+#: posix/regcomp.c:196
msgid "Memory exhausted"
msgstr ""
-#: posix/regcomp.c:172
+#: posix/regcomp.c:199
msgid "Invalid preceding regular expression"
msgstr ""
-#: posix/regcomp.c:175
+#: posix/regcomp.c:202
msgid "Premature end of regular expression"
msgstr ""
-#: posix/regcomp.c:178
+#: posix/regcomp.c:205
msgid "Regular expression too big"
msgstr ""
-#: posix/regcomp.c:181
+#: posix/regcomp.c:208
msgid "Unmatched ) or \\)"
msgstr ""
-#: posix/regcomp.c:615
+#: posix/regcomp.c:692
msgid "No previous regular expression"
msgstr ""
-#: argp/argp-help.c:213
+#: argp/argp-help.c:225
#, c-format
msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
msgstr ""
-#: argp/argp-help.c:222
+#: argp/argp-help.c:234
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
msgstr ""
-#: argp/argp-help.c:234
+#: argp/argp-help.c:246
#, c-format
msgid "Garbage in ARGP_HELP_FMT: %s"
msgstr ""
-#: argp/argp-help.c:1189
+#: argp/argp-help.c:1210
msgid ""
"Mandatory or optional arguments to long options are also mandatory or "
"optional for any corresponding short options."
msgstr ""
-#: argp/argp-help.c:1572
+#: argp/argp-help.c:1597
msgid "Usage:"
msgstr ""
-#: argp/argp-help.c:1576
+#: argp/argp-help.c:1601
msgid " or: "
msgstr ""
-#: argp/argp-help.c:1588
+#: argp/argp-help.c:1613
msgid " [OPTION...]"
msgstr ""
-#: argp/argp-help.c:1615
+#: argp/argp-help.c:1640
#, c-format
msgid "Try `%s --help' or `%s --usage' for more information.\n"
msgstr ""
-#: argp/argp-help.c:1643
+#: argp/argp-help.c:1668
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
-#: argp/argp-parse.c:100
+#: argp/argp-parse.c:102
msgid "Give this help list"
msgstr ""
-#: argp/argp-parse.c:101
+#: argp/argp-parse.c:103
msgid "Give a short usage message"
msgstr ""
-#: argp/argp-parse.c:102
+#: argp/argp-parse.c:104
msgid "Set the program name"
msgstr ""
-#: argp/argp-parse.c:104
+#: argp/argp-parse.c:106
msgid "Hang for SECS seconds (default 3600)"
msgstr ""
-#: argp/argp-parse.c:161
+#: argp/argp-parse.c:167
msgid "Print program version"
msgstr ""
-#: argp/argp-parse.c:177
+#: argp/argp-parse.c:183
msgid "(PROGRAM ERROR) No version known!?"
msgstr ""
-#: argp/argp-parse.c:653
+#: argp/argp-parse.c:623
#, c-format
msgid "%s: Too many arguments\n"
msgstr ""
-#: argp/argp-parse.c:794
+#: argp/argp-parse.c:766
msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr ""
-#: resolv/herror.c:67
-msgid "Resolver Error 0 (no error)"
+#: libidn/nfkc.c:464
+msgid "Character out of range for UTF-8"
msgstr ""
#: resolv/herror.c:68
-msgid "Unknown host"
+msgid "Resolver Error 0 (no error)"
msgstr ""
#: resolv/herror.c:69
-msgid "Host name lookup failure"
+msgid "Unknown host"
msgstr ""
#: resolv/herror.c:70
-msgid "Unknown server error"
+msgid "Host name lookup failure"
msgstr ""
#: resolv/herror.c:71
+msgid "Unknown server error"
+msgstr ""
+
+#: resolv/herror.c:72
msgid "No address associated with name"
msgstr ""
-#: resolv/herror.c:107
+#: resolv/herror.c:108
msgid "Resolver internal error"
msgstr ""
-#: resolv/herror.c:110
+#: resolv/herror.c:111
msgid "Unknown resolver error"
msgstr ""
-#: resolv/res_hconf.c:147
+#: resolv/res_hconf.c:149
#, c-format
msgid "%s: line %d: expected service, found `%s'\n"
msgstr ""
-#: resolv/res_hconf.c:165
+#: resolv/res_hconf.c:167
#, c-format
msgid "%s: line %d: cannot specify more than %d services"
msgstr ""
-#: resolv/res_hconf.c:191
+#: resolv/res_hconf.c:195
#, c-format
msgid "%s: line %d: list delimiter not followed by keyword"
msgstr ""
-#: resolv/res_hconf.c:231
+#: resolv/res_hconf.c:236
#, c-format
msgid "%s: line %d: cannot specify more than %d trim domains"
msgstr ""
-#: resolv/res_hconf.c:256
+#: resolv/res_hconf.c:262
#, c-format
msgid "%s: line %d: list delimiter not followed by domain"
msgstr ""
-#: resolv/res_hconf.c:319
+#: resolv/res_hconf.c:326
#, c-format
msgid "%s: line %d: expected `on' or `off', found `%s'\n"
msgstr ""
-#: resolv/res_hconf.c:366
+#: resolv/res_hconf.c:374
#, c-format
msgid "%s: line %d: bad command `%s'\n"
msgstr ""
-#: resolv/res_hconf.c:395
+#: resolv/res_hconf.c:404
#, c-format
msgid "%s: line %d: ignoring trailing garbage `%s'\n"
msgstr ""
@@ -3742,24 +3490,27 @@ msgstr ""
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:136 nss/getent.c:308
-#, c-format
-msgid "Enumeration not supported on %s\n"
+#: nss/getent.c:61
+msgid ""
+"Get entries from administrative database.\013For bug reporting instructions, "
+"please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
msgstr ""
-#: nss/getent.c:732
-msgid "getent - get entries from administrative database."
+#: nss/getent.c:144 nss/getent.c:393
+#, c-format
+msgid "Enumeration not supported on %s\n"
msgstr ""
-#: nss/getent.c:733
+#: nss/getent.c:791
msgid "Supported databases:"
msgstr ""
-#: nss/getent.c:790 nscd/nscd.c:124 nscd/nscd_nischeck.c:64
+#: nss/getent.c:848 nscd/nscd.c:146 nscd/nscd_nischeck.c:64
msgid "wrong number of arguments"
msgstr ""
-#: nss/getent.c:800
+#: nss/getent.c:858
#, c-format
msgid "Unknown database: %s\n"
msgstr ""
@@ -3788,72 +3539,72 @@ msgstr ""
msgid "invalid pointer size"
msgstr ""
-#: inet/rcmd.c:163 inet/rcmd.c:166
+#: inet/rcmd.c:166 inet/rcmd.c:168
msgid "rcmd: Cannot allocate memory\n"
msgstr ""
-#: inet/rcmd.c:185 inet/rcmd.c:188
+#: inet/rcmd.c:186 inet/rcmd.c:188
msgid "rcmd: socket: All ports in use\n"
msgstr ""
-#: inet/rcmd.c:222
+#: inet/rcmd.c:220
#, c-format
msgid "connect to address %s: "
msgstr ""
-#: inet/rcmd.c:240
+#: inet/rcmd.c:236
#, c-format
msgid "Trying %s...\n"
msgstr ""
-#: inet/rcmd.c:289
+#: inet/rcmd.c:281
#, c-format
msgid "rcmd: write (setting up stderr): %m\n"
msgstr ""
-#: inet/rcmd.c:310
+#: inet/rcmd.c:300
#, c-format
msgid "rcmd: poll (setting up stderr): %m\n"
msgstr ""
-#: inet/rcmd.c:313
+#: inet/rcmd.c:303
msgid "poll: protocol failure in circuit setup\n"
msgstr ""
-#: inet/rcmd.c:358
+#: inet/rcmd.c:344
msgid "socket: protocol failure in circuit setup\n"
msgstr ""
-#: inet/rcmd.c:387
+#: inet/rcmd.c:371
#, c-format
msgid "rcmd: %s: short read"
msgstr ""
-#: inet/rcmd.c:549
+#: inet/rcmd.c:531
msgid "lstat failed"
msgstr ""
-#: inet/rcmd.c:551
+#: inet/rcmd.c:533
msgid "not regular file"
msgstr ""
-#: inet/rcmd.c:556
+#: inet/rcmd.c:538
msgid "cannot open"
msgstr ""
-#: inet/rcmd.c:558
+#: inet/rcmd.c:540
msgid "fstat failed"
msgstr ""
-#: inet/rcmd.c:560
+#: inet/rcmd.c:542
msgid "bad owner"
msgstr ""
-#: inet/rcmd.c:562
+#: inet/rcmd.c:544
msgid "writeable by other than owner"
msgstr ""
-#: inet/rcmd.c:564
+#: inet/rcmd.c:546
msgid "hard linked somewhere"
msgstr ""
@@ -3874,11 +3625,11 @@ msgstr ""
msgid "Unknown .netrc keyword %s"
msgstr ""
-#: sunrpc/auth_unix.c:115 sunrpc/auth_unix.c:118
+#: sunrpc/auth_unix.c:117 sunrpc/auth_unix.c:120
msgid "authunix_create: out of memory\n"
msgstr ""
-#: sunrpc/auth_unix.c:318
+#: sunrpc/auth_unix.c:356
msgid "auth_none.c - Fatal marshalling problem"
msgstr ""
@@ -4012,7 +3763,7 @@ msgstr ""
msgid "clnttcp_create: out of memory\n"
msgstr ""
-#: sunrpc/clnt_udp.c:141 sunrpc/clnt_udp.c:144
+#: sunrpc/clnt_udp.c:142 sunrpc/clnt_udp.c:145
msgid "clntudp_create: out of memory\n"
msgstr ""
@@ -4020,94 +3771,80 @@ msgstr ""
msgid "clntunix_create: out of memory\n"
msgstr ""
-#: sunrpc/get_myaddr.c:78
-msgid "get_myaddress: ioctl (get interface configuration)"
-msgstr ""
-
#: sunrpc/pm_getmaps.c:74
msgid "pmap_getmaps rpc problem"
msgstr ""
-#: sunrpc/pmap_clnt.c:72
-msgid "__get_myaddress: ioctl (get interface configuration)"
-msgstr ""
-
-#: sunrpc/pmap_clnt.c:137
+#: sunrpc/pmap_clnt.c:129
msgid "Cannot register service"
msgstr ""
-#: sunrpc/pmap_rmt.c:190
-msgid "broadcast: ioctl (get interface configuration)"
-msgstr ""
-
-#: sunrpc/pmap_rmt.c:199
-msgid "broadcast: ioctl (get interface flags)"
-msgstr ""
-
-#: sunrpc/pmap_rmt.c:269
+#: sunrpc/pmap_rmt.c:248
msgid "Cannot create socket for broadcast rpc"
msgstr ""
-#: sunrpc/pmap_rmt.c:276
+#: sunrpc/pmap_rmt.c:255
msgid "Cannot set socket option SO_BROADCAST"
msgstr ""
-#: sunrpc/pmap_rmt.c:328
+#: sunrpc/pmap_rmt.c:307
msgid "Cannot send broadcast packet"
msgstr ""
-#: sunrpc/pmap_rmt.c:353
+#: sunrpc/pmap_rmt.c:332
msgid "Broadcast poll problem"
msgstr ""
-#: sunrpc/pmap_rmt.c:366
+#: sunrpc/pmap_rmt.c:345
msgid "Cannot receive reply to broadcast"
msgstr ""
-#: sunrpc/rpc_main.c:288
+#: sunrpc/rpc_main.c:290
#, c-format
msgid "%s: output would overwrite %s\n"
msgstr ""
-#: sunrpc/rpc_main.c:295
+#: sunrpc/rpc_main.c:297
#, c-format
msgid "%s: unable to open %s: %m\n"
msgstr ""
-#: sunrpc/rpc_main.c:307
+#: sunrpc/rpc_main.c:309
#, c-format
msgid "%s: while writing output %s: %m"
msgstr ""
-#: sunrpc/rpc_main.c:342
+#: sunrpc/rpc_main.c:344
#, c-format
msgid "cannot find C preprocessor: %s \n"
msgstr ""
-#: sunrpc/rpc_main.c:350
+#: sunrpc/rpc_main.c:352
msgid "cannot find any C preprocessor (cpp)\n"
msgstr ""
-#: sunrpc/rpc_main.c:419
+#: sunrpc/rpc_main.c:421
#, c-format
msgid "%s: C preprocessor failed with signal %d\n"
msgstr ""
-#: sunrpc/rpc_main.c:422
+#: sunrpc/rpc_main.c:424
#, c-format
msgid "%s: C preprocessor failed with exit code %d\n"
msgstr ""
-#: sunrpc/rpc_main.c:462
+#: sunrpc/rpc_main.c:464
#, c-format
msgid "illegal nettype :`%s'\n"
msgstr ""
#: sunrpc/rpc_main.c:1104
+#, c-format
msgid "rpcgen: too many defines\n"
msgstr ""
#: sunrpc/rpc_main.c:1116
+#, c-format
msgid "rpcgen: arglist coding error\n"
msgstr ""
@@ -4119,6 +3856,7 @@ msgid "file `%s' already exists and may be overwritten\n"
msgstr ""
#: sunrpc/rpc_main.c:1194
+#, c-format
msgid "Cannot specify more than one input file!\n"
msgstr ""
@@ -4127,6 +3865,7 @@ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
msgstr ""
#: sunrpc/rpc_main.c:1373
+#, c-format
msgid "Cannot use netid flag with inetd flag!\n"
msgstr ""
@@ -4139,10 +3878,12 @@ msgid "Cannot use table flags with newstyle!\n"
msgstr ""
#: sunrpc/rpc_main.c:1411
+#, c-format
msgid "\"infile\" is required for template generation flags.\n"
msgstr ""
#: sunrpc/rpc_main.c:1416
+#, c-format
msgid "Cannot have more than one file generation flag!\n"
msgstr ""
@@ -4173,23 +3914,23 @@ msgstr ""
msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
msgstr ""
-#: sunrpc/rpc_scan.c:116
+#: sunrpc/rpc_scan.c:118
msgid "constant or identifier expected"
msgstr ""
-#: sunrpc/rpc_scan.c:312
+#: sunrpc/rpc_scan.c:314
msgid "illegal character in file: "
msgstr ""
-#: sunrpc/rpc_scan.c:351 sunrpc/rpc_scan.c:377
+#: sunrpc/rpc_scan.c:353 sunrpc/rpc_scan.c:379
msgid "unterminated string constant"
msgstr ""
-#: sunrpc/rpc_scan.c:383
+#: sunrpc/rpc_scan.c:385
msgid "empty char string"
msgstr ""
-#: sunrpc/rpc_scan.c:525 sunrpc/rpc_scan.c:535
+#: sunrpc/rpc_scan.c:527 sunrpc/rpc_scan.c:537
msgid "preprocessor error"
msgstr ""
@@ -4279,25 +4020,25 @@ msgstr ""
msgid "can't reassign procedure number %ld\n"
msgstr ""
-#: sunrpc/svc_simple.c:96
+#: sunrpc/svc_simple.c:97
msgid "couldn't create an rpc server\n"
msgstr ""
-#: sunrpc/svc_simple.c:104
+#: sunrpc/svc_simple.c:105
#, c-format
msgid "couldn't register prog %ld vers %ld\n"
msgstr ""
-#: sunrpc/svc_simple.c:111
+#: sunrpc/svc_simple.c:113
msgid "registerrpc: out of memory\n"
msgstr ""
-#: sunrpc/svc_simple.c:175
+#: sunrpc/svc_simple.c:178
#, c-format
msgid "trouble replying to prog %d\n"
msgstr ""
-#: sunrpc/svc_simple.c:183
+#: sunrpc/svc_simple.c:187
#, c-format
msgid "never registered prog %d\n"
msgstr ""
@@ -4334,31 +4075,31 @@ msgstr ""
msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
msgstr ""
-#: sunrpc/svc_udp.c:471
+#: sunrpc/svc_udp.c:493
msgid "enablecache: cache already enabled"
msgstr ""
-#: sunrpc/svc_udp.c:477
+#: sunrpc/svc_udp.c:499
msgid "enablecache: could not allocate cache"
msgstr ""
-#: sunrpc/svc_udp.c:485
+#: sunrpc/svc_udp.c:507
msgid "enablecache: could not allocate cache data"
msgstr ""
-#: sunrpc/svc_udp.c:492
+#: sunrpc/svc_udp.c:514
msgid "enablecache: could not allocate cache fifo"
msgstr ""
-#: sunrpc/svc_udp.c:528
+#: sunrpc/svc_udp.c:550
msgid "cache_set: victim not found"
msgstr ""
-#: sunrpc/svc_udp.c:539
+#: sunrpc/svc_udp.c:561
msgid "cache_set: victim alloc failed"
msgstr ""
-#: sunrpc/svc_udp.c:545
+#: sunrpc/svc_udp.c:567
msgid "cache_set: could not allocate new rpc_buffer"
msgstr ""
@@ -4378,11 +4119,11 @@ msgstr ""
msgid "svc_unix: makefd_xprt: out of memory\n"
msgstr ""
-#: sunrpc/xdr.c:570 sunrpc/xdr.c:573
+#: sunrpc/xdr.c:568 sunrpc/xdr.c:571
msgid "xdr_bytes: out of memory\n"
msgstr ""
-#: sunrpc/xdr.c:725 sunrpc/xdr.c:728
+#: sunrpc/xdr.c:726 sunrpc/xdr.c:729
msgid "xdr_string: out of memory\n"
msgstr ""
@@ -4438,6 +4179,10 @@ msgstr ""
msgid "First/next chain broken"
msgstr ""
+#: nis/nis_error.c:40
+msgid "Not owner"
+msgstr ""
+
#: nis/nis_error.c:41
msgid "Name not served by this server"
msgstr ""
@@ -4582,7 +4327,7 @@ msgstr ""
msgid "Master server busy, full dump rescheduled."
msgstr ""
-#: nis/nis_local_names.c:126
+#: nis/nis_local_names.c:122
#, c-format
msgid "LOCAL entry for UID %d in directory %s not unique\n"
msgstr ""
@@ -4627,605 +4372,741 @@ msgstr ""
msgid "(Unknown object)\n"
msgstr ""
-#: nis/nis_print.c:166
+#: nis/nis_print.c:167
#, c-format
msgid "Name : `%s'\n"
msgstr ""
-#: nis/nis_print.c:167
+#: nis/nis_print.c:168
#, c-format
msgid "Type : %s\n"
msgstr ""
-#: nis/nis_print.c:172
+#: nis/nis_print.c:173
msgid "Master Server :\n"
msgstr ""
-#: nis/nis_print.c:174
+#: nis/nis_print.c:175
msgid "Replicate :\n"
msgstr ""
-#: nis/nis_print.c:175
+#: nis/nis_print.c:176
#, c-format
msgid "\tName : %s\n"
msgstr ""
-#: nis/nis_print.c:176
+#: nis/nis_print.c:177
msgid "\tPublic Key : "
msgstr ""
-#: nis/nis_print.c:180
+#: nis/nis_print.c:181
msgid "None.\n"
msgstr ""
-#: nis/nis_print.c:183
+#: nis/nis_print.c:184
#, c-format
msgid "Diffie-Hellmann (%d bits)\n"
msgstr ""
-#: nis/nis_print.c:188
+#: nis/nis_print.c:189
#, c-format
msgid "RSA (%d bits)\n"
msgstr ""
-#: nis/nis_print.c:191
+#: nis/nis_print.c:192
msgid "Kerberos.\n"
msgstr ""
-#: nis/nis_print.c:194
+#: nis/nis_print.c:195
#, c-format
msgid "Unknown (type = %d, bits = %d)\n"
msgstr ""
-#: nis/nis_print.c:205
+#: nis/nis_print.c:206
#, c-format
msgid "\tUniversal addresses (%u)\n"
msgstr ""
-#: nis/nis_print.c:227
+#: nis/nis_print.c:228
msgid "Time to live : "
msgstr ""
-#: nis/nis_print.c:229
+#: nis/nis_print.c:230
msgid "Default Access rights :\n"
msgstr ""
-#: nis/nis_print.c:238
+#: nis/nis_print.c:239
#, c-format
msgid "\tType : %s\n"
msgstr ""
-#: nis/nis_print.c:239
+#: nis/nis_print.c:240
msgid "\tAccess rights: "
msgstr ""
-#: nis/nis_print.c:252
+#: nis/nis_print.c:254
msgid "Group Flags :"
msgstr ""
-#: nis/nis_print.c:255
+#: nis/nis_print.c:257
msgid ""
"\n"
"Group Members :\n"
msgstr ""
-#: nis/nis_print.c:266
+#: nis/nis_print.c:269
#, c-format
msgid "Table Type : %s\n"
msgstr ""
-#: nis/nis_print.c:267
+#: nis/nis_print.c:270
#, c-format
msgid "Number of Columns : %d\n"
msgstr ""
-#: nis/nis_print.c:268
+#: nis/nis_print.c:271
#, c-format
msgid "Character Separator : %c\n"
msgstr ""
-#: nis/nis_print.c:269
+#: nis/nis_print.c:272
#, c-format
msgid "Search Path : %s\n"
msgstr ""
-#: nis/nis_print.c:270
+#: nis/nis_print.c:273
msgid "Columns :\n"
msgstr ""
-#: nis/nis_print.c:273
+#: nis/nis_print.c:276
#, c-format
msgid "\t[%d]\tName : %s\n"
msgstr ""
-#: nis/nis_print.c:275
+#: nis/nis_print.c:278
msgid "\t\tAttributes : "
msgstr ""
-#: nis/nis_print.c:277
+#: nis/nis_print.c:280
msgid "\t\tAccess Rights : "
msgstr ""
-#: nis/nis_print.c:286
+#: nis/nis_print.c:290
msgid "Linked Object Type : "
msgstr ""
-#: nis/nis_print.c:288
+#: nis/nis_print.c:292
#, c-format
msgid "Linked to : %s\n"
msgstr ""
-#: nis/nis_print.c:297
+#: nis/nis_print.c:302
#, c-format
msgid "\tEntry data of type %s\n"
msgstr ""
-#: nis/nis_print.c:300
+#: nis/nis_print.c:305
#, c-format
msgid "\t[%u] - [%u bytes] "
msgstr ""
-#: nis/nis_print.c:303
+#: nis/nis_print.c:308
msgid "Encrypted data\n"
msgstr ""
-#: nis/nis_print.c:305
+#: nis/nis_print.c:310
msgid "Binary data\n"
msgstr ""
-#: nis/nis_print.c:320
+#: nis/nis_print.c:326
#, c-format
msgid "Object Name : %s\n"
msgstr ""
-#: nis/nis_print.c:321
+#: nis/nis_print.c:327
#, c-format
msgid "Directory : %s\n"
msgstr ""
-#: nis/nis_print.c:322
+#: nis/nis_print.c:328
#, c-format
msgid "Owner : %s\n"
msgstr ""
-#: nis/nis_print.c:323
+#: nis/nis_print.c:329
#, c-format
msgid "Group : %s\n"
msgstr ""
-#: nis/nis_print.c:324
+#: nis/nis_print.c:330
msgid "Access Rights : "
msgstr ""
-#: nis/nis_print.c:326
+#: nis/nis_print.c:332
+#, c-format
msgid ""
"\n"
"Time to Live : "
msgstr ""
-#: nis/nis_print.c:329
+#: nis/nis_print.c:335
#, c-format
msgid "Creation Time : %s"
msgstr ""
-#: nis/nis_print.c:331
+#: nis/nis_print.c:337
#, c-format
msgid "Mod. Time : %s"
msgstr ""
-#: nis/nis_print.c:332
+#: nis/nis_print.c:338
msgid "Object Type : "
msgstr ""
-#: nis/nis_print.c:352
+#: nis/nis_print.c:358
#, c-format
msgid " Data Length = %u\n"
msgstr ""
-#: nis/nis_print.c:365
+#: nis/nis_print.c:372
#, c-format
msgid "Status : %s\n"
msgstr ""
-#: nis/nis_print.c:366
+#: nis/nis_print.c:373
#, c-format
msgid "Number of objects : %u\n"
msgstr ""
-#: nis/nis_print.c:370
+#: nis/nis_print.c:377
#, c-format
msgid "Object #%d:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:115
+#: nis/nis_print_group_entry.c:113
#, c-format
msgid "Group entry for \"%s.%s\" group:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:123
+#: nis/nis_print_group_entry.c:121
msgid " Explicit members:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:128
+#: nis/nis_print_group_entry.c:126
msgid " No explicit members\n"
msgstr ""
-#: nis/nis_print_group_entry.c:131
+#: nis/nis_print_group_entry.c:129
msgid " Implicit members:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:136
+#: nis/nis_print_group_entry.c:134
msgid " No implicit members\n"
msgstr ""
-#: nis/nis_print_group_entry.c:139
+#: nis/nis_print_group_entry.c:137
msgid " Recursive members:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:144
+#: nis/nis_print_group_entry.c:142
msgid " No recursive members\n"
msgstr ""
-#: nis/nis_print_group_entry.c:147 nis/nis_print_group_entry.c:163
+#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161
msgid " Explicit nonmembers:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:152
+#: nis/nis_print_group_entry.c:150
msgid " No explicit nonmembers\n"
msgstr ""
-#: nis/nis_print_group_entry.c:155
+#: nis/nis_print_group_entry.c:153
msgid " Implicit nonmembers:\n"
msgstr ""
-#: nis/nis_print_group_entry.c:160
+#: nis/nis_print_group_entry.c:158
msgid " No implicit nonmembers\n"
msgstr ""
-#: nis/nis_print_group_entry.c:168
+#: nis/nis_print_group_entry.c:166
msgid " No recursive nonmembers\n"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:96
-#: nis/nss_nisplus/nisplus-publickey.c:172
+#: nis/nss_nisplus/nisplus-publickey.c:101
+#: nis/nss_nisplus/nisplus-publickey.c:182
#, c-format
msgid "DES entry for netname %s not unique\n"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:208
+#: nis/nss_nisplus/nisplus-publickey.c:218
#, c-format
msgid "netname2user: missing group id list in `%s'."
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:285
-#: nis/nss_nisplus/nisplus-publickey.c:291
-#: nis/nss_nisplus/nisplus-publickey.c:350
-#: nis/nss_nisplus/nisplus-publickey.c:359
+#: nis/nss_nisplus/nisplus-publickey.c:300
+#: nis/nss_nisplus/nisplus-publickey.c:306
+#: nis/nss_nisplus/nisplus-publickey.c:370
+#: nis/nss_nisplus/nisplus-publickey.c:379
#, c-format
msgid "netname2user: (nis+ lookup): %s\n"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:304
+#: nis/nss_nisplus/nisplus-publickey.c:319
#, c-format
msgid "netname2user: DES entry for %s in directory %s not unique"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:322
+#: nis/nss_nisplus/nisplus-publickey.c:337
#, c-format
msgid "netname2user: principal name `%s' too long"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:372
+#: nis/nss_nisplus/nisplus-publickey.c:392
#, c-format
msgid "netname2user: LOCAL entry for %s in directory %s not unique"
msgstr ""
-#: nis/nss_nisplus/nisplus-publickey.c:379
+#: nis/nss_nisplus/nisplus-publickey.c:399
msgid "netname2user: should not have uid 0"
msgstr ""
-#: nis/ypclnt.c:174
+#: nis/ypclnt.c:145
#, c-format
msgid "YPBINDPROC_DOMAIN: %s\n"
msgstr ""
-#: nis/ypclnt.c:789
+#: nis/ypclnt.c:795
msgid "Request arguments bad"
msgstr ""
-#: nis/ypclnt.c:791
+#: nis/ypclnt.c:797
msgid "RPC failure on NIS operation"
msgstr ""
-#: nis/ypclnt.c:793
+#: nis/ypclnt.c:799
msgid "Can't bind to server which serves this domain"
msgstr ""
-#: nis/ypclnt.c:795
+#: nis/ypclnt.c:801
msgid "No such map in server's domain"
msgstr ""
-#: nis/ypclnt.c:797
+#: nis/ypclnt.c:803
msgid "No such key in map"
msgstr ""
-#: nis/ypclnt.c:799
+#: nis/ypclnt.c:805
msgid "Internal NIS error"
msgstr ""
-#: nis/ypclnt.c:801
+#: nis/ypclnt.c:807
msgid "Local resource allocation failure"
msgstr ""
-#: nis/ypclnt.c:803
+#: nis/ypclnt.c:809
msgid "No more records in map database"
msgstr ""
-#: nis/ypclnt.c:805
+#: nis/ypclnt.c:811
msgid "Can't communicate with portmapper"
msgstr ""
-#: nis/ypclnt.c:807
+#: nis/ypclnt.c:813
msgid "Can't communicate with ypbind"
msgstr ""
-#: nis/ypclnt.c:809
+#: nis/ypclnt.c:815
msgid "Can't communicate with ypserv"
msgstr ""
-#: nis/ypclnt.c:811
+#: nis/ypclnt.c:817
msgid "Local domain name not set"
msgstr ""
-#: nis/ypclnt.c:813
+#: nis/ypclnt.c:819
msgid "NIS map database is bad"
msgstr ""
-#: nis/ypclnt.c:815
+#: nis/ypclnt.c:821
msgid "NIS client/server version mismatch - can't supply service"
msgstr ""
-#: nis/ypclnt.c:819
+#: nis/ypclnt.c:825
msgid "Database is busy"
msgstr ""
-#: nis/ypclnt.c:821
+#: nis/ypclnt.c:827
msgid "Unknown NIS error code"
msgstr ""
-#: nis/ypclnt.c:863
+#: nis/ypclnt.c:862
msgid "Internal ypbind error"
msgstr ""
-#: nis/ypclnt.c:865
+#: nis/ypclnt.c:864
msgid "Domain not bound"
msgstr ""
-#: nis/ypclnt.c:867
+#: nis/ypclnt.c:866
msgid "System resource allocation failure"
msgstr ""
-#: nis/ypclnt.c:869
+#: nis/ypclnt.c:868
msgid "Unknown ypbind error"
msgstr ""
-#: nis/ypclnt.c:908
+#: nis/ypclnt.c:907
msgid "yp_update: cannot convert host to netname\n"
msgstr ""
-#: nis/ypclnt.c:920
+#: nis/ypclnt.c:919
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/cache.c:88
-msgid "while allocating hash table entry"
+#: nscd/aicache.c:74 nscd/hstcache.c:436
+#, c-format
+msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/cache.c:150 nscd/connections.c:187
+#: nscd/aicache.c:76 nscd/hstcache.c:438
#, c-format
-msgid "cannot stat() file `%s': %s"
+msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
-#: nscd/connections.c:146
-msgid "cannot read configuration file; this is fatal"
+#: nscd/cache.c:127
+#, c-format
+msgid "add new entry \"%s\" of type %s for %s to cache%s"
msgstr ""
-#: nscd/connections.c:153
+#: nscd/cache.c:207 nscd/connections.c:501
+#, c-format
+msgid "cannot stat() file `%s': %s"
+msgstr ""
+
+#: nscd/connections.c:209
msgid "Cannot run nscd in secure mode as unprivileged user"
msgstr ""
-#: nscd/connections.c:175
+#: nscd/connections.c:243 nscd/connections.c:255 nscd/connections.c:266
#, c-format
-msgid "while allocating cache: %s"
+msgid "invalid persistent database file \"%s\": %s"
+msgstr ""
+
+#: nscd/connections.c:257
+msgid "header size does not match"
+msgstr ""
+
+#: nscd/connections.c:268
+msgid "file size does not match"
+msgstr ""
+
+#: nscd/connections.c:285
+#, c-format
+msgid ""
+"suggested size of table for database %s larger than the persistent "
+"database's table"
+msgstr ""
+
+#: nscd/connections.c:295 nscd/connections.c:376
+#, c-format
+msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+msgstr ""
+
+#: nscd/connections.c:355
+#, c-format
+msgid ""
+"database for %s corrupted or simultaneously used; remove %s manually if "
+"necessary and restart"
msgstr ""
-#: nscd/connections.c:200
+#: nscd/connections.c:362
+#, c-format
+msgid "cannot create %s; no persistent database used"
+msgstr ""
+
+#: nscd/connections.c:365
+#, c-format
+msgid "cannot create %s; no sharing possible"
+msgstr ""
+
+#: nscd/connections.c:430
+#, c-format
+msgid "cannot write to database file %s: %s"
+msgstr ""
+
+#: nscd/connections.c:464
+#, c-format
+msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:514
#, c-format
msgid "cannot open socket: %s"
msgstr ""
-#: nscd/connections.c:218
+#: nscd/connections.c:531
+#, c-format
+msgid "cannot change socket to nonblocking mode: %s"
+msgstr ""
+
+#: nscd/connections.c:539
+#, c-format
+msgid "cannot set socket to close on exec: %s"
+msgstr ""
+
+#: nscd/connections.c:550
#, c-format
msgid "cannot enable socket to accept connections: %s"
msgstr ""
-#: nscd/connections.c:260
+#: nscd/connections.c:628
#, c-format
-msgid "handle_request: request received (Version = %d)"
+msgid "provide access to FD %d, for %s"
msgstr ""
-#: nscd/connections.c:266
+#: nscd/connections.c:640
#, c-format
msgid "cannot handle old request version %d; current version is %d"
msgstr ""
-#: nscd/connections.c:304 nscd/connections.c:326
+#: nscd/connections.c:689 nscd/connections.c:716
#, c-format
msgid "cannot write result: %s"
msgstr ""
-#: nscd/connections.c:405 nscd/connections.c:499
+#: nscd/connections.c:792 nscd/connections.c:1102
#, c-format
msgid "error getting callers id: %s"
msgstr ""
-#: nscd/connections.c:471
+#: nscd/connections.c:850 nscd/connections.c:864
+#, c-format
+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:904
+#, c-format
+msgid "cannot change to old UID: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:914
+#, c-format
+msgid "cannot change to old GID: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:927
#, c-format
-msgid "while accepting connection: %s"
+msgid "cannot change to old working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/connections.c:482
+#: nscd/connections.c:955
+#, c-format
+msgid "re-exec failed: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1080
#, c-format
msgid "short read while reading request: %s"
msgstr ""
-#: nscd/connections.c:518
+#: nscd/connections.c:1130
#, c-format
msgid "key length in request too long: %d"
msgstr ""
-#: nscd/connections.c:532
+#: nscd/connections.c:1143
#, c-format
msgid "short read while reading request key: %s"
msgstr ""
-#: nscd/connections.c:591 nscd/connections.c:592 nscd/connections.c:611
-#: nscd/connections.c:624 nscd/connections.c:630 nscd/connections.c:637
+#: nscd/connections.c:1152
#, c-format
-msgid "Failed to run nscd as user '%s'"
+msgid "handle_request: request received (Version = %d) from PID %ld"
msgstr ""
-#: nscd/connections.c:612
-msgid "getgrouplist failed"
+#: nscd/connections.c:1157
+#, c-format
+msgid "handle_request: request received (Version = %d)"
msgstr ""
-#: nscd/connections.c:625
-msgid "setgroups failed"
+#: nscd/connections.c:1515
+#, c-format
+msgid "could only start %d threads; terminating"
msgstr ""
-#: nscd/grpcache.c:103 nscd/hstcache.c:111 nscd/pwdcache.c:109
-msgid "while allocating key copy"
+#: nscd/connections.c:1563 nscd/connections.c:1564 nscd/connections.c:1581
+#: nscd/connections.c:1590 nscd/connections.c:1603 nscd/connections.c:1609
+#: nscd/connections.c:1616
+#, c-format
+msgid "Failed to run nscd as user '%s'"
msgstr ""
-#: nscd/grpcache.c:153 nscd/hstcache.c:168 nscd/pwdcache.c:146
-msgid "while allocating cache entry"
+#: nscd/connections.c:1582
+msgid "initial getgrouplist failed"
+msgstr ""
+
+#: nscd/connections.c:1591
+msgid "getgrouplist failed"
msgstr ""
-#: nscd/grpcache.c:196 nscd/hstcache.c:282 nscd/pwdcache.c:192
+#: nscd/connections.c:1604
+msgid "setgroups failed"
+msgstr ""
+
+#: nscd/grpcache.c:370 nscd/hstcache.c:386 nscd/initgrcache.c:382
+#: nscd/pwdcache.c:366
#, c-format
msgid "short write in %s: %s"
msgstr ""
-#: nscd/grpcache.c:218
+#: nscd/grpcache.c:413 nscd/initgrcache.c:75
#, c-format
msgid "Haven't found \"%s\" in group cache!"
msgstr ""
-#: nscd/grpcache.c:284
+#: nscd/grpcache.c:415 nscd/initgrcache.c:77
+#, c-format
+msgid "Reloading \"%s\" in group cache!"
+msgstr ""
+
+#: nscd/grpcache.c:506
#, c-format
msgid "Invalid numeric gid \"%s\"!"
msgstr ""
-#: nscd/grpcache.c:291
+#: nscd/mem.c:389
#, c-format
-msgid "Haven't found \"%d\" in group cache!"
+msgid "freed %zu bytes in %s cache"
msgstr ""
-#: nscd/hstcache.c:304 nscd/hstcache.c:370 nscd/hstcache.c:435
-#: nscd/hstcache.c:500
+#: nscd/mem.c:509
#, c-format
-msgid "Haven't found \"%s\" in hosts cache!"
+msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/nscd.c:85
+#: nscd/nscd.c:100
msgid "Read configuration data from NAME"
msgstr ""
-#: nscd/nscd.c:87
+#: nscd/nscd.c:102
msgid "Do not fork and display messages on the current tty"
msgstr ""
-#: nscd/nscd.c:88
+#: nscd/nscd.c:103
msgid "NUMBER"
msgstr ""
-#: nscd/nscd.c:88
+#: nscd/nscd.c:103
msgid "Start NUMBER threads"
msgstr ""
-#: nscd/nscd.c:89
+#: nscd/nscd.c:104
msgid "Shut the server down"
msgstr ""
-#: nscd/nscd.c:90
+#: nscd/nscd.c:105
msgid "Print current configuration statistic"
msgstr ""
-#: nscd/nscd.c:91
+#: nscd/nscd.c:106
msgid "TABLE"
msgstr ""
-#: nscd/nscd.c:92
+#: nscd/nscd.c:107
msgid "Invalidate the specified cache"
msgstr ""
-#: nscd/nscd.c:93
+#: nscd/nscd.c:108
msgid "TABLE,yes"
msgstr ""
-#: nscd/nscd.c:93
+#: nscd/nscd.c:109
msgid "Use separate cache for each user"
msgstr ""
-#: nscd/nscd.c:98
+#: nscd/nscd.c:114
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:131
+#: nscd/nscd.c:156
+msgid "cannot read configuration file; this is fatal"
+msgstr ""
+
+#: nscd/nscd.c:167
msgid "already running"
msgstr ""
-#: nscd/nscd.c:243 nscd/nscd.c:263 nscd/nscd.c:269
+#: nscd/nscd.c:182 nscd/nscd.c:237
+msgid "cannot fork"
+msgstr ""
+
+#: nscd/nscd.c:251
+msgid "Could not create log file"
+msgstr ""
+
+#: nscd/nscd.c:304 nscd/nscd.c:328 nscd/nscd_stat.c:162
msgid "Only root is allowed to use this option!"
msgstr ""
-#: nscd/nscd_conf.c:83
+#: nscd/nscd.c:378
+msgid "secure services not implemented anymore"
+msgstr ""
+
+#: nscd/nscd_conf.c:94
#, c-format
msgid "Parse error: %s"
msgstr ""
-#: nscd/nscd_conf.c:166
+#: nscd/nscd_conf.c:194
+msgid "Must specify user name for server-user option"
+msgstr ""
+
+#: nscd/nscd_conf.c:201
+msgid "Must specify user name for stat-user option"
+msgstr ""
+
+#: nscd/nscd_conf.c:251
#, c-format
-msgid "Could not create log file \"%s\""
+msgid "invalid value for 'reload-count': %u"
msgstr ""
-#: nscd/nscd_conf.c:182
-msgid "Must specify user name for server-user option"
+#: nscd/nscd_conf.c:266
+msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:187
+#: nscd/nscd_conf.c:269
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_stat.c:87
+#: nscd/nscd_conf.c:282
+#, c-format
+msgid "cannot get current working directory: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/nscd_stat.c:131
#, c-format
msgid "cannot write statistics: %s"
msgstr ""
-#: nscd/nscd_stat.c:105
+#: nscd/nscd_stat.c:158
+#, c-format
+msgid "Only root or %s is allowed to use this option!"
+msgstr ""
+
+#: nscd/nscd_stat.c:169
msgid "nscd not running!\n"
msgstr ""
-#: nscd/nscd_stat.c:116
+#: nscd/nscd_stat.c:180
msgid "write incomplete"
msgstr ""
-#: nscd/nscd_stat.c:128
+#: nscd/nscd_stat.c:192
msgid "cannot read statistics data"
msgstr ""
-#: nscd/nscd_stat.c:131
+#: nscd/nscd_stat.c:195
#, c-format
msgid ""
"nscd configuration:\n"
@@ -5233,51 +5114,87 @@ msgid ""
"%15d server debug level\n"
msgstr ""
-#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
-msgid " no"
+#: nscd/nscd_stat.c:219
+#, c-format
+msgid "%3ud %2uh %2um %2lus server runtime\n"
msgstr ""
-#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
-msgid " yes"
+#: nscd/nscd_stat.c:222
+#, c-format
+msgid " %2uh %2um %2lus server runtime\n"
msgstr ""
-#: nscd/nscd_stat.c:154
+#: nscd/nscd_stat.c:224
+#, c-format
+msgid " %2um %2lus server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:226
+#, c-format
+msgid " %2lus server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:228
+#, c-format
+msgid ""
+"%15d current number of threads\n"
+"%15d maximum number of threads\n"
+"%15lu number of times clients had to wait\n"
+"%15s paranoia mode enabled\n"
+"%15lu restart internal\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:261
#, c-format
msgid ""
"\n"
"%s cache:\n"
"\n"
"%15s cache is enabled\n"
-"%15Zd suggested size\n"
-"%15ld seconds time to live for positive entries\n"
-"%15ld seconds time to live for negative entries\n"
-"%15ld cache hits on positive entries\n"
-"%15ld cache hits on negative entries\n"
-"%15ld cache misses on positive entries\n"
-"%15ld cache misses on negative entries\n"
-"%15ld%% cache hit rate\n"
+"%15s cache is persistent\n"
+"%15s cache is shared\n"
+"%15zu suggested size\n"
+"%15zu total data pool size\n"
+"%15zu used data pool size\n"
+"%15lu seconds time to live for positive entries\n"
+"%15lu seconds time to live for negative entries\n"
+"%15<PRIuMAX> cache hits on positive entries\n"
+"%15<PRIuMAX> cache hits on negative entries\n"
+"%15<PRIuMAX> cache misses on positive entries\n"
+"%15<PRIuMAX> cache misses on negative entries\n"
+"%15lu%% cache hit rate\n"
+"%15zu current number of cached values\n"
+"%15zu maximum number of cached values\n"
+"%15zu maximum chain length searched\n"
+"%15<PRIuMAX> number of delays on rdlock\n"
+"%15<PRIuMAX> number of delays on wrlock\n"
+"%15<PRIuMAX> memory allocations failed\n"
"%15s check /etc/%s for changes\n"
msgstr ""
-#: nscd/pwdcache.c:214
+#: nscd/pwdcache.c:409
#, c-format
msgid "Haven't found \"%s\" in password cache!"
msgstr ""
-#: nscd/pwdcache.c:280
+#: nscd/pwdcache.c:411
#, c-format
-msgid "Invalid numeric uid \"%s\"!"
+msgid "Reloading \"%s\" in password cache!"
msgstr ""
-#: nscd/pwdcache.c:287
+#: nscd/pwdcache.c:503
#, c-format
-msgid "Haven't found \"%d\" in password cache!"
+msgid "Invalid numeric uid \"%s\"!"
msgstr ""
-#: elf/../sysdeps/generic/dl-sysdep.c:357
+#: elf/../sysdeps/generic/dl-sysdep.c:486
msgid "cannot create capability list"
msgstr ""
+#: elf/../sysdeps/generic/dl-tls.c:785
+msgid "cannot create TLS data structures"
+msgstr ""
+
#: elf/../sysdeps/generic/readelflib.c:35
#, c-format
msgid "file %s is truncated\n"
@@ -5312,84 +5229,78 @@ msgstr ""
msgid "%s is for unknown machine %d.\n"
msgstr ""
-#: elf/cache.c:69
+#: elf/cache.c:70
msgid "unknown"
msgstr ""
-#: elf/cache.c:105
+#: elf/cache.c:111
msgid "Unknown OS"
msgstr ""
-#: elf/cache.c:110
+#: elf/cache.c:116
#, c-format
msgid ", OS ABI: %s %d.%d.%d"
msgstr ""
-#: elf/cache.c:136 elf/ldconfig.c:1045
+#: elf/cache.c:142 elf/ldconfig.c:1220
#, c-format
msgid "Can't open cache file %s\n"
msgstr ""
-#: elf/cache.c:148
+#: elf/cache.c:154
msgid "mmap of cache file failed.\n"
msgstr ""
-#: elf/cache.c:152 elf/cache.c:162
+#: elf/cache.c:158 elf/cache.c:168
msgid "File is not a cache file.\n"
msgstr ""
-#: elf/cache.c:195 elf/cache.c:205
+#: elf/cache.c:201 elf/cache.c:211
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr ""
-#: elf/cache.c:392
+#: elf/cache.c:410
#, c-format
msgid "Can't remove old temporary cache file %s"
msgstr ""
-#: elf/cache.c:399
+#: elf/cache.c:417
#, c-format
msgid "Can't create temporary cache file %s"
msgstr ""
-#: elf/cache.c:407 elf/cache.c:416 elf/cache.c:420
+#: elf/cache.c:425 elf/cache.c:434 elf/cache.c:438
msgid "Writing of cache data failed"
msgstr ""
-#: elf/cache.c:424
+#: elf/cache.c:442
msgid "Writing of cache data failed."
msgstr ""
-#: elf/cache.c:431
+#: elf/cache.c:449
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr ""
-#: elf/cache.c:436
+#: elf/cache.c:454
#, c-format
msgid "Renaming of %s to %s failed"
msgstr ""
-#: elf/dl-close.c:128
+#: elf/dl-close.c:119
msgid "shared object not open"
msgstr ""
-#: elf/dl-close.c:486 elf/dl-open.c:444
-msgid ""
-"TLS generation counter wrapped! Please send report with the 'glibcbug' "
-"script."
-msgstr ""
-
-#: elf/dl-deps.c:111 elf/dl-open.c:183
+#: elf/dl-deps.c:112 elf/dl-open.c:234
msgid "DST not allowed in SUID/SGID programs"
msgstr ""
-#: elf/dl-deps.c:124
+#: elf/dl-deps.c:125
msgid "empty dynamics string token substitution"
msgstr ""
-#: elf/dl-deps.c:130
+#: elf/dl-deps.c:131
#, c-format
msgid ""
"cannot load auxiliary `%s' because of empty dynamic string token "
@@ -5416,456 +5327,559 @@ msgstr ""
msgid "error while loading shared libraries"
msgstr ""
-#: elf/dl-load.c:339
+#: elf/dl-load.c:363
msgid "cannot allocate name record"
msgstr ""
-#: elf/dl-load.c:441 elf/dl-load.c:520 elf/dl-load.c:612 elf/dl-load.c:707
+#: elf/dl-load.c:465 elf/dl-load.c:544 elf/dl-load.c:664 elf/dl-load.c:759
msgid "cannot create cache for search path"
msgstr ""
-#: elf/dl-load.c:543
+#: elf/dl-load.c:567
msgid "cannot create RUNPATH/RPATH copy"
msgstr ""
-#: elf/dl-load.c:598
+#: elf/dl-load.c:650
msgid "cannot create search path array"
msgstr ""
-#: elf/dl-load.c:794
+#: elf/dl-load.c:836
msgid "cannot stat shared object"
msgstr ""
-#: elf/dl-load.c:838
+#: elf/dl-load.c:911
msgid "cannot open zero fill device"
msgstr ""
-#: elf/dl-load.c:847 elf/dl-load.c:1902
+#: elf/dl-load.c:956 elf/dl-load.c:2144
msgid "cannot create shared object descriptor"
msgstr ""
-#: elf/dl-load.c:866 elf/dl-load.c:1398 elf/dl-load.c:1481
+#: elf/dl-load.c:975 elf/dl-load.c:1620 elf/dl-load.c:1703
msgid "cannot read file data"
msgstr ""
-#: elf/dl-load.c:906
+#: elf/dl-load.c:1019
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:913
+#: elf/dl-load.c:1026
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:988
+#: elf/dl-load.c:1110
msgid "cannot allocate TLS data structures for initial thread"
msgstr ""
-#: elf/dl-load.c:1012
+#: elf/dl-load.c:1134
msgid "cannot handle TLS data"
msgstr ""
-#: elf/dl-load.c:1047
+#: elf/dl-load.c:1153
+msgid "object file has no loadable segments"
+msgstr ""
+
+#: elf/dl-load.c:1189
msgid "failed to map segment from shared object"
msgstr ""
-#: elf/dl-load.c:1071
+#: elf/dl-load.c:1213
msgid "cannot dynamically load executable"
msgstr ""
-#: elf/dl-load.c:1132
+#: elf/dl-load.c:1274
msgid "cannot change memory protections"
msgstr ""
-#: elf/dl-load.c:1151
+#: elf/dl-load.c:1293
msgid "cannot map zero-fill pages"
msgstr ""
-#: elf/dl-load.c:1169
+#: elf/dl-load.c:1307
+msgid "object file has no dynamic section"
+msgstr ""
+
+#: elf/dl-load.c:1330
+msgid "shared object cannot be dlopen()ed"
+msgstr ""
+
+#: elf/dl-load.c:1343
msgid "cannot allocate memory for program header"
msgstr ""
-#: elf/dl-load.c:1200
-msgid "object file has no dynamic section"
+#: elf/dl-load.c:1385
+msgid "cannot enable executable stack as shared object requires"
msgstr ""
-#: elf/dl-load.c:1240
-msgid "shared object cannot be dlopen()ed"
+#: elf/dl-load.c:1400
+msgid "cannot close file descriptor"
msgstr ""
-#: elf/dl-load.c:1263
+#: elf/dl-load.c:1442
msgid "cannot create searchlist"
msgstr ""
-#: elf/dl-load.c:1398
+#: elf/dl-load.c:1620
msgid "file too short"
msgstr ""
-#: elf/dl-load.c:1421
+#: elf/dl-load.c:1643
msgid "invalid ELF header"
msgstr ""
-#: elf/dl-load.c:1430
+#: elf/dl-load.c:1652
msgid "ELF file data encoding not big-endian"
msgstr ""
-#: elf/dl-load.c:1432
+#: elf/dl-load.c:1654
msgid "ELF file data encoding not little-endian"
msgstr ""
-#: elf/dl-load.c:1436
+#: elf/dl-load.c:1658
msgid "ELF file version ident does not match current one"
msgstr ""
-#: elf/dl-load.c:1440
+#: elf/dl-load.c:1662
msgid "ELF file OS ABI invalid"
msgstr ""
-#: elf/dl-load.c:1442
+#: elf/dl-load.c:1664
msgid "ELF file ABI version invalid"
msgstr ""
-#: elf/dl-load.c:1445
+#: elf/dl-load.c:1667
msgid "internal error"
msgstr ""
-#: elf/dl-load.c:1452
+#: elf/dl-load.c:1674
msgid "ELF file version does not match current one"
msgstr ""
-#: elf/dl-load.c:1460
-msgid "ELF file's phentsize not the expected size"
+#: elf/dl-load.c:1682
+msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1466
-msgid "only ET_DYN and ET_EXEC can be loaded"
+#: elf/dl-load.c:1688
+msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:1917
+#: elf/dl-load.c:2158
msgid "cannot open shared object file"
msgstr ""
-#: elf/dl-lookup.c:265 elf/dl-lookup.c:430
+#: elf/dl-lookup.c:249
msgid "relocation error"
msgstr ""
-#: elf/dl-open.c:111
+#: elf/dl-lookup.c:277
+msgid "symbol lookup error"
+msgstr ""
+
+#: elf/dl-open.c:118
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:214
+#: elf/dl-open.c:180
+msgid "invalid caller"
+msgstr ""
+
+#: elf/dl-open.c:250
msgid "empty dynamic string token substitution"
msgstr ""
-#: elf/dl-open.c:351 elf/dl-open.c:362
+#: elf/dl-open.c:416 elf/dl-open.c:427
msgid "cannot create scope list"
msgstr ""
-#: elf/dl-open.c:424
-msgid "cannot create TLS data structures"
+#: elf/dl-open.c:471
+msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:486
+#: elf/dl-open.c:514
msgid "invalid mode for dlopen()"
msgstr ""
-#: elf/dl-reloc.c:58
-msgid "shared object cannot be dlopen()ed: static TLS memory too small"
+#: elf/dl-open.c:531
+msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-reloc.c:118
+#: elf/dl-open.c:544
+msgid "invalid target namespace in dlmopen()"
+msgstr ""
+
+#: elf/dl-reloc.c:55
+msgid "cannot allocate memory in static TLS block"
+msgstr ""
+
+#: elf/dl-reloc.c:195
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:219
+#: elf/dl-reloc.c:275
#, c-format
-msgid "%s: profiler found no PLTREL in object %s\n"
+msgid "%s: no PLTREL found in object %s\n"
msgstr ""
-#: elf/dl-reloc.c:231
+#: elf/dl-reloc.c:286
#, c-format
-msgid "%s: profiler out of memory shadowing PLTREL of %s\n"
+msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:246
+#: elf/dl-reloc.c:301
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-sym.c:74 elf/dl-sym.c:145
+#: elf/dl-reloc.c:326
+msgid "cannot apply additional memory protection after relocation"
+msgstr ""
+
+#: elf/dl-sym.c:98
msgid "RTLD_NEXT used in code not dynamically loaded"
msgstr ""
-#: elf/dl-version.c:302
+#: elf/dl-version.c:303
msgid "cannot allocate version reference table"
msgstr ""
-#: elf/ldconfig.c:122
+#: elf/ldconfig.c:135
msgid "Print cache"
msgstr ""
-#: elf/ldconfig.c:123
+#: elf/ldconfig.c:136
msgid "Generate verbose messages"
msgstr ""
-#: elf/ldconfig.c:124
+#: elf/ldconfig.c:137
msgid "Don't build cache"
msgstr ""
-#: elf/ldconfig.c:125
+#: elf/ldconfig.c:138
msgid "Don't generate links"
msgstr ""
-#: elf/ldconfig.c:126
+#: elf/ldconfig.c:139
msgid "Change to and use ROOT as root directory"
msgstr ""
-#: elf/ldconfig.c:127
+#: elf/ldconfig.c:139
+msgid "ROOT"
+msgstr ""
+
+#: elf/ldconfig.c:140
+msgid "CACHE"
+msgstr ""
+
+#: elf/ldconfig.c:140
msgid "Use CACHE as cache file"
msgstr ""
-#: elf/ldconfig.c:128
+#: elf/ldconfig.c:141
+msgid "CONF"
+msgstr ""
+
+#: elf/ldconfig.c:141
msgid "Use CONF as configuration file"
msgstr ""
-#: elf/ldconfig.c:129
+#: elf/ldconfig.c:142
msgid ""
"Only process directories specified on the command line. Don't build cache."
msgstr ""
-#: elf/ldconfig.c:130
+#: elf/ldconfig.c:143
msgid "Manually link individual libraries."
msgstr ""
-#: elf/ldconfig.c:131
+#: elf/ldconfig.c:144
+msgid "FORMAT"
+msgstr ""
+
+#: elf/ldconfig.c:144
msgid "Format to use: new, old or compat (default)"
msgstr ""
-#: elf/ldconfig.c:136
+#: elf/ldconfig.c:152
msgid "Configure Dynamic Linker Run Time Bindings."
msgstr ""
-#: elf/ldconfig.c:294
+#: elf/ldconfig.c:310
#, c-format
msgid "Path `%s' given more than once"
msgstr ""
-#: elf/ldconfig.c:338
+#: elf/ldconfig.c:350
#, c-format
msgid "%s is not a known library type"
msgstr ""
-#: elf/ldconfig.c:356
+#: elf/ldconfig.c:375
#, c-format
msgid "Can't stat %s"
msgstr ""
-#: elf/ldconfig.c:426
+#: elf/ldconfig.c:449
#, c-format
msgid "Can't stat %s\n"
msgstr ""
-#: elf/ldconfig.c:436
+#: elf/ldconfig.c:459
#, c-format
msgid "%s is not a symbolic link\n"
msgstr ""
-#: elf/ldconfig.c:455
+#: elf/ldconfig.c:478
#, c-format
msgid "Can't unlink %s"
msgstr ""
-#: elf/ldconfig.c:461
+#: elf/ldconfig.c:484
#, c-format
msgid "Can't link %s to %s"
msgstr ""
-#: elf/ldconfig.c:467
+#: elf/ldconfig.c:490
msgid " (changed)\n"
msgstr ""
-#: elf/ldconfig.c:469
+#: elf/ldconfig.c:492
msgid " (SKIPPED)\n"
msgstr ""
-#: elf/ldconfig.c:524
+#: elf/ldconfig.c:547
#, c-format
msgid "Can't find %s"
msgstr ""
-#: elf/ldconfig.c:540
+#: elf/ldconfig.c:563
#, c-format
msgid "Can't lstat %s"
msgstr ""
-#: elf/ldconfig.c:547
+#: elf/ldconfig.c:570
#, c-format
msgid "Ignored file %s since it is not a regular file."
msgstr ""
-#: elf/ldconfig.c:555
+#: elf/ldconfig.c:578
#, c-format
msgid "No link created since soname could not be found for %s"
msgstr ""
-#: elf/ldconfig.c:646
+#: elf/ldconfig.c:669
#, c-format
msgid "Can't open directory %s"
msgstr ""
-#: elf/ldconfig.c:701 elf/ldconfig.c:748
+#: elf/ldconfig.c:724 elf/ldconfig.c:771
#, c-format
msgid "Cannot lstat %s"
msgstr ""
-#: elf/ldconfig.c:713
+#: elf/ldconfig.c:736
#, c-format
msgid "Cannot stat %s"
msgstr ""
-#: elf/ldconfig.c:770 elf/readlib.c:93
+#: elf/ldconfig.c:793 elf/readlib.c:92
#, c-format
msgid "Input file %s not found.\n"
msgstr ""
-#: elf/ldconfig.c:804
+#: elf/ldconfig.c:844
#, c-format
msgid "libc5 library %s in wrong directory"
msgstr ""
-#: elf/ldconfig.c:807
+#: elf/ldconfig.c:847
#, c-format
msgid "libc6 library %s in wrong directory"
msgstr ""
-#: elf/ldconfig.c:810
+#: elf/ldconfig.c:850
#, c-format
msgid "libc4 library %s in wrong directory"
msgstr ""
-#: elf/ldconfig.c:837
+#: elf/ldconfig.c:877
#, c-format
msgid ""
"libraries %s and %s in directory %s have same soname but different type."
msgstr ""
-#: elf/ldconfig.c:940
+#: elf/ldconfig.c:984
#, c-format
msgid "Can't open configuration file %s"
msgstr ""
-#: elf/ldconfig.c:1024
+#: elf/ldconfig.c:1048
+#, c-format
+msgid "%s:%u: bad syntax in hwcap line"
+msgstr ""
+
+#: elf/ldconfig.c:1054
+#, c-format
+msgid "%s:%u: hwcap index %lu above maximum %u"
+msgstr ""
+
+#: elf/ldconfig.c:1061 elf/ldconfig.c:1069
+#, c-format
+msgid "%s:%u: hwcap index %lu already defined as %s"
+msgstr ""
+
+#: elf/ldconfig.c:1072
+#, c-format
+msgid "%s:%u: duplicate hwcap %lu %s"
+msgstr ""
+
+#: elf/ldconfig.c:1094
+msgid "need absolute file name for configuration file when using -r"
+msgstr ""
+
+#: elf/ldconfig.c:1131
+#, c-format
+msgid "%s:%u: cannot read directory %s"
+msgstr ""
+
+#: elf/ldconfig.c:1171
+#, c-format
+msgid "relative path `%s' used to build cache"
+msgstr ""
+
+#: elf/ldconfig.c:1199
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1066
+#: elf/ldconfig.c:1241
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr ""
-#: elf/readlib.c:99
+#: elf/readlib.c:98
#, c-format
msgid "Cannot fstat file %s.\n"
msgstr ""
#: elf/readlib.c:109
#, c-format
+msgid "File %s is empty, not checked."
+msgstr ""
+
+#: elf/readlib.c:115
+#, c-format
msgid "File %s is too small, not checked."
msgstr ""
-#: elf/readlib.c:118
+#: elf/readlib.c:125
#, c-format
msgid "Cannot mmap file %s.\n"
msgstr ""
-#: elf/readlib.c:158
+#: elf/readlib.c:163
#, c-format
msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
msgstr ""
-#: elf/sprof.c:72
+#: elf/sprof.c:77
msgid "Output selection:"
msgstr ""
-#: elf/sprof.c:74
+#: elf/sprof.c:79
msgid "print list of count paths and their number of use"
msgstr ""
-#: elf/sprof.c:76
+#: elf/sprof.c:81
msgid "generate flat profile with counts and ticks"
msgstr ""
-#: elf/sprof.c:77
+#: elf/sprof.c:82
msgid "generate call graph"
msgstr ""
-#: elf/sprof.c:84
-msgid "Read and display shared object profiling data"
+#: elf/sprof.c:89
+msgid ""
+"Read and display shared object profiling data.\013For bug reporting "
+"instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
msgstr ""
-#: elf/sprof.c:87
+#: elf/sprof.c:94
msgid "SHOBJ [PROFDATA]"
msgstr ""
-#: elf/sprof.c:398
+#: elf/sprof.c:400
#, c-format
msgid "failed to load shared object `%s'"
msgstr ""
-#: elf/sprof.c:407
+#: elf/sprof.c:409
msgid "cannot create internal descriptors"
msgstr ""
-#: elf/sprof.c:526
+#: elf/sprof.c:528
#, c-format
msgid "Reopening shared object `%s' failed"
msgstr ""
-#: elf/sprof.c:534
-msgid "mapping of section headers failed"
+#: elf/sprof.c:535 elf/sprof.c:629
+msgid "reading of section headers failed"
msgstr ""
-#: elf/sprof.c:544
-msgid "mapping of section header string table failed"
+#: elf/sprof.c:543 elf/sprof.c:637
+msgid "reading of section header string table failed"
msgstr ""
-#: elf/sprof.c:564
+#: elf/sprof.c:569
+#, c-format
+msgid "*** Cannot read debuginfo file name: %m\n"
+msgstr ""
+
+#: elf/sprof.c:589
+msgid "cannot determine file name"
+msgstr ""
+
+#: elf/sprof.c:622
+msgid "reading of ELF header failed"
+msgstr ""
+
+#: elf/sprof.c:658
#, c-format
msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
msgstr ""
-#: elf/sprof.c:594
+#: elf/sprof.c:688
msgid "failed to load symbol data"
msgstr ""
-#: elf/sprof.c:664
+#: elf/sprof.c:755
msgid "cannot load profiling data"
msgstr ""
-#: elf/sprof.c:673
+#: elf/sprof.c:764
msgid "while stat'ing profiling data file"
msgstr ""
-#: elf/sprof.c:681
+#: elf/sprof.c:772
#, c-format
msgid "profiling data file `%s' does not match shared object `%s'"
msgstr ""
-#: elf/sprof.c:692
+#: elf/sprof.c:783
msgid "failed to mmap the profiling data file"
msgstr ""
-#: elf/sprof.c:700
+#: elf/sprof.c:791
msgid "error while closing the profiling data file"
msgstr ""
-#: elf/sprof.c:709 elf/sprof.c:779
+#: elf/sprof.c:800 elf/sprof.c:870
msgid "cannot create internal descriptor"
msgstr ""
-#: elf/sprof.c:755
+#: elf/sprof.c:846
#, c-format
msgid "`%s' is no correct profile data file for `%s'"
msgstr ""
-#: elf/sprof.c:936 elf/sprof.c:988
+#: elf/sprof.c:1027 elf/sprof.c:1085
msgid "cannot allocate symbol data"
msgstr ""
diff --git a/posix/Makefile b/posix/Makefile
index f08ec9f1f8..f6b6aefbe0 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -86,7 +86,8 @@ tests := tstgetopt testfnm runtests runptests \
tst-getaddrinfo2 bug-glob1 bug-glob2 tst-sysconf \
tst-execvp1 tst-execvp2 tst-execlp1 tst-execlp2 \
tst-execv1 tst-execv2 tst-execl1 tst-execl2 \
- tst-execve1 tst-execve2 tst-execle1 tst-execle2
+ tst-execve1 tst-execve2 tst-execle1 tst-execle2 \
+ tst-execvp3
xtests := bug-ga2
ifeq (yes,$(build-shared))
test-srcs := globtest
@@ -191,6 +192,7 @@ tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata
tst-pcre-ARGS = PCRE.tests
tst-boost-ARGS = BOOST.tests
bug-glob1-ARGS = "$(objpfx)"
+tst-execvp3-ARGS = --test-dir=$(objpfx)
testcases.h: TESTS TESTS2C.sed
sed -f TESTS2C.sed < $< > $@T
diff --git a/posix/execvp.c b/posix/execvp.c
index 0abfa7007c..6f4e4b8566 100644
--- a/posix/execvp.c
+++ b/posix/execvp.c
@@ -133,14 +133,14 @@ execvp (file, argv)
else
startp = (char *) memcpy (name - (p - path), path, p - path);
- /* Try to execute this name. If it works, execv will not return. */
+ /* Try to execute this name. If it works, execve will not return. */
__execve (startp, argv, __environ);
if (errno == ENOEXEC)
{
if (script_argv == NULL)
{
- script_argv = allocate_scripts_argv (file, argv);
+ script_argv = allocate_scripts_argv (startp, argv);
if (script_argv == NULL)
{
/* A possible EACCES error is not as important as
diff --git a/posix/tst-execvp3.c b/posix/tst-execvp3.c
new file mode 100644
index 0000000000..5ebc87952d
--- /dev/null
+++ b/posix/tst-execvp3.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+
+static void do_prepare (void);
+#define PREPARE(argc, argv) do_prepare ()
+static int do_test (void);
+#define TEST_FUNCTION do_test ()
+
+#include "../test-skeleton.c"
+
+
+static char *fname;
+
+static void
+do_prepare (void)
+{
+ int fd = create_temp_file ("testscript", &fname);
+ dprintf (fd, "echo foo\n");
+ fchmod (fd, 0700);
+ close (fd);
+}
+
+
+static int
+do_test (void)
+{
+ if (setenv ("PATH", test_dir, 1) != 0)
+ {
+ puts ("setenv failed");
+ return 1;
+ }
+
+ char *argv[] = { fname, NULL };
+ execvp (basename (fname), argv);
+
+ /* If we come here, the execvp call failed. */
+ return 1;
+}
diff --git a/scripts/config.guess b/scripts/config.guess
index 61f2e4c608..9c292ea45b 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2003-10-20'
+timestamp='2005-03-24'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -197,15 +197,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit 0 ;;
+ amd64:OpenBSD:*:*)
+ echo x86_64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ cats:OpenBSD:*:*)
+ echo arm-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
+ luna88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
@@ -221,28 +227,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
mvmeppc:OpenBSD:*:*)
echo powerpc-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- pegasos:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
sgi:OpenBSD:*:*)
- echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ echo mips64-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
+ case $UNAME_RELEASE in
+ *4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
@@ -280,14 +291,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
+ # A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha*:OpenVMS:*:*)
- echo alpha-hp-vms
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
@@ -310,6 +319,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:OS/390:*:*)
echo i370-ibm-openedition
exit 0 ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit 0 ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit 0 ;;
@@ -333,7 +345,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7 && exit 0 ;;
esac ;;
@@ -405,6 +417,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit 0 ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
@@ -740,7 +755,7 @@ EOF
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
*:UNICOS/mp:*:*)
- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
@@ -763,21 +778,7 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
- # FreeBSD's kernel, but not the complete OS.
- case ${LIBC} in gnu) kernel_only='k' ;; esac
- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -803,6 +804,9 @@ EOF
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit 0 ;;
+ amd64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit 0 ;;
@@ -826,9 +830,18 @@ EOF
cris:Linux:*:*)
echo cris-axis-linux-gnu
exit 0 ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit 0 ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit 0 ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
@@ -1069,9 +1082,9 @@ EOF
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit 0 ;;
- M68*:*:R3V[567]*:*)
+ M68*:*:R3V[5678]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1169,9 +1182,10 @@ EOF
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Darwin:*:*)
- case `uname -p` in
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
*86) UNAME_PROCESSOR=i686 ;;
- powerpc) UNAME_PROCESSOR=powerpc ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit 0 ;;
@@ -1186,7 +1200,10 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit 0 ;;
- NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*)
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit 0 ;;
*:NonStop-UX:*:*)
@@ -1230,8 +1247,18 @@ EOF
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
exit 0 ;;
- *:DRAGONFLY:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE}
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms && exit 0 ;;
+ I*) echo ia64-dec-vms && exit 0 ;;
+ V*) echo vax-dec-vms && exit 0 ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
exit 0 ;;
esac
@@ -1392,7 +1419,9 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/scripts/config.sub b/scripts/config.sub
index fac5195126..d8fd2f8fa2 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2003-11-20'
+timestamp='2005-02-10'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -70,7 +70,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -145,7 +145,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
+ -apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
@@ -237,7 +237,7 @@ case $basic_machine in
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m68000 | m68k | m88k | mcore \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -262,12 +262,12 @@ case $basic_machine in
| pyramid \
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xscale | xstormy16 | xtensa \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
@@ -300,7 +300,7 @@ case $basic_machine in
| avr-* \
| bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | cydra-* \
+ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
@@ -308,9 +308,9 @@ case $basic_machine in
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
- | m32r-* \
+ | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -326,8 +326,9 @@ case $basic_machine in
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
+ | mmix-* \
| msp430-* \
- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
@@ -336,14 +337,14 @@ case $basic_machine in
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
- | xtensa-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
;;
@@ -363,6 +364,9 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
@@ -380,6 +384,9 @@ case $basic_machine in
amd64)
basic_machine=x86_64-pc
;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
amdahl)
basic_machine=580-amdahl
os=-sysv
@@ -439,12 +446,27 @@ case $basic_machine in
basic_machine=j90-cray
os=-unicos
;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
crds | unos)
basic_machine=m68k-crds
;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
da30 | da30-*)
basic_machine=m68k-da30
;;
@@ -467,6 +489,10 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
@@ -645,10 +671,6 @@ case $basic_machine in
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
monitor)
basic_machine=m68k-rom68k
os=-coff
@@ -729,10 +751,6 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
- nv1)
- basic_machine=nv1-cray
- os=-unicosmp
- ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -1015,6 +1033,10 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
@@ -1045,6 +1067,9 @@ case $basic_machine in
romp)
basic_machine=romp-ibm
;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
rs6000)
basic_machine=rs6000-ibm
;;
@@ -1067,7 +1092,7 @@ case $basic_machine in
sh64)
basic_machine=sh64-unknown
;;
- sparc | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
@@ -1140,8 +1165,9 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
@@ -1279,6 +1305,9 @@ case $os in
-kaos*)
os=-kaos
;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
-none)
;;
*)
@@ -1359,6 +1388,9 @@ case $basic_machine in
*-ibm)
os=-aix
;;
+ *-knuth)
+ os=-mmixware
+ ;;
*-wec)
os=-proelf
;;
diff --git a/stdlib/random_r.c b/stdlib/random_r.c
index c85fd5eeef..5e564a737d 100644
--- a/stdlib/random_r.c
+++ b/stdlib/random_r.c
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 1995, 2005 Free Software Foundation
The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -236,23 +236,20 @@ __initstate_r (seed, arg_state, n, buf)
size_t n;
struct random_data *buf;
{
- int type;
- int degree;
- int separation;
- int32_t *state;
- int old_type;
- int32_t *old_state;
-
if (buf == NULL)
goto fail;
- old_type = buf->rand_type;
- old_state = buf->state;
- if (old_type == TYPE_0)
- old_state[-1] = TYPE_0;
- else
- old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
+ int32_t *old_state = buf->state;
+ if (old_state != NULL)
+ {
+ int old_type = buf->rand_type;
+ if (old_type == TYPE_0)
+ old_state[-1] = TYPE_0;
+ else
+ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
+ }
+ int type;
if (n >= BREAK_3)
type = n < BREAK_4 ? TYPE_3 : TYPE_4;
else if (n < BREAK_1)
@@ -267,13 +264,13 @@ __initstate_r (seed, arg_state, n, buf)
else
type = n < BREAK_2 ? TYPE_1 : TYPE_2;
- degree = random_poly_info.degrees[type];
- separation = random_poly_info.seps[type];
+ int degree = random_poly_info.degrees[type];
+ int separation = random_poly_info.seps[type];
buf->rand_type = type;
buf->rand_sep = separation;
buf->rand_deg = degree;
- state = &((int32_t *) arg_state)[1]; /* First location. */
+ int32_t *state = &((int32_t *) arg_state)[1]; /* First location. */
/* Must set END_PTR before srandom. */
buf->end_ptr = &state[degree];
diff --git a/string/Makefile b/string/Makefile
index 66469f586e..2f37d29526 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-1999,2000,2001,2002 Free Software Foundation, Inc.
+# Copyright (C) 1991-1999,2000,2001,2002, 2005 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
@@ -52,7 +52,7 @@ strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \
tests := tester inl-tester noinl-tester testcopy test-ffs \
tst-strlen stratcliff tst-svc tst-inlcall \
bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \
- tst-strtok tst-strxfrm bug-strcoll1 \
+ tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \
$(addprefix test-,$(strop-tests))
distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h
diff --git a/string/tst-strfry.c b/string/tst-strfry.c
new file mode 100644
index 0000000000..2b40a39b13
--- /dev/null
+++ b/string/tst-strfry.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+ char str[] = "this is a test";
+
+ strfry (str);
+
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index 34498a880c..1fae16efce 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Generic Unix version.
- Copyright (C) 1995-1998, 2000-2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-1998, 2000-2003, 2004, 2005 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
@@ -39,6 +39,12 @@
#include <hp-timing.h>
#include <tls.h>
+#ifdef _DL_FIRST_PLATFORM
+# define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT)
+#else
+# define _DL_FIRST_EXTRA _DL_HWCAP_COUNT
+#endif
+
extern char **_environ attribute_hidden;
extern void _end attribute_hidden;
@@ -149,7 +155,7 @@ _dl_sysdep_start (void **start_argptr,
GLRO(dl_platform) = av->a_un.a_ptr;
break;
case AT_HWCAP:
- GLRO(dl_hwcap) = av->a_un.a_val;
+ GLRO(dl_hwcap) = (unsigned long int) av->a_un.a_val;
break;
case AT_CLKTCK:
GLRO(dl_clktck) = av->a_un.a_val;
@@ -172,10 +178,6 @@ _dl_sysdep_start (void **start_argptr,
#endif
}
-#ifdef DL_SYSDEP_OSCHECK
- DL_SYSDEP_OSCHECK (dl_fatal);
-#endif
-
#ifndef HAVE_AUX_SECURE
if (seen != -1)
{
@@ -343,7 +345,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
size_t *max_capstrlen)
{
/* Determine how many important bits are set. */
- unsigned long int masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask);
+ uint64_t masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask);
size_t cnt = platform != NULL;
size_t n, m;
size_t total;
@@ -353,18 +355,64 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
char *cp;
/* Count the number of bits set in the masked value. */
- for (n = 0; (~((1UL << n) - 1) & masked) != 0; ++n)
- if ((masked & (1UL << n)) != 0)
+ for (n = 0; (~((1ULL << n) - 1) & masked) != 0; ++n)
+ if ((masked & (1ULL << n)) != 0)
++cnt;
+#if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
+ /* The system-supplied DSO can contain a note of type 2, vendor "GNU".
+ This gives us a list of names to treat as fake hwcap bits. */
+
+ const char *dsocaps = NULL;
+ size_t dsocapslen = 0;
+ if (GLRO(dl_sysinfo_map) != NULL)
+ {
+ const ElfW(Phdr) *const phdr = GLRO(dl_sysinfo_map)->l_phdr;
+ const ElfW(Word) phnum = GLRO(dl_sysinfo_map)->l_phnum;
+ for (uint_fast16_t i = 0; i < phnum; ++i)
+ if (phdr[i].p_type == PT_NOTE)
+ {
+ const ElfW(Addr) start = (phdr[i].p_vaddr
+ + GLRO(dl_sysinfo_map)->l_addr);
+ const struct
+ {
+ ElfW(Word) vendorlen;
+ ElfW(Word) datalen;
+ ElfW(Word) type;
+ } *note = (const void *) start;
+ while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz)
+ {
+#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word)))
+ if (note->type == 2
+ && note->vendorlen == sizeof "GNU"
+ && !memcmp ((note + 1), "GNU", sizeof "GNU")
+ && note->datalen > 2 * sizeof (ElfW(Word)) + 2)
+ {
+ const ElfW(Word) *p = ((const void *) (note + 1)
+ + ROUND (sizeof "GNU"));
+ cnt += *p++;
+ ++p; /* Skip mask word. */
+ dsocaps = (const char *) p;
+ dsocapslen = note->datalen - sizeof *p;
+ break;
+ }
+ note = ((const void *) (note + 1)
+ + ROUND (note->vendorlen) + ROUND (note->datalen));
+ }
+ if (dsocaps != NULL)
+ break;
+ }
+ }
+#endif
+
#ifdef USE_TLS
/* For TLS enabled builds always add 'tls'. */
++cnt;
#else
if (cnt == 0)
{
- /* If we have platform name and no important capability we only have
- the base directory to search. */
+ /* If we no have platform name and no important capability we only
+ have the base directory to search. */
result = (struct r_strlenpair *) malloc (sizeof (*result));
if (result == NULL)
goto no_memory;
@@ -380,12 +428,26 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
/* Create temporary data structure to generate result table. */
temp = (struct r_strlenpair *) alloca (cnt * sizeof (*temp));
m = 0;
+#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
+ if (dsocaps != NULL)
+ {
+ GLRO(dl_hwcap) |= ((uint64_t) ((const ElfW(Word) *) dsocaps)[-1]
+ << _DL_FIRST_EXTRA);
+ for (const char *p = dsocaps;
+ p < dsocaps + dsocapslen;
+ p += temp[m++].len + 1)
+ {
+ temp[m].str = p;
+ temp[m].len = strlen (p);
+ }
+ }
+#endif
for (n = 0; masked != 0; ++n)
- if ((masked & (1UL << n)) != 0)
+ if ((masked & (1ULL << n)) != 0)
{
temp[m].str = _dl_hwcap_string (n);
temp[m].len = strlen (temp[m].str);
- masked ^= 1UL << n;
+ masked ^= 1ULL << n;
++m;
}
if (platform != NULL)
@@ -503,8 +565,8 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
++rp;
}
- /* The second have starts right after the first part of the string of
- corresponding entry in the first half. */
+ /* The second half starts right after the first part of the string of
+ the corresponding entry in the first half. */
do
{
rp[0].str = rp[-(1 << (cnt - 1))].str + temp[cnt - 1].len + 1;
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index e1a934aeda..2e3254356b 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -199,6 +199,10 @@ struct La_mips_32_regs;
struct La_mips_32_retval;
struct La_mips_64_regs;
struct La_mips_64_retval;
+struct La_sparc32_regs;
+struct La_sparc32_retval;
+struct La_sparc64_regs;
+struct La_sparc64_retval;
struct audit_ifaces
{
@@ -270,6 +274,16 @@ struct audit_ifaces
const struct La_mips_64_regs *,
unsigned int *, const char *name,
long int *framesizep);
+ Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,
+ uintptr_t *, uintptr_t *,
+ const struct La_sparc32_regs *,
+ unsigned int *, const char *name,
+ long int *framesizep);
+ Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int,
+ uintptr_t *, uintptr_t *,
+ const struct La_sparc64_regs *,
+ unsigned int *, const char *name,
+ long int *framesizep);
};
union
{
@@ -328,6 +342,16 @@ struct audit_ifaces
const struct La_mips_64_regs *,
struct La_mips_64_retval *,
const char *);
+ unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int,
+ uintptr_t *, uintptr_t *,
+ const struct La_sparc32_regs *,
+ struct La_sparc32_retval *,
+ const char *);
+ unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int,
+ uintptr_t *, uintptr_t *,
+ const struct La_sparc32_regs *,
+ struct La_sparc32_retval *,
+ const char *);
};
unsigned int (*objclose) (uintptr_t *);
@@ -587,10 +611,10 @@ struct rtld_global_ro
EXTERN int _dl_correct_cache_id;
/* Mask for hardware capabilities that are available. */
- EXTERN unsigned long int _dl_hwcap;
+ EXTERN uint64_t _dl_hwcap;
/* Mask for important hardware capabilities we honour. */
- EXTERN unsigned long int _dl_hwcap_mask;
+ EXTERN uint64_t _dl_hwcap_mask;
/* Get architecture specific definitions. */
#define PROCINFO_DECL
@@ -636,6 +660,10 @@ struct rtld_global_ro
/* The vsyscall page is a virtual DSO pre-mapped by the kernel.
This points to its ELF header. */
EXTERN const ElfW(Ehdr) *_dl_sysinfo_dso;
+
+ /* At startup time we set up the normal DSO data structure for it,
+ and this points to it. */
+ EXTERN struct link_map *_dl_sysinfo_map;
#endif
#ifdef SHARED
diff --git a/sysdeps/ia64/fpu/e_acosh.S b/sysdeps/ia64/fpu/e_acosh.S
index b55a6ab43c..fb25fa0053 100644
--- a/sysdeps/ia64/fpu/e_acosh.S
+++ b/sysdeps/ia64/fpu/e_acosh.S
@@ -1,7 +1,7 @@
.file "acosh.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -45,6 +45,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
// 05/14/03 Improved performance, set denormal flag for unorms >= 1.0
+// 03/31/05 Reformatted delimiters between data tables
//
// API
// ==============================================================
diff --git a/sysdeps/ia64/fpu/e_acoshl.S b/sysdeps/ia64/fpu/e_acoshl.S
index 5eb2b3466b..42e1f394ef 100644
--- a/sysdeps/ia64/fpu/e_acoshl.S
+++ b/sysdeps/ia64/fpu/e_acoshl.S
@@ -1,7 +1,7 @@
.file "acoshl.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -47,6 +47,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 08/14/02 Changed mli templates to mlx
// 02/06/03 Reorganized data tables
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
@@ -258,6 +259,7 @@ data8 0x9E34AF4D372861E0, 0x3FFB // .77248925727776366270605984806795850504e-1
data8 0xF3DC502AEE14C4AE, 0x3FA6 // .3077953476682583606615438814166025592e-26
LOCAL_OBJECT_END(Poly_P)
+//
LOCAL_OBJECT_START(Poly_Q)
data8 0xF76E3FD3C7680357, 0x3FF1 // .11798413344703621030038719253730708525e-3
data8 0xD107D2E7273263AE, 0x3FF7 // .63791065024872525660782716786703188820e-2
diff --git a/sysdeps/ia64/fpu/e_atanh.S b/sysdeps/ia64/fpu/e_atanh.S
index 5ae96dc90b..4ae5ee6926 100644
--- a/sysdeps/ia64/fpu/e_atanh.S
+++ b/sysdeps/ia64/fpu/e_atanh.S
@@ -1,7 +1,7 @@
.file "atanh.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -44,6 +44,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
// 05/26/03 Improved performance, fixed to handle unorms
+// 03/31/05 Reformatted delimiters between data tables
//
// API
// ==============================================================
diff --git a/sysdeps/ia64/fpu/e_cosh.S b/sysdeps/ia64/fpu/e_cosh.S
index 38bd80e146..885456b389 100644
--- a/sysdeps/ia64/fpu/e_cosh.S
+++ b/sysdeps/ia64/fpu/e_cosh.S
@@ -1,7 +1,7 @@
.file "cosh.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 05/07/01 Reworked to improve speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/15/02 Improved speed with new algorithm
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_coshf.S b/sysdeps/ia64/fpu/e_coshf.S
index 6d30064256..97cb4e1771 100644
--- a/sysdeps/ia64/fpu/e_coshf.S
+++ b/sysdeps/ia64/fpu/e_coshf.S
@@ -1,7 +1,7 @@
.file "coshf.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -47,6 +47,7 @@
// 05/07/01 Reworked to improve speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/15/02 Improved algorithm based on expf
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//*********************************************************************
diff --git a/sysdeps/ia64/fpu/e_exp.S b/sysdeps/ia64/fpu/e_exp.S
index d22fd18b77..fcc247fb1a 100644
--- a/sysdeps/ia64/fpu/e_exp.S
+++ b/sysdeps/ia64/fpu/e_exp.S
@@ -1,7 +1,7 @@
.file "exp.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -53,6 +53,7 @@
// 09/07/02 Force inexact flag
// 11/15/02 Split underflow path into zero/nonzero; eliminated fma in main path
// 05/30/03 Set inexact flag on unmasked overflow/underflow
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_exp10.S b/sysdeps/ia64/fpu/e_exp10.S
index 6bfc21879d..eafa59dd7c 100644
--- a/sysdeps/ia64/fpu/e_exp10.S
+++ b/sysdeps/ia64/fpu/e_exp10.S
@@ -1,7 +1,7 @@
.file "exp10.s"
-// Copyright (c) 2000 - 2004, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -44,6 +44,7 @@
// 09/06/02 Improved performance; no inexact flags on exact cases
// 01/29/03 Added missing } to bundle templates
// 12/16/04 Call error handling on underflow.
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -203,7 +204,6 @@ data8 0x8245cd9ab2cec048, 0x825c62a423d13f0c
data8 0x8272fb97b2a5894c, 0x828998760d01faf3
data8 0x82a0393fe0bb0ca8, 0x82b6ddf5dbc35906
//
-//
// 2^{0.b1 b2 b3 b4 b5}
data8 0x8000000000000000, 0x82cd8698ac2ba1d7
data8 0x85aac367cc487b14, 0x88980e8092da8527
diff --git a/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S
index 46615e98ff..fa54e9039f 100644
--- a/sysdeps/ia64/fpu/e_exp10f.S
+++ b/sysdeps/ia64/fpu/e_exp10f.S
@@ -1,7 +1,7 @@
.file "exp10f.s"
-// Copyright (c) 2000 - 2004, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -44,6 +44,7 @@
// 09/06/02 Improved performance and accuracy; no inexact flags on exact cases
// 01/29/03 Added missing } to bundle templates
// 12/16/04 Call error handling on underflow.
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -193,7 +194,6 @@ data8 0x8245cd9ab2cec048, 0x825c62a423d13f0c
data8 0x8272fb97b2a5894c, 0x828998760d01faf3
data8 0x82a0393fe0bb0ca8, 0x82b6ddf5dbc35906
//
-//
// 2^{0.b1 b2 b3 b4 b5}
data8 0x8000000000000000, 0x82cd8698ac2ba1d7
data8 0x85aac367cc487b14, 0x88980e8092da8527
diff --git a/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S
index 46fca2d3cd..54f652e384 100644
--- a/sysdeps/ia64/fpu/e_exp2.S
+++ b/sysdeps/ia64/fpu/e_exp2.S
@@ -1,7 +1,7 @@
.file "exp2.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -43,6 +43,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 09/05/02 Improved performance
// 01/17/03 Fixed to call error support when x=1024.0
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -204,7 +205,6 @@ data8 0x8245cd9ab2cec048, 0x825c62a423d13f0c
data8 0x8272fb97b2a5894c, 0x828998760d01faf3
data8 0x82a0393fe0bb0ca8, 0x82b6ddf5dbc35906
//
-//
// 2^{0.b1 b2 b3 b4 b5}
data8 0x8000000000000000, 0x82cd8698ac2ba1d7
data8 0x85aac367cc487b14, 0x88980e8092da8527
diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S
index 8ee600c554..36354ae3bd 100644
--- a/sysdeps/ia64/fpu/e_exp2f.S
+++ b/sysdeps/ia64/fpu/e_exp2f.S
@@ -1,7 +1,7 @@
.file "exp2f.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -43,6 +43,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 09/05/02 Improved performance and accuracy
// 01/17/03 Fixed to call error support when x=128.0
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -198,7 +199,6 @@ data8 0x8245cd9ab2cec048, 0x825c62a423d13f0c
data8 0x8272fb97b2a5894c, 0x828998760d01faf3
data8 0x82a0393fe0bb0ca8, 0x82b6ddf5dbc35906
//
-//
// 2^{0.b1 b2 b3 b4 b5}
data8 0x8000000000000000, 0x82cd8698ac2ba1d7
data8 0x85aac367cc487b14, 0x88980e8092da8527
diff --git a/sysdeps/ia64/fpu/e_expf.S b/sysdeps/ia64/fpu/e_expf.S
index 3dc0ba9bf6..6fe0a833e2 100644
--- a/sysdeps/ia64/fpu/e_expf.S
+++ b/sysdeps/ia64/fpu/e_expf.S
@@ -1,7 +1,7 @@
.file "expf.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -53,6 +53,7 @@
// corrected
// 11/15/02 Improved performance on Itanium 2, added possible over/under paths
// 05/30/03 Set inexact flag on unmasked overflow/underflow
+// 03/31/05 Reformatted delimiters between data tables
//
//
// API
diff --git a/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S
index 7b277f8a40..c644c6f8f7 100644
--- a/sysdeps/ia64/fpu/e_log.S
+++ b/sysdeps/ia64/fpu/e_log.S
@@ -1,7 +1,7 @@
.file "log.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -51,6 +51,7 @@
// 05/23/02 Modified algorithm. Now only one polynomial is used
// for |x-1| >= 1/256 and for |x-1| < 1/256
// 12/11/02 Improved performance for Itanium 2
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_logf.S b/sysdeps/ia64/fpu/e_logf.S
index 186edab501..3d11a296cc 100644
--- a/sysdeps/ia64/fpu/e_logf.S
+++ b/sysdeps/ia64/fpu/e_logf.S
@@ -1,7 +1,7 @@
.file "logf.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -47,6 +47,7 @@
// 05/23/02 Modified algorithm. Now only one polynomial is used
// for |x-1| >= 1/256 and for |x-1| < 1/256
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_pow.S b/sysdeps/ia64/fpu/e_pow.S
index 86005f2f59..89449c79ec 100644
--- a/sysdeps/ia64/fpu/e_pow.S
+++ b/sysdeps/ia64/fpu/e_pow.S
@@ -1,7 +1,7 @@
.file "pow.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -66,6 +66,7 @@
// 08/29/02 Improved Itanium 2 performance
// 09/21/02 Added branch for |y*log(x)|<2^-11 to fix monotonicity problems.
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S
index 4c839cba71..1406a94b65 100644
--- a/sysdeps/ia64/fpu/e_powf.S
+++ b/sysdeps/ia64/fpu/e_powf.S
@@ -1,7 +1,7 @@
.file "powf.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -66,6 +66,7 @@
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 10/09/03 Modified algorithm to improve performance, reduce table size, and
// fix boundary case powf(2.0,-150.0)
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_sinh.S b/sysdeps/ia64/fpu/e_sinh.S
index 5910d4aef9..f60907b72b 100644
--- a/sysdeps/ia64/fpu/e_sinh.S
+++ b/sysdeps/ia64/fpu/e_sinh.S
@@ -1,7 +1,7 @@
.file "sinh.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 05/02/01 Reworked to improve speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/20/02 Improved speed with new algorithm
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/e_sinhf.S b/sysdeps/ia64/fpu/e_sinhf.S
index d01d830734..6d808cb478 100644
--- a/sysdeps/ia64/fpu/e_sinhf.S
+++ b/sysdeps/ia64/fpu/e_sinhf.S
@@ -1,7 +1,7 @@
.file "sinhf.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 05/02/01 Reworked to improve speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/20/02 Improved algorithm based on expf
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//*********************************************************************
diff --git a/sysdeps/ia64/fpu/libm_error.c b/sysdeps/ia64/fpu/libm_error.c
index a7f9daefa0..24fb406a53 100644
--- a/sysdeps/ia64/fpu/libm_error.c
+++ b/sysdeps/ia64/fpu/libm_error.c
@@ -1,7 +1,7 @@
/* file: libm_error.c */
-// Copyright (c) 2000 - 2004, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -85,6 +85,7 @@
// nextafter_underflow, nexttoward_overflow, nexttoward_underflow.
// Added ISOC to set errno for nextafter and nexttoward underflow.
// 12/15/04: Corrected POSIX behavior for exp, exp2, and exp10 underflow.
+// 03/31/05: Added missing ALIGNIT statement to 6 float constants.
#include <errno.h>
#include <stdio.h>
@@ -163,11 +164,17 @@ struct exceptionl excl;
#define STATIC static
+ALIGNIT
STATIC const char float_inf[4] = {0x00,0x00,0x80,0x7F};
+ALIGNIT
STATIC const char float_huge[4] = {0xFF,0xFF,0x7F,0x7F};
+ALIGNIT
STATIC const char float_zero[4] = {0x00,0x00,0x00,0x00};
+ALIGNIT
STATIC const char float_neg_inf[4] = {0x00,0x00,0x80,0xFF};
+ALIGNIT
STATIC const char float_neg_huge[4] = {0xFF,0xFF,0x7F,0xFF};
+ALIGNIT
STATIC const char float_neg_zero[4] = {0x00,0x00,0x00,0x80};
ALIGNIT
STATIC const char double_inf[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F};
diff --git a/sysdeps/ia64/fpu/libm_lgamma.S b/sysdeps/ia64/fpu/libm_lgamma.S
index 0df1e4bc58..6096319ba5 100644
--- a/sysdeps/ia64/fpu/libm_lgamma.S
+++ b/sysdeps/ia64/fpu/libm_lgamma.S
@@ -1,7 +1,7 @@
.file "libm_lgamma.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 10/21/02 Now it returns SIGN(GAMMA(x))=-1 for negative zero
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 07/22/03 Reformatted some data tables
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
@@ -630,7 +631,7 @@ data8 0x7F5754D9278B51A8 // overflow boundary (first inf result)
data8 0xAAAAAAAAAAAAAAAB,0x3FFB // W2=B2/2=1/12
//
data8 0x3FBC756AC654273B // Q8
-data8 0xBFC001A42489AB4D // Q7 ;
+data8 0xBFC001A42489AB4D // Q7
data8 0x3FC99999999A169B // Q4
data8 0xBFD00000000019AC // Q3
data8 0x3FC2492479AA0DF8 // Q6
diff --git a/sysdeps/ia64/fpu/libm_lgammaf.S b/sysdeps/ia64/fpu/libm_lgammaf.S
index 04dcd63fa7..4bd92c3b26 100644
--- a/sysdeps/ia64/fpu/libm_lgammaf.S
+++ b/sysdeps/ia64/fpu/libm_lgammaf.S
@@ -1,7 +1,7 @@
.file "libm_lgammaf.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 10/21/02 Now it returns SIGN(GAMMA(x))=-1 for negative zero
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 07/22/03 Reformatted some data tables
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
diff --git a/sysdeps/ia64/fpu/libm_lgammal.S b/sysdeps/ia64/fpu/libm_lgammal.S
index 844c517785..407b3452cd 100644
--- a/sysdeps/ia64/fpu/libm_lgammal.S
+++ b/sysdeps/ia64/fpu/libm_lgammal.S
@@ -1,7 +1,7 @@
.file "libm_lgammal.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 09/26/02 Algorithm description improved
// 10/21/02 Now it returns SIGN(GAMMA(x))=-1 for negative zero
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
diff --git a/sysdeps/ia64/fpu/libm_sincos.S b/sysdeps/ia64/fpu/libm_sincos.S
index 3475b6281b..7fda2afac4 100644
--- a/sysdeps/ia64/fpu/libm_sincos.S
+++ b/sysdeps/ia64/fpu/libm_sincos.S
@@ -1,7 +1,7 @@
.file "libm_sincos.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 08/08/03 Improved performance
// 02/11/04 cis is moved to the separate file.
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/libm_sincosf.S b/sysdeps/ia64/fpu/libm_sincosf.S
index fb12007af8..cf23356ef4 100644
--- a/sysdeps/ia64/fpu/libm_sincosf.S
+++ b/sysdeps/ia64/fpu/libm_sincosf.S
@@ -1,7 +1,7 @@
.file "libm_sincosf.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 09/05/02 Work range is widened by reduction strengthen (2 parts of Pi/16)
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 02/11/04 cisf is moved to the separate file.
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_asinh.S b/sysdeps/ia64/fpu/s_asinh.S
index ab01f4f570..7eba39eb40 100644
--- a/sysdeps/ia64/fpu/s_asinh.S
+++ b/sysdeps/ia64/fpu/s_asinh.S
@@ -1,7 +1,7 @@
.file "asinh.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
// 05/21/03 Improved performance, fixed to handle unorms
+// 03/31/05 Reformatted delimiters between data tables
//
// API
// ==============================================================
diff --git a/sysdeps/ia64/fpu/s_atanl.S b/sysdeps/ia64/fpu/s_atanl.S
index 721a38c108..1a23611307 100644
--- a/sysdeps/ia64/fpu/s_atanl.S
+++ b/sysdeps/ia64/fpu/s_atanl.S
@@ -1,7 +1,7 @@
.file "atanl.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -51,6 +51,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/10/03 Reordered header: .section, .global, .proc, .align;
// used data8 for long double table values
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
diff --git a/sysdeps/ia64/fpu/s_cos.S b/sysdeps/ia64/fpu/s_cos.S
index bf8997b4f5..fc121fce19 100644
--- a/sysdeps/ia64/fpu/s_cos.S
+++ b/sysdeps/ia64/fpu/s_cos.S
@@ -1,7 +1,7 @@
.file "sincos.s"
-// Copyright (c) 2000 - 2004, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -53,6 +53,7 @@
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 08/08/03 Improved performance
// 10/28/04 Saved sincos_r_sincos to avoid clobber by dynamic loader
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
@@ -300,7 +301,6 @@ data8 0xd4db3148750d181a , 0x00003ffe // cos( 3 pi/16) C3
data8 0xb504f333f9de6484 , 0x00003ffe // sin( 4 pi/16) S4
data8 0xb504f333f9de6484 , 0x00003ffe // cos( 4 pi/16) C4
//
-//
data8 0xd4db3148750d181a , 0x00003ffe // sin( 5 pi/16) C3
data8 0x8e39d9cd73464364 , 0x00003ffe // cos( 5 pi/16) S3
//
@@ -313,7 +313,6 @@ data8 0xc7c5c1e34d3055b3 , 0x00003ffc // cos( 7 pi/16) S1
data8 0x8000000000000000 , 0x00003fff // sin( 8 pi/16) C0
data8 0x0000000000000000 , 0x00000000 // cos( 8 pi/16) S0
//
-//
data8 0xfb14be7fbae58157 , 0x00003ffe // sin( 9 pi/16) C1
data8 0xc7c5c1e34d3055b3 , 0x0000bffc // cos( 9 pi/16) -S1
//
@@ -326,7 +325,6 @@ data8 0x8e39d9cd73464364 , 0x0000bffe // cos(11 pi/16) -S3
data8 0xb504f333f9de6484 , 0x00003ffe // sin(12 pi/16) S4
data8 0xb504f333f9de6484 , 0x0000bffe // cos(12 pi/16) -S4
//
-//
data8 0x8e39d9cd73464364 , 0x00003ffe // sin(13 pi/16) S3
data8 0xd4db3148750d181a , 0x0000bffe // cos(13 pi/16) -C3
//
@@ -339,7 +337,6 @@ data8 0xfb14be7fbae58157 , 0x0000bffe // cos(15 pi/16) -C1
data8 0x0000000000000000 , 0x00000000 // sin(16 pi/16) S0
data8 0x8000000000000000 , 0x0000bfff // cos(16 pi/16) -C0
//
-//
data8 0xc7c5c1e34d3055b3 , 0x0000bffc // sin(17 pi/16) -S1
data8 0xfb14be7fbae58157 , 0x0000bffe // cos(17 pi/16) -C1
//
@@ -352,7 +349,6 @@ data8 0xd4db3148750d181a , 0x0000bffe // cos(19 pi/16) -C3
data8 0xb504f333f9de6484 , 0x0000bffe // sin(20 pi/16) -S4
data8 0xb504f333f9de6484 , 0x0000bffe // cos(20 pi/16) -S4
//
-//
data8 0xd4db3148750d181a , 0x0000bffe // sin(21 pi/16) -C3
data8 0x8e39d9cd73464364 , 0x0000bffe // cos(21 pi/16) -S3
//
@@ -365,7 +361,6 @@ data8 0xc7c5c1e34d3055b3 , 0x0000bffc // cos(23 pi/16) -S1
data8 0x8000000000000000 , 0x0000bfff // sin(24 pi/16) -C0
data8 0x0000000000000000 , 0x00000000 // cos(24 pi/16) S0
//
-//
data8 0xfb14be7fbae58157 , 0x0000bffe // sin(25 pi/16) -C1
data8 0xc7c5c1e34d3055b3 , 0x00003ffc // cos(25 pi/16) S1
//
@@ -378,7 +373,6 @@ data8 0x8e39d9cd73464364 , 0x00003ffe // cos(27 pi/16) S3
data8 0xb504f333f9de6484 , 0x0000bffe // sin(28 pi/16) -S4
data8 0xb504f333f9de6484 , 0x00003ffe // cos(28 pi/16) S4
//
-//
data8 0x8e39d9cd73464364 , 0x0000bffe // sin(29 pi/16) -S3
data8 0xd4db3148750d181a , 0x00003ffe // cos(29 pi/16) C3
//
diff --git a/sysdeps/ia64/fpu/s_cosf.S b/sysdeps/ia64/fpu/s_cosf.S
index a588938eed..bcdf1b0c02 100644
--- a/sysdeps/ia64/fpu/s_cosf.S
+++ b/sysdeps/ia64/fpu/s_cosf.S
@@ -1,7 +1,7 @@
.file "sincosf.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -51,6 +51,7 @@
// 06/03/02 Insure inexact flag set for large arg result
// 09/05/02 Single precision version is made using double precision one as base
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_erf.S b/sysdeps/ia64/fpu/s_erf.S
index 3abcd3e1ab..7174a197fb 100644
--- a/sysdeps/ia64/fpu/s_erf.S
+++ b/sysdeps/ia64/fpu/s_erf.S
@@ -1,7 +1,7 @@
.file "erf.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -42,6 +42,7 @@
// 08/15/01 Initial version
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_erfc.S b/sysdeps/ia64/fpu/s_erfc.S
index 3b1b583803..addfef44c2 100644
--- a/sysdeps/ia64/fpu/s_erfc.S
+++ b/sysdeps/ia64/fpu/s_erfc.S
@@ -1,7 +1,7 @@
.file "erfc.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -42,6 +42,7 @@
// 11/12/01 Initial version
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_erfcf.S b/sysdeps/ia64/fpu/s_erfcf.S
index e09ce98ebd..2e3eeab3c7 100644
--- a/sysdeps/ia64/fpu/s_erfcf.S
+++ b/sysdeps/ia64/fpu/s_erfcf.S
@@ -1,7 +1,7 @@
.file "erfcf.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -42,6 +42,7 @@
// 01/17/02 Initial version
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_erfcl.S b/sysdeps/ia64/fpu/s_erfcl.S
index 11f66bcb8a..266e1e1c91 100644
--- a/sysdeps/ia64/fpu/s_erfcl.S
+++ b/sysdeps/ia64/fpu/s_erfcl.S
@@ -1,7 +1,7 @@
.file "erfcl.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -44,6 +44,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/10/03 Reordered header: .section, .global, .proc, .align;
// used data8 for long double table values
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -763,7 +764,7 @@ LOCAL_OBJECT_END(erfc_s_table)
LOCAL_OBJECT_START(erfc_Q_table)
// Q(z)= (P(z)- S)/S
-
+//
// Pol0
data8 0x98325D50F9DC3499, 0x0000BFAA //A0 = +3.07358861423101280650e-26L
data8 0xED35081A2494DDD9, 0x00003FF8 //A1 = +1.44779757616302832466e-02L
diff --git a/sysdeps/ia64/fpu/s_erff.S b/sysdeps/ia64/fpu/s_erff.S
index 204446fbdf..ed0aaac488 100644
--- a/sysdeps/ia64/fpu/s_erff.S
+++ b/sysdeps/ia64/fpu/s_erff.S
@@ -1,7 +1,7 @@
.file "erff.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -42,6 +42,7 @@
// 08/14/01 Initial version
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/06/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_expm1.S b/sysdeps/ia64/fpu/s_expm1.S
index 5d1fd8c538..09a22bbbdd 100644
--- a/sysdeps/ia64/fpu/s_expm1.S
+++ b/sysdeps/ia64/fpu/s_expm1.S
@@ -1,7 +1,7 @@
.file "exp_m1.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 07/07/01 Improved speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/20/02 Improved speed, algorithm based on exp
+// 03/31/05 Reformatted delimiters between data tables
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_expm1f.S b/sysdeps/ia64/fpu/s_expm1f.S
index 311be06343..8996977ddb 100644
--- a/sysdeps/ia64/fpu/s_expm1f.S
+++ b/sysdeps/ia64/fpu/s_expm1f.S
@@ -1,7 +1,7 @@
.file "expf_m1.s"
-// Copyright (c) 2000 - 2002, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 07/07/01 Improved speed of all paths
// 05/20/02 Cleaned up namespace and sf0 syntax
// 11/20/02 Improved speed, algorithm based on expf
+// 03/31/05 Reformatted delimiters between data tables
//
//
// API
diff --git a/sysdeps/ia64/fpu/s_log1p.S b/sysdeps/ia64/fpu/s_log1p.S
index ccf0c310ad..e1e6dcc80b 100644
--- a/sysdeps/ia64/fpu/s_log1p.S
+++ b/sysdeps/ia64/fpu/s_log1p.S
@@ -1,7 +1,7 @@
.file "log1p.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -48,6 +48,7 @@
// 10/02/02 Improved performance by basing on log algorithm
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 04/18/03 Eliminate possible WAW dependency warning
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_tanf.S b/sysdeps/ia64/fpu/s_tanf.S
index 98e3f76f17..193d7568a5 100644
--- a/sysdeps/ia64/fpu/s_tanf.S
+++ b/sysdeps/ia64/fpu/s_tanf.S
@@ -1,7 +1,7 @@
.file "tancotf.s"
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (c) 2000 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2000 by the Intel Numerics Group, Intel Corporation
@@ -47,6 +47,7 @@
// 11/25/02 Added explicit completer on fnorm
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 04/17/03 Eliminated redundant stop bits
+// 03/31/05 Reformatted delimiters between data tables
//
// APIs
//==============================================================
diff --git a/sysdeps/ia64/fpu/s_tanh.S b/sysdeps/ia64/fpu/s_tanh.S
index 5e0c407c78..9adbc9c461 100644
--- a/sysdeps/ia64/fpu/s_tanh.S
+++ b/sysdeps/ia64/fpu/s_tanh.S
@@ -1,7 +1,7 @@
.file "tanh.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -45,6 +45,7 @@
// 05/20/02 Cleaned up namespace and sf0 syntax
// 08/14/02 Changed mli templates to mlx
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================================
@@ -364,7 +365,6 @@ data8 0xA23A087F96846951, 0x0000BFE0 //A6
data8 0xF358D8A7FC012D5D, 0x00003FDE //A5
data8 0x98176E2309B7C73A, 0x0000BFDD //A4
//
-//
// Coefficients ##16..19 ("tail" coefficient tables)
// Polynomial coefficients for the tanh(x), 0.25 <= |x| < 0.5
data8 0x838F209ABB9BA7B3, 0x0000BFF7 //A3
@@ -427,7 +427,6 @@ data8 0xE42327B9B0D7202F, 0x0000BFD8 //A2
data8 0xE42327BB13076BD6, 0x00003FD5 //A1
data8 0xFFFFFFFFFFF8DEE7, 0x00003FFE //A0
//
-//
// Polynomial coefficients for the tanh(x), 0.0 <= |x| < 0.25
// ('tanh_near_zero' path)
data8 0xBF2BA5D26E479D0C //A9
@@ -440,7 +439,6 @@ data8 0x3F6D6D36C3D5B7A1 //A6
data8 0xBFABA1BA1BA19D32 //A3
data8 0x3FC1111111111108 //A2
//
-//
// 1.0 - 2^(-63)
// ('tanh_saturation' path)
data8 0xFFFFFFFFFFFFFFFF, 0x00003FFE
diff --git a/sysdeps/ia64/fpu/s_tanhf.S b/sysdeps/ia64/fpu/s_tanhf.S
index 344ca4ec5a..e4e91cfe63 100644
--- a/sysdeps/ia64/fpu/s_tanhf.S
+++ b/sysdeps/ia64/fpu/s_tanhf.S
@@ -1,7 +1,7 @@
.file "tanhf.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -42,6 +42,7 @@
// 05/30/01 Initial version
// 05/20/02 Cleaned up namespace and sf0 syntax
// 02/10/03 Reordered header: .section, .global, .proc, .align
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
@@ -224,7 +225,6 @@ data8 0xBFD555551E8245B7 // A0
data8 0x3FC110E63F52E689 // A1
data8 0xBFAB8CD6A5B7BAFA // A2
data8 0x3F945D467FCEB553 // A3
-//
// Polynomial coefficients for the tanh(x), 0.3125 <= |x| < 0.5
data8 0xBE3DCC92FCAECBB6 // A0
data8 0x3FF0000043B7D267 // A1
diff --git a/sysdeps/ia64/fpu/w_tgamma.S b/sysdeps/ia64/fpu/w_tgamma.S
index e55e4e396b..24f3d11840 100644
--- a/sysdeps/ia64/fpu/w_tgamma.S
+++ b/sysdeps/ia64/fpu/w_tgamma.S
@@ -1,7 +1,7 @@
.file "tgamma.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -45,6 +45,7 @@
// 02/10/03 Reordered header: .section, .global, .proc, .align
// 04/04/03 Changed error codes for overflow and negative integers
// 04/10/03 Changed code for overflow near zero handling
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
@@ -538,7 +539,6 @@ data8 0x8646E78AABEF0255,0x00003FFF // C20
data8 0xA32AEDB62E304345,0x00003FFF // C30
data8 0xCE83E40280EE7DF0,0x00003FFF // C40
//
-//
//[2; 3]
data8 0xC44FB47E90584083,0x00004001 // C50
data8 0xE863EE77E1C45981,0x00004001 // C60
diff --git a/sysdeps/ia64/fpu/w_tgammaf.S b/sysdeps/ia64/fpu/w_tgammaf.S
index 64421ab4ee..dda0d0fe9d 100644
--- a/sysdeps/ia64/fpu/w_tgammaf.S
+++ b/sysdeps/ia64/fpu/w_tgammaf.S
@@ -1,7 +1,7 @@
.file "tgammaf.s"
-// Copyright (c) 2001 - 2003, Intel Corporation
+// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
@@ -46,6 +46,7 @@
// 04/04/03 Changed error codes for overflow and negative integers
// 04/10/03 Changed code for overflow near zero handling
// 12/16/03 Fixed parameter passing to/from error handling routine
+// 03/31/05 Reformatted delimiters between data tables
//
//*********************************************************************
//
diff --git a/sysdeps/ia64/fpu/w_tgammal.S b/sysdeps/ia64/fpu/w_tgammal.S
index d801ba0886..f64e213266 100644
--- a/sysdeps/ia64/fpu/w_tgammal.S
+++ b/sysdeps/ia64/fpu/w_tgammal.S
@@ -1,7 +1,7 @@
.file "tgammal.s"
-// Copyright (c) 2002 - 2003, Intel Corporation
+// Copyright (c) 2002 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2002 by the Intel Numerics Group, Intel Corporation
@@ -45,6 +45,7 @@
// used data8 for long double table values
// 03/17/03 Moved tgammal_libm_err label into .proc region
// 04/10/03 Changed error codes for overflow and negative integers
+// 03/31/05 Reformatted delimiters between data tables
//
// API
//==============================================================
diff --git a/sysdeps/sh/elf/configure b/sysdeps/sh/elf/configure
index df45f2cde2..d38b0ece5d 100644
--- a/sysdeps/sh/elf/configure
+++ b/sysdeps/sh/elf/configure
@@ -5,7 +5,7 @@ if test "$usetls" != no; then
# Check for support of thread-local storage handling in assembler and
# linker.
echo "$as_me:$LINENO: checking for SH TLS support" >&5
-echo $ECHO_N "checking for sh TLS support... $ECHO_C" >&6
+echo $ECHO_N "checking for SH TLS support... $ECHO_C" >&6
if test "${libc_cv_sh_tls+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
diff --git a/sysdeps/sparc/bits/link.h b/sysdeps/sparc/bits/link.h
new file mode 100644
index 0000000000..9b8434f56f
--- /dev/null
+++ b/sysdeps/sparc/bits/link.h
@@ -0,0 +1,100 @@
+/* Machine-specific audit interfaces for dynamic linker. SPARC version.
+ Copyright (C) 2005 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. */
+
+#ifndef _LINK_H
+# error "Never include <bits/link.h> directly; use <link.h> instead."
+#endif
+
+#if __WORDSIZE == 32
+
+typedef struct La_sparc32_regs
+{
+ uint32_t lr_lreg[8]; /* %l0 through %l7 */
+ uint32_t lr_reg[6]; /* %o0 through %o5 */
+ uint32_t lr_sp; /* %o6 */
+ uint32_t lr_ra; /* %o7 */
+ uint32_t lr_struct; /* Pass-by-reference struct pointer */
+} La_sparc32_regs;
+
+typedef struct La_sparc32_retval
+{
+ uint32_t lrv_reg[2]; /* %o0 and %o1 */
+ double lrv_fpreg[2]; /* %f0 and %f2 */
+} La_sparc32_retval;
+
+#else
+
+typedef struct La_sparc64_regs
+{
+ uint64_t lr_lreg[8]; /* %l0 through %l7 */
+ uint64_t lr_reg[6]; /* %o0 through %o5 */
+ uint64_t lr_sp; /* %o6 */
+ uint64_t lr_ra; /* %o7 */
+ double lr_fpreg[16]; /* %f0 through %f30 */
+} La_sparc64_regs;
+
+typedef struct La_sparc64_retval
+{
+ uint64_t lrv_reg[4]; /* %o0 through %o3 */
+ double lrv_fprev[4]; /* %f0 through %f8 */
+} La_sparc64_retval;
+
+#endif
+
+__BEGIN_DECLS
+
+#if __WORDSIZE == 32
+
+extern Elf32_Addr la_sparc32_gnu_pltenter (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_sparc32_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_sparc32_gnu_pltexit (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_sparc32_regs *__inregs,
+ La_sparc32_retval *__outregs,
+ const char *symname);
+
+#else
+
+extern Elf64_Addr la_sparc64_gnu_pltenter (Elf64_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_sparc64_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_sparc64_gnu_pltexit (Elf64_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_sparc64_regs *__inregs,
+ La_sparc64_retval *__outregs,
+ const char *symname);
+
+#endif
+
+__END_DECLS
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index d0af232d48..4ea122c46b 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -131,30 +131,31 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
bits of %g1 with an offset into the .rela.plt section and jump to
the beginning of the PLT. */
plt = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- if (! profile)
- rfunc = (Elf32_Addr) &_dl_runtime_resolve;
- else
+ if (__builtin_expect(profile, 0))
{
rfunc = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GLRO(dl_profile), l))
+ if (GLRO(dl_profile) != NULL
+ && _dl_name_match_p (GLRO(dl_profile), l))
GL(dl_profile_map) = l;
}
+ else
+ {
+ rfunc = (Elf32_Addr) &_dl_runtime_resolve;
+ }
/* The beginning of the PLT does:
- save %sp, -64, %sp
- pltpc: call _dl_runtime_resolve
- nop
+ sethi %hi(_dl_runtime_{resolve,profile}), %g2
+ pltpc: jmpl %g2 + %lo(_dl_runtime_{resolve,profile}), %g2
+ nop
.word MAP
- This saves the register window containing the arguments, and the
- PC value (pltpc) implicitly saved in %o7 by the call points near the
+ The PC value (pltpc) saved in %g2 by the jmpl points near the
location where we store the link_map pointer for this object. */
- plt[0] = OPCODE_SAVE_SP;
- /* Construct PC-relative word address. */
- plt[1] = OPCODE_CALL | ((rfunc - (Elf32_Addr) &plt[1]) >> 2);
+ plt[0] = 0x05000000 | ((rfunc >> 10) & 0x003fffff);
+ plt[1] = 0x85c0a000 | (rfunc & 0x3ff);
plt[2] = OPCODE_NOP; /* Fill call delay slot. */
plt[3] = (Elf32_Addr) l;
if (__builtin_expect (l->l_info[VALIDX(DT_GNU_PRELINKED)] != NULL, 0)
@@ -190,39 +191,6 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
return lazy;
}
-/* This code is used in dl-runtime.c to call the `fixup' function
- and then redirect to the address it returns. */
-#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
- asm ( "\
- .text\n\
- .globl " #tramp_name "\n\
- .type " #tramp_name ", @function\n\
- .align 32\n\
-" #tramp_name ":\n\
- /* Set up the arguments to fixup --\n\
- %o0 = link_map out of plt0\n\
- %o1 = offset of reloc entry\n\
- %o2 = return address */\n\
- ld [%o7 + 8], %o0\n\
- srl %g1, 10, %o1\n\
- mov %i7, %o2\n\
- call " #fixup_name "\n\
- sub %o1, 4*12, %o1\n\
- jmp %o0\n\
- restore\n\
- .size " #tramp_name ", . - " #tramp_name "\n\
- .previous")
-
-#ifndef PROF
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
- TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \
- TRAMPOLINE_TEMPLATE (_dl_runtime_profile, profile_fixup);
-#else
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
- TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \
- TRAMPOLINE_TEMPLATE (_dl_runtime_profile, fixup);
-#endif
-
/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
PLT entries should not be allowed to define the value.
ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
@@ -406,7 +374,10 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
#endif /* dl_machine_h */
-#ifdef RESOLVE
+#define ARCH_LA_PLTENTER sparc32_gnu_pltenter
+#define ARCH_LA_PLTEXIT sparc32_gnu_pltexit
+
+#ifdef RESOLVE_MAP
/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */
@@ -418,7 +389,10 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
void *const reloc_addr_arg)
{
Elf32_Addr *const reloc_addr = reloc_addr_arg;
+ const Elf32_Sym *const refsym = sym;
+ Elf32_Addr value;
const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
+ struct link_map *sym_map = NULL;
#if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
/* This is defined in rtld.c, but nowhere in the static libc.a; make the
@@ -429,6 +403,9 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
weak_extern (_dl_rtld_map);
#endif
+ if (__builtin_expect (r_type == R_SPARC_NONE, 0))
+ return;
+
#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
if (__builtin_expect (r_type == R_SPARC_RELATIVE, 0))
{
@@ -436,161 +413,143 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
if (map != &_dl_rtld_map) /* Already done in rtld itself. */
# endif
*reloc_addr += map->l_addr + reloc->r_addend;
+ return;
}
- else
-#endif
- {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- const Elf32_Sym *const refsym = sym;
-# ifdef USE_TLS
- struct link_map *sym_map;
-# endif
#endif
- Elf32_Addr value;
+
#ifndef RESOLVE_CONFLICT_FIND_MAP
- if (sym->st_shndx != SHN_UNDEF &&
- ELF32_ST_BIND (sym->st_info) == STB_LOCAL)
- {
- value = map->l_addr;
-# if defined USE_TLS && !defined RTLD_BOOTSTRAP
- sym_map = map;
-# endif
- }
- else
- {
-# if defined USE_TLS && !defined RTLD_BOOTSTRAP
- sym_map = RESOLVE_MAP (&sym, version, r_type);
- value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value;
-# else
- value = RESOLVE (&sym, version, r_type);
- if (sym)
- value += sym->st_value;
-# endif
- }
+ if (__builtin_expect (ELF32_ST_BIND (sym->st_info) == STB_LOCAL, 0)
+ && sym->st_shndx != SHN_UNDEF)
+ {
+ value = map->l_addr;
+ }
+ else
+ {
+ sym_map = RESOLVE_MAP (&sym, version, r_type);
+ value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
+ }
#else
- value = 0;
+ value = 0;
#endif
- value += reloc->r_addend; /* Assume copy relocs have zero addend. */
- switch (r_type)
- {
+ value += reloc->r_addend; /* Assume copy relocs have zero addend. */
+
+ switch (r_type)
+ {
#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- case R_SPARC_COPY:
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be
- found. */
- break;
- if (sym->st_size > refsym->st_size
- || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
- {
- const char *strtab;
+ case R_SPARC_COPY:
+ if (sym == NULL)
+ /* This can happen in trace mode if an object could not be
+ found. */
+ break;
+ if (sym->st_size > refsym->st_size
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
+ {
+ const char *strtab;
- strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- _dl_error_printf ("\
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_error_printf ("\
%s: Symbol `%s' has different size in shared object, consider re-linking\n",
- rtld_progname ?: "<program name unknown>",
- strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ }
+ memcpy (reloc_addr_arg, (void *) value,
+ MIN (sym->st_size, refsym->st_size));
+ break;
#endif
- case R_SPARC_GLOB_DAT:
- case R_SPARC_32:
- *reloc_addr = value;
- break;
- case R_SPARC_JMP_SLOT:
- /* At this point we don't need to bother with thread safety,
- so we can optimize the first instruction of .plt out. */
- sparc_fixup_plt (reloc, reloc_addr, value, 0);
- break;
+ case R_SPARC_GLOB_DAT:
+ case R_SPARC_32:
+ *reloc_addr = value;
+ break;
+ case R_SPARC_JMP_SLOT:
+ /* At this point we don't need to bother with thread safety,
+ so we can optimize the first instruction of .plt out. */
+ sparc_fixup_plt (reloc, reloc_addr, value, 0);
+ break;
#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) \
&& !defined RESOLVE_CONFLICT_FIND_MAP
- case R_SPARC_TLS_DTPMOD32:
- /* Get the information from the link map returned by the
- resolv function. */
- if (sym_map != NULL)
- *reloc_addr = sym_map->l_tls_modid;
- break;
- case R_SPARC_TLS_DTPOFF32:
- /* During relocation all TLS symbols are defined and used.
- Therefore the offset is already correct. */
- *reloc_addr = (sym == NULL ? 0 : sym->st_value) + reloc->r_addend;
- break;
- case R_SPARC_TLS_TPOFF32:
- /* The offset is negative, forward from the thread pointer. */
- /* We know the offset of object the symbol is contained in.
- It is a negative value which will be added to the
- thread pointer. */
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- *reloc_addr = sym->st_value - sym_map->l_tls_offset
- + reloc->r_addend;
- }
- break;
+ case R_SPARC_TLS_DTPMOD32:
+ /* Get the information from the link map returned by the
+ resolv function. */
+ if (sym_map != NULL)
+ *reloc_addr = sym_map->l_tls_modid;
+ break;
+ case R_SPARC_TLS_DTPOFF32:
+ /* During relocation all TLS symbols are defined and used.
+ Therefore the offset is already correct. */
+ *reloc_addr = (sym == NULL ? 0 : sym->st_value) + reloc->r_addend;
+ break;
+ case R_SPARC_TLS_TPOFF32:
+ /* The offset is negative, forward from the thread pointer. */
+ /* We know the offset of object the symbol is contained in.
+ It is a negative value which will be added to the
+ thread pointer. */
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ *reloc_addr = sym->st_value - sym_map->l_tls_offset
+ + reloc->r_addend;
+ }
+ break;
# ifndef RTLD_BOOTSTRAP
- case R_SPARC_TLS_LE_HIX22:
- case R_SPARC_TLS_LE_LOX10:
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- value = sym->st_value - sym_map->l_tls_offset
- + reloc->r_addend;
- if (r_type == R_SPARC_TLS_LE_HIX22)
- *reloc_addr = (*reloc_addr & 0xffc00000) | ((~value) >> 10);
- else
- *reloc_addr = (*reloc_addr & 0xffffe000) | (value & 0x3ff)
- | 0x1c00;
- }
- break;
+ case R_SPARC_TLS_LE_HIX22:
+ case R_SPARC_TLS_LE_LOX10:
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ value = sym->st_value - sym_map->l_tls_offset
+ + reloc->r_addend;
+ if (r_type == R_SPARC_TLS_LE_HIX22)
+ *reloc_addr = (*reloc_addr & 0xffc00000) | ((~value) >> 10);
+ else
+ *reloc_addr = (*reloc_addr & 0xffffe000) | (value & 0x3ff)
+ | 0x1c00;
+ }
+ break;
# endif
#endif
#ifndef RTLD_BOOTSTRAP
- case R_SPARC_8:
- *(char *) reloc_addr = value;
- break;
- case R_SPARC_16:
- *(short *) reloc_addr = value;
- break;
- case R_SPARC_DISP8:
- *(char *) reloc_addr = (value - (Elf32_Addr) reloc_addr);
- break;
- case R_SPARC_DISP16:
- *(short *) reloc_addr = (value - (Elf32_Addr) reloc_addr);
- break;
- case R_SPARC_DISP32:
- *reloc_addr = (value - (Elf32_Addr) reloc_addr);
- break;
- case R_SPARC_LO10:
- *reloc_addr = (*reloc_addr & ~0x3ff) | (value & 0x3ff);
- break;
- case R_SPARC_WDISP30:
- *reloc_addr = ((*reloc_addr & 0xc0000000)
- | ((value - (unsigned int) reloc_addr) >> 2));
- break;
- case R_SPARC_HI22:
- *reloc_addr = (*reloc_addr & 0xffc00000) | (value >> 10);
- break;
- case R_SPARC_UA16:
- ((unsigned char *) reloc_addr_arg) [0] = value >> 8;
- ((unsigned char *) reloc_addr_arg) [1] = value;
- break;
- case R_SPARC_UA32:
- ((unsigned char *) reloc_addr_arg) [0] = value >> 24;
- ((unsigned char *) reloc_addr_arg) [1] = value >> 16;
- ((unsigned char *) reloc_addr_arg) [2] = value >> 8;
- ((unsigned char *) reloc_addr_arg) [3] = value;
- break;
+ case R_SPARC_8:
+ *(char *) reloc_addr = value;
+ break;
+ case R_SPARC_16:
+ *(short *) reloc_addr = value;
+ break;
+ case R_SPARC_DISP8:
+ *(char *) reloc_addr = (value - (Elf32_Addr) reloc_addr);
+ break;
+ case R_SPARC_DISP16:
+ *(short *) reloc_addr = (value - (Elf32_Addr) reloc_addr);
+ break;
+ case R_SPARC_DISP32:
+ *reloc_addr = (value - (Elf32_Addr) reloc_addr);
+ break;
+ case R_SPARC_LO10:
+ *reloc_addr = (*reloc_addr & ~0x3ff) | (value & 0x3ff);
+ break;
+ case R_SPARC_WDISP30:
+ *reloc_addr = ((*reloc_addr & 0xc0000000)
+ | ((value - (unsigned int) reloc_addr) >> 2));
+ break;
+ case R_SPARC_HI22:
+ *reloc_addr = (*reloc_addr & 0xffc00000) | (value >> 10);
+ break;
+ case R_SPARC_UA16:
+ ((unsigned char *) reloc_addr_arg) [0] = value >> 8;
+ ((unsigned char *) reloc_addr_arg) [1] = value;
+ break;
+ case R_SPARC_UA32:
+ ((unsigned char *) reloc_addr_arg) [0] = value >> 24;
+ ((unsigned char *) reloc_addr_arg) [1] = value >> 16;
+ ((unsigned char *) reloc_addr_arg) [2] = value >> 8;
+ ((unsigned char *) reloc_addr_arg) [3] = value;
+ break;
#endif
- case R_SPARC_NONE: /* Alright, Wilbur. */
- break;
#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
+ default:
+ _dl_reloc_bad_type (map, r_type, 0);
+ break;
#endif
- }
}
}
@@ -620,4 +579,4 @@ elf_machine_lazy_rel (struct link_map *map,
}
}
-#endif /* RESOLVE */
+#endif /* RESOLVE_MAP */
diff --git a/sysdeps/sparc/sparc32/dl-trampoline.S b/sysdeps/sparc/sparc32/dl-trampoline.S
new file mode 100644
index 0000000000..4b7853029a
--- /dev/null
+++ b/sysdeps/sparc/sparc32/dl-trampoline.S
@@ -0,0 +1,155 @@
+/* PLT trampolines. Sparc 32-bit version.
+ Copyright (C) 2005 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 <sysdep.h>
+
+ .text
+ .align 32
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g2: callers PC, which is PLT0 + 4, and we store the
+ * link map at PLT0 + 12, therefore we add 8 to get
+ * the address of the link map
+ */
+ .globl _dl_runtime_resolve
+ .type _dl_runtime_resolve, @function
+_dl_runtime_resolve:
+ save %sp, -104, %sp
+ ld [%g2 + 8], %o0
+ srl %g1, 10, %o1
+ call _dl_fixup
+ sub %o1, 4*12, %o1
+ jmp %o0
+ restore
+ .size _dl_runtime_resolve, .-_dl_runtime_resolve
+
+ /* For the profiling cases we pass in our stack frame
+ * as the base of the La_sparc64_regs, so it looks
+ * like:
+ * %l0 %sp
+ * ...
+ * %l7 %sp + (7 * 8)
+ * %i0 %sp + (8 * 8)
+ * ...
+ * %i7 %sp + (15 * 8)
+ * %f0 %sp + (16 * 8)
+ * %f16 %sp + (31 * 8)
+ * framesize %sp + (32 * 8)
+ */
+
+ .globl _dl_profile_save_regs
+ .type _dl_profile_save_regs, @function
+_dl_profile_save_regs:
+ std %l0, [%sp + ( 0 * 8)]
+ std %l2, [%sp + ( 1 * 8)]
+ std %l4, [%sp + ( 2 * 8)]
+ std %l6, [%sp + ( 3 * 8)]
+ std %i0, [%sp + ( 4 * 8)]
+ std %i2, [%sp + ( 5 * 8)]
+ std %i4, [%sp + ( 6 * 8)]
+ std %i6, [%sp + ( 7 * 8)]
+ ld [%sp + (8 * 8)], %l4
+ retl
+ st %l4, [%sp + (8 * 8)]
+ .size _dl_profile_save_regs, .-_dl_profile_save_regs
+
+ /* If we are going to call pltexit, then we must replicate
+ * the caller's stack frame.
+ * %o0: PLT resolved function address
+ */
+ .globl _dl_profile_invoke
+ .type _dl_profile_invoke, @function
+_dl_profile_invoke:
+ sub %sp, %l0, %sp
+1:
+ srl %l0, 3, %l7
+ mov %o0, %l1
+ mov %i0, %o0
+ mov %i1, %o1
+ mov %i2, %o2
+ mov %i3, %o3
+ mov %i4, %o4
+ mov %i5, %o5
+ mov %fp, %l2
+ mov %sp, %l3
+1: ldd [%l2], %g2
+ add %l2, 0x8, %l2
+ subcc %l7, 1, %l7
+ std %g2, [%l3]
+ bne 1b
+ add %l3, 0x8, %l3
+
+ jmpl %l1, %o7
+ nop
+
+ std %o0, [%sp + ( 9 * 8)]
+ std %f0, [%sp + (10 * 8)]
+
+ mov %l5, %o0
+ mov %l6, %o1
+ add %sp, %l0, %o2
+ call _dl_call_pltexit
+ add %sp, (16 * 8), %o3
+
+ ldd [%sp + (9 * 8)], %i0
+
+ jmpl %i7 + 8, %g0
+ restore
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g2: callers PC, which is PLT0 + 4, and we store the
+ * link map at PLT0 + 12, therefore we add 8 to get
+ * the address of the link map
+ */
+ .align 32
+ .globl _dl_runtime_profile
+ .type _dl_runtime_profile, @function
+_dl_runtime_profile:
+ cmp %fp, 0
+ be,a 1f
+ mov 104, %g3
+ sub %fp, %sp, %g3
+1: save %sp, -104, %sp
+ ld [%g2 + 8], %o0
+ srl %g1, 10, %o1
+ mov %i7, %o2
+ sub %o1, 4*12, %o1
+
+ mov %g3, %l0
+ mov %o0, %l5
+ mov %o1, %l6
+
+ call _dl_profile_save_regs
+ nop
+
+ mov %sp, %o3
+ call _dl_profile_fixup
+ add %sp, (9 * 8), %o4
+
+ ld [%sp + (9 * 8)], %o1
+ cmp %o1, 0
+ bgeu 1f
+ nop
+
+ call _dl_profile_invoke
+ nop
+
+1: jmp %o0
+ restore
+ .size _dl_runtime_profile, .-_dl_runtime_profile
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 72b88e235c..ce9b8c9dd9 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -18,6 +18,9 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#ifndef dl_machine_h
+#define dl_machine_h
+
#define ELF_MACHINE_NAME "sparc64"
#include <string.h>
@@ -88,7 +91,7 @@ elf_machine_load_address (void)
/* We have 4 cases to handle. And we code different code sequences
for each one. I love V9 code models... */
-static inline void
+static inline void __attribute__ ((always_inline))
sparc64_fixup_plt (struct link_map *map, const Elf64_Rela *reloc,
Elf64_Addr *reloc_addr, Elf64_Addr value,
Elf64_Addr high, int t)
@@ -212,7 +215,7 @@ sparc64_fixup_plt (struct link_map *map, const Elf64_Rela *reloc,
}
}
-static inline Elf64_Addr
+static inline Elf64_Addr __attribute__ ((always_inline))
elf_machine_fixup_plt (struct link_map *map, lookup_t t,
const Elf64_Rela *reloc,
Elf64_Addr *reloc_addr, Elf64_Addr value)
@@ -233,239 +236,21 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
return value;
}
-#ifdef RESOLVE
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- MAP is the object containing the reloc. */
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
- const Elf64_Sym *sym, const struct r_found_version *version,
- void *const reloc_addr_arg)
-{
- Elf64_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned long int r_type = ELF64_R_TYPE_ID (reloc->r_info);
-
-#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
- if (__builtin_expect (r_type == R_SPARC_RELATIVE, 0))
- *reloc_addr = map->l_addr + reloc->r_addend;
-# ifndef RTLD_BOOTSTRAP
- else if (r_type == R_SPARC_NONE) /* Who is Wilbur? */
- return;
-# endif
- else
-#endif
- {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- const Elf64_Sym *const refsym = sym;
-#endif
- Elf64_Addr value;
-#ifndef RESOLVE_CONFLICT_FIND_MAP
- if (sym->st_shndx != SHN_UNDEF &&
- ELF64_ST_BIND (sym->st_info) == STB_LOCAL)
- value = map->l_addr;
- else
- {
- value = RESOLVE (&sym, version, r_type);
- if (sym)
- value += sym->st_value;
- }
-#else
- value = 0;
-#endif
- value += reloc->r_addend; /* Assume copy relocs have zero addend. */
-
- switch (r_type)
- {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- case R_SPARC_COPY:
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be
- found. */
- break;
- if (sym->st_size > refsym->st_size
- || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
- {
- const char *strtab;
-
- strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
- rtld_progname ?: "<program name unknown>",
- strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
-#endif
- case R_SPARC_64:
- case R_SPARC_GLOB_DAT:
- *reloc_addr = value;
- break;
-#ifndef RTLD_BOOTSTRAP
- case R_SPARC_8:
- *(char *) reloc_addr = value;
- break;
- case R_SPARC_16:
- *(short *) reloc_addr = value;
- break;
- case R_SPARC_32:
- *(unsigned int *) reloc_addr = value;
- break;
- case R_SPARC_DISP8:
- *(char *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
- break;
- case R_SPARC_DISP16:
- *(short *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
- break;
- case R_SPARC_DISP32:
- *(unsigned int *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
- break;
- case R_SPARC_WDISP30:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xc0000000) |
- ((value - (Elf64_Addr) reloc_addr) >> 2));
- break;
-
- /* MEDLOW code model relocs */
- case R_SPARC_LO10:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- (value & 0x3ff));
- break;
- case R_SPARC_HI22:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- (value >> 10));
- break;
- case R_SPARC_OLO10:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x1fff) |
- (((value & 0x3ff) + ELF64_R_TYPE_DATA (reloc->r_info)) & 0x1fff));
- break;
-
- /* MEDMID code model relocs */
- case R_SPARC_H44:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- (value >> 22));
- break;
- case R_SPARC_M44:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- ((value >> 12) & 0x3ff));
- break;
- case R_SPARC_L44:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0xfff) |
- (value & 0xfff));
- break;
-
- /* MEDANY code model relocs */
- case R_SPARC_HH22:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- (value >> 42));
- break;
- case R_SPARC_HM10:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- ((value >> 32) & 0x3ff));
- break;
- case R_SPARC_LM22:
- *(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- ((value >> 10) & 0x003fffff));
- break;
-#endif
- case R_SPARC_JMP_SLOT:
-#ifdef RESOLVE_CONFLICT_FIND_MAP
- /* R_SPARC_JMP_SLOT conflicts against .plt[32768+]
- relocs should be turned into R_SPARC_64 relocs
- in .gnu.conflict section.
- r_addend non-zero does not mean it is a .plt[32768+]
- reloc, instead it is the actual address of the function
- to call. */
- sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
-#else
- sparc64_fixup_plt (map, reloc, reloc_addr, value,
- reloc->r_addend, 0);
-#endif
- break;
-#ifndef RTLD_BOOTSTRAP
- case R_SPARC_UA16:
- ((unsigned char *) reloc_addr_arg) [0] = value >> 8;
- ((unsigned char *) reloc_addr_arg) [1] = value;
- break;
- case R_SPARC_UA32:
- ((unsigned char *) reloc_addr_arg) [0] = value >> 24;
- ((unsigned char *) reloc_addr_arg) [1] = value >> 16;
- ((unsigned char *) reloc_addr_arg) [2] = value >> 8;
- ((unsigned char *) reloc_addr_arg) [3] = value;
- break;
- case R_SPARC_UA64:
- if (! ((long) reloc_addr_arg & 3))
- {
- /* Common in .eh_frame */
- ((unsigned int *) reloc_addr_arg) [0] = value >> 32;
- ((unsigned int *) reloc_addr_arg) [1] = value;
- break;
- }
- ((unsigned char *) reloc_addr_arg) [0] = value >> 56;
- ((unsigned char *) reloc_addr_arg) [1] = value >> 48;
- ((unsigned char *) reloc_addr_arg) [2] = value >> 40;
- ((unsigned char *) reloc_addr_arg) [3] = value >> 32;
- ((unsigned char *) reloc_addr_arg) [4] = value >> 24;
- ((unsigned char *) reloc_addr_arg) [5] = value >> 16;
- ((unsigned char *) reloc_addr_arg) [6] = value >> 8;
- ((unsigned char *) reloc_addr_arg) [7] = value;
- break;
-#endif
-#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
-#endif
- }
- }
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
- void *const reloc_addr_arg)
-{
- Elf64_Addr *const reloc_addr = reloc_addr_arg;
- *reloc_addr = l_addr + reloc->r_addend;
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_lazy_rel (struct link_map *map,
- Elf64_Addr l_addr, const Elf64_Rela *reloc)
-{
- switch (ELF64_R_TYPE (reloc->r_info))
- {
- case R_SPARC_NONE:
- break;
- case R_SPARC_JMP_SLOT:
- break;
- default:
- _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 1);
- break;
- }
-}
-
-#endif /* RESOLVE */
-
/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
PLT entries should not be allowed to define the value.
ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
of the main executable's symbols, as for a COPY reloc. */
-#define elf_machine_type_class(type) \
+#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD)
+# define elf_machine_type_class(type) \
+ ((((type) == R_SPARC_JMP_SLOT \
+ || ((type) >= R_SPARC_TLS_GD_HI22 && (type) <= R_SPARC_TLS_TPOFF64)) \
+ * ELF_RTYPE_CLASS_PLT) \
+ | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
+#else
+# define elf_machine_type_class(type) \
((((type) == R_SPARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
| (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
+#endif
/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
#define ELF_MACHINE_JMP_SLOT R_SPARC_JMP_SLOT
@@ -490,74 +275,67 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
extern void _dl_runtime_profile_1 (void);
Elf64_Addr res0_addr, res1_addr;
unsigned int *plt = (void *) D_PTR (l, l_info[DT_PLTGOT]);
- int i = 0;
- if (! profile)
- {
- res0_addr = (Elf64_Addr) &_dl_runtime_resolve_0;
- res1_addr = (Elf64_Addr) &_dl_runtime_resolve_1;
- }
- else
+ if (__builtin_expect(profile, 0))
{
res0_addr = (Elf64_Addr) &_dl_runtime_profile_0;
res1_addr = (Elf64_Addr) &_dl_runtime_profile_1;
- if (_dl_name_match_p (GLRO(dl_profile), l))
+
+ if (GLRO(dl_profile) != NULL
+ && _dl_name_match_p (GLRO(dl_profile), l))
GL(dl_profile_map) = l;
}
+ else
+ {
+ res0_addr = (Elf64_Addr) &_dl_runtime_resolve_0;
+ res1_addr = (Elf64_Addr) &_dl_runtime_resolve_1;
+ }
/* PLT0 looks like:
- save %sp, -192, %sp
- sethi %hh(_dl_runtime_{resolve,profile}_0), %l0
- sethi %lm(_dl_runtime_{resolve,profile}_0), %l1
- or %l0, %hm(_dl_runtime_{resolve,profile}_0), %l0
- or %l1, %lo(_dl_runtime_{resolve,profile}_0), %l1
- sllx %l0, 32, %l0
- jmpl %l0 + %l1, %l6
- sethi %hi(0xffc00), %l2
+ sethi %uhi(_dl_runtime_{resolve,profile}_0), %g4
+ sethi %hi(_dl_runtime_{resolve,profile}_0), %g5
+ or %g4, %ulo(_dl_runtime_{resolve,profile}_0), %g4
+ or %g5, %lo(_dl_runtime_{resolve,profile}_0), %g5
+ sllx %g4, 32, %g4
+ add %g4, %g5, %g5
+ jmpl %g5, %g4
+ nop
*/
- plt[0] = 0x9de3bf40;
- plt[1] = 0x21000000 | (res0_addr >> (64 - 22));
- plt[2] = 0x23000000 | ((res0_addr >> 10) & 0x003fffff);
- plt[3] = 0xa0142000 | ((res0_addr >> 32) & 0x3ff);
- plt[4] = 0xa2146000 | (res0_addr & 0x3ff);
- plt[5] = 0xa12c3020;
- plt[6] = 0xadc40011;
- plt[7] = 0x250003ff;
+ plt[0] = 0x09000000 | (res0_addr >> (64 - 22));
+ plt[1] = 0x0b000000 | ((res0_addr >> 10) & 0x003fffff);
+ plt[2] = 0x88112000 | ((res0_addr >> 32) & 0x3ff);
+ plt[3] = 0x8a116000 | (res0_addr & 0x3ff);
+ plt[4] = 0x89293020;
+ plt[5] = 0x8a010005;
+ plt[6] = 0x89c14000;
+ plt[7] = 0x01000000;
/* PLT1 looks like:
- save %sp, -192, %sp
- sethi %hh(_dl_runtime_{resolve,profile}_1), %l0
- sethi %lm(_dl_runtime_{resolve,profile}_1), %l1
- or %l0, %hm(_dl_runtime_{resolve,profile}_1), %l0
- or %l1, %lo(_dl_runtime_{resolve,profile}_1), %l1
- sllx %l0, 32, %l0
- jmpl %l0 + %l1, %l6
- srlx %g1, 12, %o1
+ sethi %uhi(_dl_runtime_{resolve,profile}_1), %g4
+ sethi %hi(_dl_runtime_{resolve,profile}_1), %g5
+ or %g4, %ulo(_dl_runtime_{resolve,profile}_1), %g4
+ or %g5, %lo(_dl_runtime_{resolve,profile}_1), %g5
+ sllx %g4, 32, %g4
+ add %g4, %g5, %g5
+ jmpl %g5, %g4
+ nop
*/
- plt[8 + 0] = 0x9de3bf40;
- if (__builtin_expect (((res1_addr + 4) >> 32) & 0x3ff, 0))
- i = 1;
- else
- res1_addr += 4;
- plt[8 + 1] = 0x21000000 | (res1_addr >> (64 - 22));
- plt[8 + 2] = 0x23000000 | ((res1_addr >> 10) & 0x003fffff);
- if (__builtin_expect (i, 0))
- plt[8 + 3] = 0xa0142000 | ((res1_addr >> 32) & 0x3ff);
- else
- plt[8 + 3] = 0xa12c3020;
- plt[8 + 4] = 0xa2146000 | (res1_addr & 0x3ff);
- if (__builtin_expect (i, 0))
- plt[8 + 5] = 0xa12c3020;
- plt[8 + 5 + i] = 0xadc40011;
- plt[8 + 6 + i] = 0x9330700c;
+ plt[8] = 0x09000000 | (res1_addr >> (64 - 22));
+ plt[9] = 0x0b000000 | ((res1_addr >> 10) & 0x003fffff);
+ plt[10] = 0x88112000 | ((res1_addr >> 32) & 0x3ff);
+ plt[11] = 0x8a116000 | (res1_addr & 0x3ff);
+ plt[12] = 0x89293020;
+ plt[13] = 0x8a010005;
+ plt[14] = 0x89c14000;
+ plt[15] = 0x01000000;
/* Now put the magic cookie at the beginning of .PLT2
Entry .PLT3 is unused by this implementation. */
- *((struct link_map **)(&plt[16 + 0])) = l;
+ *((struct link_map **)(&plt[16])) = l;
if (__builtin_expect (l->l_info[VALIDX(DT_GNU_PRELINKED)] != NULL, 0)
|| __builtin_expect (l->l_info [VALIDX (DT_GNU_LIBLISTSZ)] != NULL, 0))
@@ -604,68 +382,6 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
return lazy;
}
-/* This code is used in dl-runtime.c to call the `fixup' function
- and then redirect to the address it returns. */
-#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
- asm ("\n" \
-" .text\n" \
-" .globl " #tramp_name "_0\n" \
-" .type " #tramp_name "_0, @function\n" \
-" .align 32\n" \
-"\t" #tramp_name "_0:\n" \
-" ! sethi %hi(1047552), %l2 - Done in .PLT0\n" \
-" ldx [%l6 + 32 + 8], %o0\n" \
-" sub %g1, %l6, %l0\n" \
-" xor %l2, -1016, %l2\n" \
-" sethi %hi(5120), %l3 ! 160 * 32\n" \
-" add %l0, %l2, %l0\n" \
-" sethi %hi(32768), %l4\n" \
-" udivx %l0, %l3, %l3\n" \
-" sllx %l3, 2, %l1\n" \
-" add %l1, %l3, %l1\n" \
-" sllx %l1, 10, %l2\n" \
-" sub %l4, 4, %l4 ! No thanks to Sun for not obeying their own ABI\n" \
-" sllx %l1, 5, %l1\n" \
-" sub %l0, %l2, %l0\n" \
-" udivx %l0, 24, %l0\n" \
-" add %l0, %l4, %l0\n" \
-" add %l1, %l0, %l1\n" \
-" add %l1, %l1, %l0\n" \
-" add %l0, %l1, %l0\n" \
-" mov %i7, %o2\n" \
-" call " #fixup_name "\n" \
-" sllx %l0, 3, %o1\n" \
-" jmp %o0\n" \
-" restore\n" \
-" .size " #tramp_name "_0, . - " #tramp_name "_0\n" \
-"\n" \
-" .globl " #tramp_name "_1\n" \
-" .type " #tramp_name "_1, @function\n" \
-" ! tramp_name_1 + 4 needs to be .align 32\n" \
-"\t" #tramp_name "_1:\n" \
-" sub %l6, 4, %l6\n" \
-" ! srlx %g1, 12, %o1 - Done in .PLT1\n" \
-" ldx [%l6 + 12], %o0\n" \
-" add %o1, %o1, %o3\n" \
-" sub %o1, 96, %o1 ! No thanks to Sun for not obeying their own ABI\n" \
-" mov %i7, %o2\n" \
-" call " #fixup_name "\n" \
-" add %o1, %o3, %o1\n" \
-" jmp %o0\n" \
-" restore\n" \
-" .size " #tramp_name "_1, . - " #tramp_name "_1\n" \
-" .previous\n");
-
-#ifndef PROF
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
- TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \
- TRAMPOLINE_TEMPLATE (_dl_runtime_profile, profile_fixup);
-#else
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
- TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup); \
- TRAMPOLINE_TEMPLATE (_dl_runtime_profile, fixup);
-#endif
-
/* The PLT uses Elf64_Rela relocs. */
#define elf_machine_relplt elf_machine_rela
@@ -766,3 +482,290 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
" add %sp, 6*8, %sp\n" \
" .size _dl_start_user, . - _dl_start_user\n" \
" .previous\n");
+
+#endif /* dl_machine_h */
+
+#define ARCH_LA_PLTENTER sparc64_gnu_pltenter
+#define ARCH_LA_PLTEXIT sparc64_gnu_pltexit
+
+#ifdef RESOLVE_MAP
+
+/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+ MAP is the object containing the reloc. */
+
+auto inline void
+__attribute__ ((always_inline))
+elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
+ const Elf64_Sym *sym, const struct r_found_version *version,
+ void *const reloc_addr_arg)
+{
+ Elf64_Addr *const reloc_addr = reloc_addr_arg;
+#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
+ const Elf64_Sym *const refsym = sym;
+#endif
+ Elf64_Addr value;
+ const unsigned long int r_type = ELF64_R_TYPE_ID (reloc->r_info);
+#if !defined RESOLVE_CONFLICT_FIND_MAP
+ struct link_map *sym_map = NULL;
+#endif
+
+#if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
+ /* This is defined in rtld.c, but nowhere in the static libc.a; make the
+ reference weak so static programs can still link. This declaration
+ cannot be done when compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP)
+ because rtld.c contains the common defn for _dl_rtld_map, which is
+ incompatible with a weak decl in the same file. */
+ weak_extern (_dl_rtld_map);
+#endif
+
+ if (__builtin_expect (r_type == R_SPARC_NONE, 0))
+ return;
+
+#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
+ if (__builtin_expect (r_type == R_SPARC_RELATIVE, 0))
+ {
+# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
+ if (map != &_dl_rtld_map) /* Already done in rtld itself. */
+# endif
+ *reloc_addr += map->l_addr + reloc->r_addend;
+ return;
+ }
+#endif
+
+#ifndef RESOLVE_CONFLICT_FIND_MAP
+ if (__builtin_expect (ELF64_ST_BIND (sym->st_info) == STB_LOCAL, 0)
+ && sym->st_shndx != SHN_UNDEF)
+ {
+ value = map->l_addr;
+ }
+ else
+ {
+ sym_map = RESOLVE_MAP (&sym, version, r_type);
+ value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
+ }
+#else
+ value = 0;
+#endif
+
+ value += reloc->r_addend; /* Assume copy relocs have zero addend. */
+
+ switch (r_type)
+ {
+#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
+ case R_SPARC_COPY:
+ if (sym == NULL)
+ /* This can happen in trace mode if an object could not be
+ found. */
+ break;
+ if (sym->st_size > refsym->st_size
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
+ {
+ const char *strtab;
+
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_error_printf ("\
+%s: Symbol `%s' has different size in shared object, consider re-linking\n",
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ }
+ memcpy (reloc_addr_arg, (void *) value,
+ MIN (sym->st_size, refsym->st_size));
+ break;
+#endif
+ case R_SPARC_64:
+ case R_SPARC_GLOB_DAT:
+ *reloc_addr = value;
+ break;
+ case R_SPARC_JMP_SLOT:
+#ifdef RESOLVE_CONFLICT_FIND_MAP
+ /* R_SPARC_JMP_SLOT conflicts against .plt[32768+]
+ relocs should be turned into R_SPARC_64 relocs
+ in .gnu.conflict section.
+ r_addend non-zero does not mean it is a .plt[32768+]
+ reloc, instead it is the actual address of the function
+ to call. */
+ sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
+#else
+ sparc64_fixup_plt (map, reloc, reloc_addr, value, reloc->r_addend, 0);
+#endif
+ break;
+#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) \
+ && !defined RESOLVE_CONFLICT_FIND_MAP
+ case R_SPARC_TLS_DTPMOD64:
+ /* Get the information from the link map returned by the
+ resolv function. */
+ if (sym_map != NULL)
+ *reloc_addr = sym_map->l_tls_modid;
+ break;
+ case R_SPARC_TLS_DTPOFF64:
+ /* During relocation all TLS symbols are defined and used.
+ Therefore the offset is already correct. */
+ *reloc_addr = (sym == NULL ? 0 : sym->st_value) + reloc->r_addend;
+ break;
+ case R_SPARC_TLS_TPOFF64:
+ /* The offset is negative, forward from the thread pointer. */
+ /* We know the offset of object the symbol is contained in.
+ It is a negative value which will be added to the
+ thread pointer. */
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ *reloc_addr = sym->st_value - sym_map->l_tls_offset
+ + reloc->r_addend;
+ }
+ break;
+# ifndef RTLD_BOOTSTRAP
+ case R_SPARC_TLS_LE_HIX22:
+ case R_SPARC_TLS_LE_LOX10:
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ value = sym->st_value - sym_map->l_tls_offset
+ + reloc->r_addend;
+ if (r_type == R_SPARC_TLS_LE_HIX22)
+ *reloc_addr = (*reloc_addr & 0xffc00000) | ((~value) >> 10);
+ else
+ *reloc_addr = (*reloc_addr & 0xffffe000) | (value & 0x3ff)
+ | 0x1c00;
+ }
+ break;
+# endif
+#endif
+#ifndef RTLD_BOOTSTRAP
+ case R_SPARC_8:
+ *(char *) reloc_addr = value;
+ break;
+ case R_SPARC_16:
+ *(short *) reloc_addr = value;
+ break;
+ case R_SPARC_32:
+ *(unsigned int *) reloc_addr = value;
+ break;
+ case R_SPARC_DISP8:
+ *(char *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
+ break;
+ case R_SPARC_DISP16:
+ *(short *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
+ break;
+ case R_SPARC_DISP32:
+ *(unsigned int *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
+ break;
+ case R_SPARC_WDISP30:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & 0xc0000000) |
+ ((value - (Elf64_Addr) reloc_addr) >> 2));
+ break;
+
+ /* MEDLOW code model relocs */
+ case R_SPARC_LO10:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & ~0x3ff) |
+ (value & 0x3ff));
+ break;
+ case R_SPARC_HI22:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & 0xffc00000) |
+ (value >> 10));
+ break;
+ case R_SPARC_OLO10:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & ~0x1fff) |
+ (((value & 0x3ff) + ELF64_R_TYPE_DATA (reloc->r_info)) & 0x1fff));
+ break;
+
+ /* MEDMID code model relocs */
+ case R_SPARC_H44:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & 0xffc00000) |
+ (value >> 22));
+ break;
+ case R_SPARC_M44:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & ~0x3ff) |
+ ((value >> 12) & 0x3ff));
+ break;
+ case R_SPARC_L44:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & ~0xfff) |
+ (value & 0xfff));
+ break;
+
+ /* MEDANY code model relocs */
+ case R_SPARC_HH22:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & 0xffc00000) |
+ (value >> 42));
+ break;
+ case R_SPARC_HM10:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & ~0x3ff) |
+ ((value >> 32) & 0x3ff));
+ break;
+ case R_SPARC_LM22:
+ *(unsigned int *) reloc_addr =
+ ((*(unsigned int *)reloc_addr & 0xffc00000) |
+ ((value >> 10) & 0x003fffff));
+ break;
+ case R_SPARC_UA16:
+ ((unsigned char *) reloc_addr_arg) [0] = value >> 8;
+ ((unsigned char *) reloc_addr_arg) [1] = value;
+ break;
+ case R_SPARC_UA32:
+ ((unsigned char *) reloc_addr_arg) [0] = value >> 24;
+ ((unsigned char *) reloc_addr_arg) [1] = value >> 16;
+ ((unsigned char *) reloc_addr_arg) [2] = value >> 8;
+ ((unsigned char *) reloc_addr_arg) [3] = value;
+ break;
+ case R_SPARC_UA64:
+ if (! ((long) reloc_addr_arg & 3))
+ {
+ /* Common in .eh_frame */
+ ((unsigned int *) reloc_addr_arg) [0] = value >> 32;
+ ((unsigned int *) reloc_addr_arg) [1] = value;
+ break;
+ }
+ ((unsigned char *) reloc_addr_arg) [0] = value >> 56;
+ ((unsigned char *) reloc_addr_arg) [1] = value >> 48;
+ ((unsigned char *) reloc_addr_arg) [2] = value >> 40;
+ ((unsigned char *) reloc_addr_arg) [3] = value >> 32;
+ ((unsigned char *) reloc_addr_arg) [4] = value >> 24;
+ ((unsigned char *) reloc_addr_arg) [5] = value >> 16;
+ ((unsigned char *) reloc_addr_arg) [6] = value >> 8;
+ ((unsigned char *) reloc_addr_arg) [7] = value;
+ break;
+#endif
+#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
+ default:
+ _dl_reloc_bad_type (map, r_type, 0);
+ break;
+#endif
+ }
+}
+
+auto inline void
+__attribute__ ((always_inline))
+elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
+ void *const reloc_addr_arg)
+{
+ Elf64_Addr *const reloc_addr = reloc_addr_arg;
+ *reloc_addr = l_addr + reloc->r_addend;
+}
+
+auto inline void
+__attribute__ ((always_inline))
+elf_machine_lazy_rel (struct link_map *map,
+ Elf64_Addr l_addr, const Elf64_Rela *reloc)
+{
+ switch (ELF64_R_TYPE (reloc->r_info))
+ {
+ case R_SPARC_NONE:
+ break;
+ case R_SPARC_JMP_SLOT:
+ break;
+ default:
+ _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 1);
+ break;
+ }
+}
+
+#endif /* RESOLVE_MAP */
diff --git a/sysdeps/sparc/sparc64/dl-trampoline.S b/sysdeps/sparc/sparc64/dl-trampoline.S
new file mode 100644
index 0000000000..f85527f4c4
--- /dev/null
+++ b/sysdeps/sparc/sparc64/dl-trampoline.S
@@ -0,0 +1,280 @@
+/* PLT trampolines. Sparc 64-bit version.
+ Copyright (C) 2005 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 <sysdep.h>
+
+ .text
+ .align 32
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g4: callers PC, which is PLT0 + 24, therefore we
+ * add (32 + 8) to get the address of PLT2 which
+ * is where the magic cookie is stored
+ */
+ .globl _dl_runtime_resolve_0
+ .type _dl_runtime_resolve_0, @function
+_dl_runtime_resolve_0:
+ save %sp, -192, %sp
+ sethi %hi(1047552), %l2
+ ldx [%g4 + 32 + 8], %o0
+ sub %g1, %g4, %l0
+ xor %l2, -1016, %l2
+ sethi %hi(5120), %l3 /* 160 * 32 */
+ add %l0, %l2, %l0
+ sethi %hi(32768), %l4
+ udivx %l0, %l3, %l3
+ sllx %l3, 2, %l1
+ add %l1, %l3, %l1
+ sllx %l1, 10, %l2
+ sub %l4, 4, %l4
+ sllx %l1, 5, %l1
+ sub %l0, %l2, %l0
+ udivx %l0, 24, %l0
+ add %l0, %l4, %l0
+ add %l1, %l0, %l1
+ add %l1, %l1, %l0
+ add %l0, %l1, %l0
+ call _dl_fixup
+ sllx %l0, 3, %o1
+ jmp %o0
+ restore
+ .size _dl_runtime_resolve_0, .-_dl_runtime_resolve_0
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g4: callers PC, which is PLT1 + 24, therefore we
+ * add 8 to get the address of PLT2 which
+ * is where the magic cookie is stored
+ */
+ .globl _dl_runtime_resolve_1
+ .type _dl_runtime_resolve_1, @function
+_dl_runtime_resolve_1:
+ save %sp, -192, %sp
+ srlx %g1, 12, %o1
+ ldx [%g4 + 8], %o0
+ add %o1, %o1, %o3
+ sub %o1, 96, %o1
+ call _dl_fixup
+ add %o1, %o3, %o1
+ jmp %o0
+ restore
+ .size _dl_runtime_resolve_1, .-_dl_runtime_resolve_1
+
+ /* For the profiling cases we pass in our stack frame
+ * as the base of the La_sparc64_regs, so it looks
+ * like:
+ * %l0 %sp
+ * ...
+ * %l7 %sp + (7 * 8)
+ * %i0 %sp + (8 * 8)
+ * ...
+ * %i7 %sp + (15 * 8)
+ * %f0 %sp + (16 * 8)
+ * %f16 %sp + (31 * 8)
+ * framesize %sp + (32 * 8)
+ */
+
+ .globl _dl_profile_save_regs
+ .type _dl_profile_save_regs, @function
+_dl_profile_save_regs:
+ stx %l0, [%sp + STACK_BIAS + ( 0 * 8)]
+ stx %l1, [%sp + STACK_BIAS + ( 1 * 8)]
+ stx %l2, [%sp + STACK_BIAS + ( 2 * 8)]
+ stx %l3, [%sp + STACK_BIAS + ( 3 * 8)]
+ stx %l4, [%sp + STACK_BIAS + ( 4 * 8)]
+ stx %l5, [%sp + STACK_BIAS + ( 5 * 8)]
+ stx %l6, [%sp + STACK_BIAS + ( 6 * 8)]
+ stx %l7, [%sp + STACK_BIAS + ( 7 * 8)]
+ stx %i0, [%sp + STACK_BIAS + ( 8 * 8)]
+ stx %i1, [%sp + STACK_BIAS + ( 9 * 8)]
+ stx %i2, [%sp + STACK_BIAS + (10 * 8)]
+ stx %i3, [%sp + STACK_BIAS + (11 * 8)]
+ stx %i4, [%sp + STACK_BIAS + (12 * 8)]
+ stx %i5, [%sp + STACK_BIAS + (13 * 8)]
+ stx %i6, [%sp + STACK_BIAS + (14 * 8)]
+ stx %i7, [%sp + STACK_BIAS + (15 * 8)]
+ std %f0, [%sp + STACK_BIAS + (16 * 8)]
+ std %f2, [%sp + STACK_BIAS + (17 * 8)]
+ std %f4, [%sp + STACK_BIAS + (18 * 8)]
+ std %f6, [%sp + STACK_BIAS + (19 * 8)]
+ std %f8, [%sp + STACK_BIAS + (20 * 8)]
+ std %f10, [%sp + STACK_BIAS + (21 * 8)]
+ std %f12, [%sp + STACK_BIAS + (22 * 8)]
+ std %f14, [%sp + STACK_BIAS + (23 * 8)]
+ std %f16, [%sp + STACK_BIAS + (24 * 8)]
+ std %f18, [%sp + STACK_BIAS + (25 * 8)]
+ std %f20, [%sp + STACK_BIAS + (26 * 8)]
+ std %f22, [%sp + STACK_BIAS + (27 * 8)]
+ std %f24, [%sp + STACK_BIAS + (28 * 8)]
+ std %f26, [%sp + STACK_BIAS + (29 * 8)]
+ std %f28, [%sp + STACK_BIAS + (30 * 8)]
+ retl
+ std %f30, [%sp + STACK_BIAS + (31 * 8)]
+ .size _dl_profile_save_regs, .-_dl_profile_save_regs
+
+ /* If we are going to call pltexit, then we must replicate
+ * the caller's stack frame.
+ * %o0: PLT resolved function address
+ */
+ .globl _dl_profile_invoke
+ .type _dl_profile_invoke, @function
+_dl_profile_invoke:
+ sub %sp, %l0, %sp
+1:
+ srlx %l0, 3, %l7
+ mov %o0, %l1
+ mov %i0, %o0
+ mov %i1, %o1
+ mov %i2, %o2
+ mov %i3, %o3
+ mov %i4, %o4
+ mov %i5, %o5
+ add %fp, STACK_BIAS, %l2
+ add %sp, STACK_BIAS, %l3
+1: ldx [%l2], %l4
+ add %l2, 0x8, %l2
+ subcc %l7, 1, %l7
+ stx %l4, [%l3]
+ bne,pt %xcc, 1b
+ add %l3, 0x8, %l3
+
+ jmpl %l1, %o7
+ nop
+
+ stx %o0, [%sp + STACK_BIAS + (16 * 8)]
+ stx %o1, [%sp + STACK_BIAS + (17 * 8)]
+ stx %o2, [%sp + STACK_BIAS + (18 * 8)]
+ stx %o3, [%sp + STACK_BIAS + (19 * 8)]
+ std %f0, [%sp + STACK_BIAS + (20 * 8)]
+ std %f2, [%sp + STACK_BIAS + (21 * 8)]
+ std %f4, [%sp + STACK_BIAS + (22 * 8)]
+ std %f8, [%sp + STACK_BIAS + (23 * 8)]
+
+ mov %l5, %o0
+ mov %l6, %o1
+ add %sp, %l0, %o2
+ add %sp, STACK_BIAS + (16 * 8), %o3
+ call _dl_call_pltexit
+ add %o2, STACK_BIAS, %o2
+
+ ldx [%sp + STACK_BIAS + (16 * 8)], %i0
+ ldx [%sp + STACK_BIAS + (17 * 8)], %i1
+ ldx [%sp + STACK_BIAS + (18 * 8)], %i2
+ ldx [%sp + STACK_BIAS + (19 * 8)], %i3
+
+ jmpl %i7 + 8, %g0
+ restore
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g4: callers PC, which is PLT0 + 24, therefore we
+ * add (32 + 8) to get the address of PLT2 which
+ * is where the magic cookie is stored
+ */
+ .align 32
+ .globl _dl_runtime_profile_0
+ .type _dl_runtime_profile_0, @function
+_dl_runtime_profile_0:
+ brz,a,pn %fp, 1f
+ mov 192, %g5
+ sub %fp, %sp, %g5
+1: save %sp, -336, %sp
+ sethi %hi(1047552), %l2
+ ldx [%g4 + 32 + 8], %o0
+ sub %g1, %g4, %l0
+ xor %l2, -1016, %l2
+ sethi %hi(5120), %l3 /* 160 * 32 */
+ add %l0, %l2, %l0
+ sethi %hi(32768), %l4
+ udivx %l0, %l3, %l3
+ sllx %l3, 2, %l1
+ add %l1, %l3, %l1
+ sllx %l1, 10, %l2
+ sub %l4, 4, %l4
+ sllx %l1, 5, %l1
+ sub %l0, %l2, %l0
+ udivx %l0, 24, %l0
+ add %l0, %l4, %l0
+ add %l1, %l0, %l1
+ add %l1, %l1, %l0
+ add %l0, %l1, %l0
+
+ mov %i7, %o2
+ sllx %l0, 3, %o1
+
+ mov %g5, %l0
+ mov %o0, %l5
+ mov %o1, %l6
+
+ call _dl_profile_save_regs
+ nop
+
+ add %sp, STACK_BIAS, %o3
+ call _dl_profile_fixup
+ add %sp, (STACK_BIAS + (32 * 8)), %o4
+
+ ldx [%sp + STACK_BIAS + (32 * 8)], %o1
+ brgez,pt %o1, 1f
+ nop
+
+ call _dl_profile_invoke
+ nop
+
+1: jmp %o0
+ restore
+ .size _dl_runtime_profile_0, .-_dl_runtime_profile_0
+
+ /* %g1: PLT offset loaded by PLT entry
+ * %g4: callers PC, which is PLT1 + 24, therefore we
+ * add 8 to get the address of PLT2 which
+ * is where the magic cookie is stored
+ */
+ .globl _dl_runtime_profile_1
+ .type _dl_runtime_profile_1, @function
+_dl_runtime_profile_1:
+ brz,a,pn %fp, 1f
+ mov 192, %g5
+ sub %fp, %sp, %g5
+1: save %sp, -336, %sp
+ srlx %g1, 12, %o1
+ ldx [%g4 + 8], %o0
+ add %o1, %o1, %o3
+ sub %o1, 96, %o1
+ mov %i7, %o2
+ add %o1, %o3, %o1
+
+ mov %g5, %l0
+ mov %o0, %l5
+ mov %o1, %l6
+
+ call _dl_profile_save_regs
+ nop
+
+ add %sp, STACK_BIAS, %o3
+ call _dl_profile_fixup
+ add %sp, (STACK_BIAS + (32 * 8)), %o4
+
+ ldx [%sp + STACK_BIAS + (32 * 8)], %o1
+ brgez,pt %o1, 1f
+ nop
+
+ call _dl_profile_invoke
+ nop
+
+1: jmp %o0
+ restore
+ .size _dl_runtime_resolve_1, .-_dl_runtime_resolve_1
diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure
index d059143396..325073c62c 100644
--- a/sysdeps/unix/sysv/linux/configure
+++ b/sysdeps/unix/sysv/linux/configure
@@ -138,6 +138,10 @@ case "$machine" in
arch_minimum_kernel=2.3.99
libc_cv_gcc_unwind_find_fde=yes
;;
+ sparc/sparc64*)
+ libc_cv_gcc_unwind_find_fde=yes
+ arch_minimum_kernel=2.4.21
+ ;;
sparc*)
libc_cv_gcc_unwind_find_fde=yes
arch_minimum_kernel=2.0.10
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index e3fccb4c9b..88feb868fe 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -98,6 +98,10 @@ case "$machine" in
arch_minimum_kernel=2.3.99
libc_cv_gcc_unwind_find_fde=yes
;;
+ sparc/sparc64*)
+ libc_cv_gcc_unwind_find_fde=yes
+ arch_minimum_kernel=2.4.21
+ ;;
sparc*)
libc_cv_gcc_unwind_find_fde=yes
arch_minimum_kernel=2.0.10
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index dfb4cde72d..befa804cb1 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -43,6 +43,45 @@ dl_fatal (const char *str)
static inline int __attribute__ ((always_inline))
_dl_discover_osversion (void)
{
+#if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
+ if (GLRO(dl_sysinfo_map) != NULL)
+ {
+ /* If the kernel-supplied DSO contains a note indicating the kernel's
+ version, we don't need to call uname or parse any strings. */
+
+ static const struct
+ {
+ ElfW(Word) vendorlen;
+ ElfW(Word) datalen;
+ ElfW(Word) type;
+ char vendor[8];
+ } expected_note = { sizeof "Linux", sizeof (ElfW(Word)), 0, "Linux" };
+ const ElfW(Phdr) *const phdr = GLRO(dl_sysinfo_map)->l_phdr;
+ const ElfW(Word) phnum = GLRO(dl_sysinfo_map)->l_phnum;
+ for (uint_fast16_t i = 0; i < phnum; ++i)
+ if (phdr[i].p_type == PT_NOTE)
+ {
+ const ElfW(Addr) start = (phdr[i].p_vaddr
+ + GLRO(dl_sysinfo_map)->l_addr);
+ const struct
+ {
+ ElfW(Word) vendorlen;
+ ElfW(Word) datalen;
+ ElfW(Word) type;
+ } *note = (const void *) start;
+ while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz)
+ {
+ if (!memcmp (note, &expected_note, sizeof expected_note))
+ return *(const ElfW(Word) *) ((const void *) note
+ + sizeof expected_note);
+#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word)))
+ note = ((const void *) (note + 1)
+ + ROUND (note->vendorlen) + ROUND (note->datalen));
+ }
+ }
+ }
+#endif
+
char bufmem[64];
char *buf = bufmem;
unsigned int version;
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index 66cdbf3ca7..4d8fdb8200 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -40,11 +40,19 @@ __clone:
save %sp,-96,%sp
/* sanity check arguments */
- tst %i0
+ orcc %i0,%g0,%g2
be .Lerror
orcc %i1,%g0,%o1
be .Lerror
mov %i2,%o0
+
+ /* The child_stack is the top of the stack, allocate one
+ whole stack frame from that as this is what the kernel
+ expects. */
+ sub %o1, 96, %o1
+ mov %i3, %g3
+ mov %i2, %g4
+
/* ptid */
mov %i4,%o2
/* tls */
@@ -76,19 +84,21 @@ __clone:
__thread_start:
#ifdef RESET_PID
sethi %hi(CLONE_THREAD), %l0
- andcc %i2, %l0, %g0
+ andcc %g4, %l0, %g0
bne 1f
- andcc %i2, CLONE_VM, %g0
+ andcc %g4, CLONE_VM, %g0
bne,a 2f
mov -1,%o0
set __NR_getpid,%g1
ta 0x10
-2: st %o0,[%g7 + PID]
+2:
+ st %o0,[%g7 + PID]
st %o0,[%g7 + TID]
1:
#endif
- call %i0
- mov %i3,%o0
+ mov %g0, %fp /* terminate backtrace */
+ call %g2
+ mov %g3,%o0
call _exit,0
nop
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index a7c248b2e8..f6134599e2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -22,8 +22,16 @@
#include <asm/errno.h>
#include <asm/unistd.h>
+#include <tcb-offsets.h>
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
+#define CLONE_VM 0x00000100
+#define CLONE_THREAD 0x00010000
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, void *tls, pid_t *ctid); */
+
+ .register %g2,#scratch
+ .register %g3,#scratch
.text
.align 4
@@ -34,22 +42,31 @@ __clone:
save %sp, -192, %sp
/* sanity check arguments */
- brz,pn %i0, 99f
- mov %i0, %l0 /* save fn */
- brz,pn %i1, 99f
- mov %i3, %l3 /* save arg */
+ brz,pn %i0, 99f /* fn non-NULL? */
+ mov %i0, %g2
+ brz,pn %i1, 99f /* child_stack non-NULL? */
+ mov %i2, %o0 /* clone flags */
+
+ /* The child_stack is the top of the stack, allocate one
+ whole stack frame from that as this is what the kernel
+ expects. Also, subtract STACK_BIAS. */
+ sub %i1, 192 + 0x7ff, %o1
+ mov %i3, %g3
+ mov %i2, %g4
+
+ mov %i4,%o2 /* PTID */
+ mov %i5,%o3 /* TLS */
+ ldx [%fp+0x7ff+176],%o4 /* CTID */
/* Do the system call */
- sub %i1, 0x7ff, %o1
- mov %i2, %o0
set __NR_clone, %g1
ta 0x6d
bcs,pn %xcc, 99f
nop
brnz,pn %o1, __thread_start
- mov %o0, %i0
+ nop
ret
- restore
+ restore %o0, %g0, %o0
99:
#ifndef _LIBC_REENTRANT
#ifdef PIC
@@ -77,10 +94,22 @@ __clone:
.type __thread_start,@function
__thread_start:
+#ifdef RESET_PID
+ sethi %hi(CLONE_THREAD), %l0
+ andcc %g4, %l0, %g0
+ bne,pt %icc, 1f
+ andcc %g4, CLONE_VM, %g0
+ bne,a,pn %icc, 2f
+ mov -1,%o0
+ set __NR_getpid,%g1
+ ta 0x6d
+2: st %o0,[%g7 + PID]
+ st %o0,[%g7 + TID]
+1:
+#endif
mov %g0, %fp /* terminate backtrace */
- sub %sp, 6*8, %sp /* provide arg storage */
- call %l0
- mov %l3,%o0
+ call %g2
+ mov %g3,%o0
call _exit,0
nop
.size __thread_start, .-__thread_start
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c b/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c
index 2ec5bd39ad..40fab28d47 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c
@@ -1 +1,47 @@
-#include <sysdeps/posix/pause.c>
+/* pause -- suspend the process until a signal arrives. POSIX.1 version.
+ Copyright (C) 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+/* Suspend the process until a signal arrives.
+ This always returns -1 and sets errno to EINTR. */
+int
+__libc_pause (void)
+{
+ sigset_t set;
+
+ __sigemptyset (&set);
+ INLINE_SYSCALL (rt_sigprocmask, 4, SIG_BLOCK, CHECK_SIGSET (NULL),
+ CHECK_SIGSET_NULL_OK (&set), _NSIG / 8);
+
+ /* pause is a cancellation point, but so is sigsuspend.
+ So no need for anything special here. */
+
+ return __sigsuspend (&set);
+}
+weak_alias (__libc_pause, pause)
+
+LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 3c6492aeca..071aa3a310 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -85,11 +85,54 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; \
call __sparc64.get_pic.l7; \
add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; \
- ldx [%l7 + rtld_errno], %l0; \
+ sethi %hi(rtld_errno), %g1; \
+ or %g1, %lo(rtld_errno), %g1; \
+ ldx [%l7 + %g1], %l0; \
st %i0, [%l0]; \
jmpl %i7+8, %g0; \
restore %g0, -1, %o0; \
.previous;
+#elif USE___THREAD
+# ifndef NOT_IN_libc
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# ifdef SHARED
+# define SYSCALL_ERROR_HANDLER \
+ .section .gnu.linkonce.t.__sparc64.get_pic.l7,"ax",@progbits; \
+ .globl __sparc64.get_pic.l7; \
+ .hidden __sparc64.get_pic.l7; \
+ .type __sparc64.get_pic.l7,@function; \
+__sparc64.get_pic.l7: \
+ retl; \
+ add %o7, %l7, %l7; \
+ .previous; \
+SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
+ save %sp,-192,%sp; \
+ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %l1; \
+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; \
+ call __sparc64.get_pic.l7; \
+ add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; \
+ add %l1, %tie_lo10(SYSCALL_ERROR_ERRNO), %l1; \
+ ldx [%l7 + %l1], %l1, %tie_ldx(SYSCALL_ERROR_ERRNO); \
+ st %i0, [%g7 + %l1], %tie_add(SYSCALL_ERROR_ERRNO); \
+ jmpl %i7+8, %g0; \
+ restore %g0, -1, %o0; \
+ .previous;
+# else
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
+ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \
+ sethi %hi(_GLOBAL_OFFSET_TABLE_), %g2; \
+ add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \
+ add %g2, %lo(_GLOBAL_OFFSET_TABLE_), %g2; \
+ ldx [%g2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO); \
+ st %o0, [%g7 + %g1], %tie_add(SYSCALL_ERROR_ERRNO); \
+ jmpl %o7+8, %g0; \
+ mov -1, %o0; \
+ .previous;
+# endif
#else
# define SYSCALL_ERROR_HANDLER \
SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
diff --git a/version.h b/version.h
index 2c6a016515..8dc03abfa3 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
/* This file just defines the current version number of libc. */
#define RELEASE "development"
-#define VERSION "2.3.4"
+#define VERSION "2.3.5"