From 6183d906dd822337dec18dd1f48209dfd17127bd Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 15 Apr 2005 09:33:04 +0000 Subject: Updated to fedora-glibc-20050415T0909 --- ChangeLog | 221 +- FAQ | 16 + FAQ.in | 13 + MakeTAGS | 9 +- Makefile | 5 + NEWS | 15 +- elf/cache.c | 4 +- elf/dl-load.c | 5 + elf/dl-support.c | 6 +- elf/ldconfig.c | 80 +- elf/rtld.c | 198 +- elf/tls-macros.h | 68 + elf/tst-auditmod1.c | 12 + fedora/branch.mk | 4 +- fedora/glibc.spec.in | 10 +- iconv/gconv_int.h | 4 +- intl/tst-codeset.sh | 9 +- intl/tst-gettext3.sh | 7 +- manual/string.texi | 2 +- nptl/ChangeLog | 6 + nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h | 31 + nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S | 2 + nscd/Makefile | 3 +- po/.cvsignore | 3 + po/libc.pot | 2884 ++++++++++---------- posix/Makefile | 4 +- posix/execvp.c | 4 +- posix/tst-execvp3.c | 42 + scripts/config.guess | 121 +- scripts/config.sub | 82 +- stdlib/random_r.c | 33 +- string/Makefile | 4 +- string/tst-strfry.c | 15 + sysdeps/generic/dl-sysdep.c | 92 +- sysdeps/generic/ldsodefs.h | 32 +- sysdeps/ia64/fpu/e_acosh.S | 3 +- sysdeps/ia64/fpu/e_acoshl.S | 4 +- sysdeps/ia64/fpu/e_atanh.S | 3 +- sysdeps/ia64/fpu/e_cosh.S | 3 +- sysdeps/ia64/fpu/e_coshf.S | 3 +- sysdeps/ia64/fpu/e_exp.S | 3 +- sysdeps/ia64/fpu/e_exp10.S | 4 +- sysdeps/ia64/fpu/e_exp10f.S | 4 +- sysdeps/ia64/fpu/e_exp2.S | 4 +- sysdeps/ia64/fpu/e_exp2f.S | 4 +- sysdeps/ia64/fpu/e_expf.S | 3 +- sysdeps/ia64/fpu/e_log.S | 3 +- sysdeps/ia64/fpu/e_logf.S | 3 +- sysdeps/ia64/fpu/e_pow.S | 3 +- sysdeps/ia64/fpu/e_powf.S | 3 +- sysdeps/ia64/fpu/e_sinh.S | 3 +- sysdeps/ia64/fpu/e_sinhf.S | 3 +- sysdeps/ia64/fpu/libm_error.c | 9 +- sysdeps/ia64/fpu/libm_lgamma.S | 5 +- sysdeps/ia64/fpu/libm_lgammaf.S | 3 +- sysdeps/ia64/fpu/libm_lgammal.S | 3 +- sysdeps/ia64/fpu/libm_sincos.S | 3 +- sysdeps/ia64/fpu/libm_sincosf.S | 3 +- sysdeps/ia64/fpu/s_asinh.S | 3 +- sysdeps/ia64/fpu/s_atanl.S | 3 +- sysdeps/ia64/fpu/s_cos.S | 10 +- sysdeps/ia64/fpu/s_cosf.S | 3 +- sysdeps/ia64/fpu/s_erf.S | 3 +- sysdeps/ia64/fpu/s_erfc.S | 3 +- sysdeps/ia64/fpu/s_erfcf.S | 3 +- sysdeps/ia64/fpu/s_erfcl.S | 5 +- sysdeps/ia64/fpu/s_erff.S | 3 +- sysdeps/ia64/fpu/s_expm1.S | 3 +- sysdeps/ia64/fpu/s_expm1f.S | 3 +- sysdeps/ia64/fpu/s_log1p.S | 3 +- sysdeps/ia64/fpu/s_tanf.S | 3 +- sysdeps/ia64/fpu/s_tanh.S | 6 +- sysdeps/ia64/fpu/s_tanhf.S | 4 +- sysdeps/ia64/fpu/w_tgamma.S | 4 +- sysdeps/ia64/fpu/w_tgammaf.S | 3 +- sysdeps/ia64/fpu/w_tgammal.S | 3 +- sysdeps/sh/elf/configure | 2 +- sysdeps/sparc/bits/link.h | 100 + sysdeps/sparc/sparc32/dl-machine.h | 325 +-- sysdeps/sparc/sparc32/dl-trampoline.S | 155 ++ sysdeps/sparc/sparc64/dl-machine.h | 683 ++--- sysdeps/sparc/sparc64/dl-trampoline.S | 280 ++ sysdeps/unix/sysv/linux/configure | 4 + sysdeps/unix/sysv/linux/configure.in | 4 + sysdeps/unix/sysv/linux/dl-osinfo.h | 39 + sysdeps/unix/sysv/linux/sparc/sparc32/clone.S | 22 +- sysdeps/unix/sysv/linux/sparc/sparc64/clone.S | 53 +- sysdeps/unix/sysv/linux/sparc/sparc64/pause.c | 48 +- sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 45 +- version.h | 2 +- 90 files changed, 3673 insertions(+), 2285 deletions(-) create mode 100644 nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h create mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S create mode 100644 posix/tst-execvp3.c create mode 100644 string/tst-strfry.c create mode 100644 sysdeps/sparc/bits/link.h create mode 100644 sysdeps/sparc/sparc32/dl-trampoline.S create mode 100644 sysdeps/sparc/sparc64/dl-trampoline.S diff --git a/ChangeLog b/ChangeLog index 850dd5bec2..2a1358023e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,202 @@ +2005-04-14 Roland McGrath + + * 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 + + 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 + + * 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 + + [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 + + * 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 + + * manual/string.texi: Fix typo in wmemcpy decl. + +2005-04-10 David S. Miller + + * sysdeps/sparc/sparc32/dl-trampoline.S: Use std not stx. + +2005-04-08 Carlos O'Donell + + * FAQ.in: Explain why `make' might fail running rpcgen. + * FAQ: Regenerated. + +2005-04-07 Roland McGrath + + * po/libc.pot: Regenerated. + +2005-04-07 Roland McGrath + + * 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 + + * 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 and . + +2005-04-05 H.J. Lu + + [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 + + * 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 + + * 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 * intl/tst-gettext3.c: New file. @@ -39,11 +238,13 @@ 2005-04-04 Ulrich Drepper + [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 + [BZ #592] * sysdeps/ia64/fpu/libm_cpu_defs.h: Update copyright. 2005-04-01 Ulrich Drepper @@ -87,6 +289,7 @@ 2005-03-30 H.J. Lu + [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 + [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 + [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 + [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 + [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 + [BZ #821] * elf/Makefile: Add rules to build and run unload5 test. * elf/unload5.c: New file. -2005-03-08 Jakub Jelinek - + [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 . @@ -798,6 +1011,7 @@ 2005-03-03 Ulrich Drepper + [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 + [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 +2004-12-09 H.J. Lu [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 . {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 . {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 @@ -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 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 , 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 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 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 , 1997. @@ -22,6 +22,8 @@ #include "gconv.h" #include /* For alloca used in macro below. */ +#include /* For __toupper_l used in macro below. */ +#include /* For strlen et al used in macro below. */ #include __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 + + * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file. + * sysdeps/sparc/sparc64/clone.S: New file. + 2005-04-05 Jakub Jelinek * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use @@ -79,6 +84,7 @@ 2005-02-07 Richard Henderson + [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 , 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 +#include +#include + +#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 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 \n" "Language-Team: LANGUAGE \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 .\n" +#: malloc/memusagestat.c:524 nss/getent.c:787 debug/pcprofiledump.c:199 +msgid "" +"For bug reporting instructions, please see:\n" +".\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: must be greater than \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 " 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 " character must not be in class `%s'" msgstr "" -#: locale/programs/ld-ctype.c:595 +#: locale/programs/ld-ctype.c:600 msgid "character 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 of range is smaller than from-value " 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" +".\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 or 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,688 +2649,471 @@ msgstr "" msgid "IOT trap" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30 -msgid "Error 0" +#: stdio-common/psignal.c:60 +#, c-format +msgid "%s%sUnknown signal %d\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31 -#: nis/nis_error.c:40 -msgid "Not owner" +#: stdio-common/psignal.c:63 stdio-common/psignal.c:65 +msgid "Unknown signal" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35 -msgid "I/O error" +#: dlfcn/dlinfo.c:63 +msgid "RTLD_SELF used in code not dynamically loaded" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37 -msgid "Arg list too long" +#: dlfcn/dlinfo.c:72 +msgid "unsupported dlinfo request" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39 -msgid "Bad file number" +#: dlfcn/dlmopen.c:63 +msgid "invalid namespace" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42 -msgid "Not enough space" +#: dlfcn/dlopen.c:64 +msgid "invalid mode parameter" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46 -msgid "Device busy" +#: malloc/mcheck.c:324 +msgid "memory is consistent, library is buggy\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48 -msgid "Cross-device link" +#: malloc/mcheck.c:327 +msgid "memory clobbered before allocated block\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53 -msgid "File table overflow" +#: malloc/mcheck.c:330 +msgid "memory clobbered past end of allocated block\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63 -msgid "Argument out of domain" +#: malloc/mcheck.c:333 +msgid "block freed twice\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64 -msgid "Result too large" +#: malloc/mcheck.c:336 +msgid "bogus mcheck_status, library is buggy\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75 -msgid "Deadlock situation detected/avoided" +#: malloc/memusagestat.c:55 +msgid "Name output file" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76 -msgid "No record locks available" +#: malloc/memusagestat.c:56 +msgid "Title string used in output graphic" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79 -msgid "Disc quota exceeded" +#: malloc/memusagestat.c:57 +msgid "" +"Generate output linear to time (default is linear to number of function " +"calls)" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80 -msgid "Bad exchange descriptor" +#: malloc/memusagestat.c:59 +msgid "Also draw graph for total memory consumption" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81 -msgid "Bad request descriptor" +#: malloc/memusagestat.c:60 +msgid "make output graphic VALUE pixel wide" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82 -msgid "Message tables full" +#: malloc/memusagestat.c:61 +msgid "make output graphic VALUE pixel high" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83 -msgid "Anode table overflow" +#: malloc/memusagestat.c:66 +msgid "Generate graphic from memory profiling data" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84 -msgid "Bad request code" +#: malloc/memusagestat.c:69 +msgid "DATAFILE [OUTFILE]" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86 -msgid "File locking deadlock" +#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:58 +msgid "Unknown error" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88 -msgid "Error 58" +#: string/strsignal.c:69 +#, c-format +msgid "Real-time signal %d" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89 -msgid "Error 59" +#: string/strsignal.c:73 +#, c-format +msgid "Unknown signal %d" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90 -msgid "Not a stream device" +#: timezone/zdump.c:240 +#, c-format +msgid "" +"%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93 -msgid "Out of stream resources" +#: timezone/zdump.c:257 +#, c-format +msgid "%s: wild -c argument %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102 -msgid "Error 72" +#: timezone/zdump.c:347 +msgid "Error writing standard output" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103 -msgid "Error 73" +#: timezone/zdump.c:370 +#, c-format +msgid "" +"%s: use of -v on system with floating time_t other than float or double\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105 -msgid "Error 75" +#: timezone/zic.c:367 +#, c-format +msgid "%s: Memory exhausted: %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106 -msgid "Error 76" +#: timezone/zic.c:392 misc/error.c:129 misc/error.c:157 +msgid "Unknown system error" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107 -msgid "Not a data message" +#: timezone/zic.c:426 +#, c-format +msgid "\"%s\", line %d: %s" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116 -msgid "Attempting to link in more shared libraries than system limit" +#: timezone/zic.c:429 +#, c-format +msgid " (rule from \"%s\", line %d)" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117 -msgid "Can not exec a shared library directly" +#: timezone/zic.c:441 +msgid "warning: " msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118 -msgid "Illegal byte sequence" +#: timezone/zic.c:451 +#, c-format +msgid "" +"%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p " +"posixrules ] \\\n" +"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119 -msgid "Operation not applicable" +#: timezone/zic.c:500 +#, c-format +msgid "%s: More than one -d option specified\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120 -msgid "" -"Number of symbolic links encountered during path name traversal exceeds " -"MAXSYMLINKS" +#: timezone/zic.c:510 +#, c-format +msgid "%s: More than one -l option specified\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121 -msgid "Error 91" +#: timezone/zic.c:520 +#, c-format +msgid "%s: More than one -p option specified\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122 -msgid "Error 92" +#: timezone/zic.c:530 +#, c-format +msgid "%s: More than one -y option specified\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129 -msgid "Option not supported by protocol" +#: timezone/zic.c:540 +#, c-format +msgid "%s: More than one -L option specified\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130 -msgid "Error 100" +#: timezone/zic.c:589 +msgid "link to link" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131 -msgid "Error 101" +#: timezone/zic.c:654 +msgid "hard link failed, symbolic link used" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132 -msgid "Error 102" +#: timezone/zic.c:662 +#, c-format +msgid "%s: Can't link from %s to %s: %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133 -msgid "Error 103" +#: timezone/zic.c:771 timezone/zic.c:773 +msgid "same rule name in multiple files" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134 -msgid "Error 104" +#: timezone/zic.c:814 +msgid "unruly zone" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135 -msgid "Error 105" +#: timezone/zic.c:821 +#, c-format +msgid "%s in ruleless zone" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136 -msgid "Error 106" +#: timezone/zic.c:842 +msgid "standard input" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137 -msgid "Error 107" +#: timezone/zic.c:847 +#, c-format +msgid "%s: Can't open %s: %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138 -msgid "Error 108" +#: timezone/zic.c:858 +msgid "line too long" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139 -msgid "Error 109" +#: timezone/zic.c:878 +msgid "input line of unknown type" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140 -msgid "Error 110" +#: timezone/zic.c:894 +#, c-format +msgid "%s: Leap line in non leap seconds file %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141 -msgid "Error 111" +#: timezone/zic.c:901 timezone/zic.c:1322 timezone/zic.c:1347 +#, c-format +msgid "%s: panic: Invalid l_value %d\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142 -msgid "Error 112" +#: timezone/zic.c:909 +#, c-format +msgid "%s: Error reading %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143 -msgid "Error 113" +#: timezone/zic.c:916 +#, c-format +msgid "%s: Error closing %s: %s\n" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144 -msgid "Error 114" +#: timezone/zic.c:921 +msgid "expected continuation line not found" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145 -msgid "Error 115" +#: timezone/zic.c:965 +msgid "24:00 not handled by pre-1998 versions of zic" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146 -msgid "Error 116" +#: timezone/zic.c:979 +msgid "wrong number of fields on Rule line" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147 -msgid "Error 117" +#: timezone/zic.c:983 +msgid "nameless rule" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148 -msgid "Error 118" +#: timezone/zic.c:988 +msgid "invalid saved time" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149 -msgid "Error 119" +#: timezone/zic.c:1007 +msgid "wrong number of fields on Zone line" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152 -msgid "Operation not supported on transport endpoint" +#: timezone/zic.c:1013 +#, c-format +msgid "\"Zone %s\" line and -l option are mutually exclusive" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154 -msgid "Address family not supported by protocol family" +#: timezone/zic.c:1021 +#, c-format +msgid "\"Zone %s\" line and -p option are mutually exclusive" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159 -msgid "Network dropped connection because of reset" +#: timezone/zic.c:1033 +#, c-format +msgid "duplicate zone name %s (file \"%s\", line %d)" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166 -msgid "Error 136" +#: timezone/zic.c:1049 +msgid "wrong number of fields on Zone continuation line" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167 -msgid "Not a name file" +#: timezone/zic.c:1089 +msgid "invalid UTC offset" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168 -msgid "Not available" +#: timezone/zic.c:1092 +msgid "invalid abbreviation format" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169 -msgid "Is a name file" +#: timezone/zic.c:1119 +msgid "Zone continuation line end time is not after end time of previous line" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171 -msgid "Reserved for future use" +#: timezone/zic.c:1147 +msgid "wrong number of fields on Leap line" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172 -msgid "Error 142" +#: timezone/zic.c:1156 +msgid "invalid leaping year" msgstr "" -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173 -msgid "Cannot send after socket shutdown" +#: timezone/zic.c:1171 timezone/zic.c:1277 +msgid "invalid month name" msgstr "" -#: stdio-common/psignal.c:63 -#, c-format -msgid "%s%sUnknown signal %d\n" +#: timezone/zic.c:1184 timezone/zic.c:1399 timezone/zic.c:1413 +msgid "invalid day of month" msgstr "" -#: malloc/mcheck.c:346 -msgid "memory is consistent, library is buggy\n" +#: timezone/zic.c:1189 +msgid "time before zero" msgstr "" -#: malloc/mcheck.c:349 -msgid "memory clobbered before allocated block\n" +#: timezone/zic.c:1193 +msgid "time too small" msgstr "" -#: malloc/mcheck.c:352 -msgid "memory clobbered past end of allocated block\n" +#: timezone/zic.c:1197 +msgid "time too large" msgstr "" -#: malloc/mcheck.c:355 -msgid "block freed twice\n" +#: timezone/zic.c:1201 timezone/zic.c:1306 +msgid "invalid time of day" msgstr "" -#: malloc/mcheck.c:358 -msgid "bogus mcheck_status, library is buggy\n" +#: timezone/zic.c:1220 +msgid "illegal CORRECTION field on Leap line" msgstr "" -#: malloc/memusagestat.c:53 -msgid "Name output file" +#: timezone/zic.c:1225 +msgid "illegal Rolling/Stationary field on Leap line" msgstr "" -#: malloc/memusagestat.c:54 -msgid "Title string used in output graphic" +#: timezone/zic.c:1241 +msgid "wrong number of fields on Link line" msgstr "" -#: malloc/memusagestat.c:55 -msgid "" -"Generate output linear to time (default is linear to number of function " -"calls)" +#: timezone/zic.c:1245 +msgid "blank FROM field on Link line" msgstr "" -#: malloc/memusagestat.c:57 -msgid "Also draw graph for total memory consumption" +#: timezone/zic.c:1249 +msgid "blank TO field on Link line" msgstr "" -#: malloc/memusagestat.c:58 -msgid "make output graphic VALUE pixel wide" +#: timezone/zic.c:1326 +msgid "invalid starting year" msgstr "" -#: malloc/memusagestat.c:59 -msgid "make output graphic VALUE pixel high" +#: timezone/zic.c:1330 +msgid "starting year too low to be represented" msgstr "" -#: malloc/memusagestat.c:64 -msgid "Generate graphic from memory profiling data" +#: timezone/zic.c:1332 +msgid "starting year too high to be represented" msgstr "" -#: malloc/memusagestat.c:67 -msgid "DATAFILE [OUTFILE]" -msgstr "" - -#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:57 -msgid "Unknown error" -msgstr "" - -#: string/strsignal.c:69 -#, c-format -msgid "Real-time signal %d" -msgstr "" - -#: string/strsignal.c:73 -#, c-format -msgid "Unknown signal %d" -msgstr "" - -#: timezone/zdump.c:175 -#, c-format -msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" -msgstr "" - -#: timezone/zdump.c:268 -msgid "Error writing standard output" -msgstr "" - -#: timezone/zic.c:365 -#, c-format -msgid "%s: Memory exhausted: %s\n" -msgstr "" - -#: timezone/zic.c:390 misc/error.c:127 misc/error.c:155 -msgid "Unknown system error" -msgstr "" - -#: timezone/zic.c:424 -#, c-format -msgid "\"%s\", line %d: %s" -msgstr "" - -#: timezone/zic.c:427 -#, c-format -msgid " (rule from \"%s\", line %d)" -msgstr "" - -#: timezone/zic.c:439 -msgid "warning: " -msgstr "" - -#: timezone/zic.c:449 -#, c-format -msgid "" -"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" -"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" -msgstr "" - -#: timezone/zic.c:491 -#, c-format -msgid "%s: More than one -d option specified\n" -msgstr "" - -#: timezone/zic.c:501 -#, c-format -msgid "%s: More than one -l option specified\n" -msgstr "" - -#: timezone/zic.c:511 -#, c-format -msgid "%s: More than one -p option specified\n" -msgstr "" - -#: timezone/zic.c:521 -#, c-format -msgid "%s: More than one -y option specified\n" -msgstr "" - -#: timezone/zic.c:531 -#, 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" -msgstr "" - -#: timezone/zic.c:645 -msgid "hard link failed, symbolic link used" -msgstr "" - -#: timezone/zic.c:653 -#, c-format -msgid "%s: Can't link from %s to %s: %s\n" -msgstr "" - -#: timezone/zic.c:751 timezone/zic.c:753 -msgid "same rule name in multiple files" -msgstr "" - -#: timezone/zic.c:794 -msgid "unruly zone" -msgstr "" - -#: timezone/zic.c:801 -#, c-format -msgid "%s in ruleless zone" -msgstr "" - -#: timezone/zic.c:822 -msgid "standard input" -msgstr "" - -#: timezone/zic.c:827 -#, c-format -msgid "%s: Can't open %s: %s\n" -msgstr "" - -#: timezone/zic.c:838 -msgid "line too long" -msgstr "" - -#: timezone/zic.c:858 -msgid "input line of unknown type" -msgstr "" - -#: timezone/zic.c:874 -#, 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 -#, c-format -msgid "%s: panic: Invalid l_value %d\n" -msgstr "" - -#: timezone/zic.c:889 -#, c-format -msgid "%s: Error reading %s\n" -msgstr "" - -#: timezone/zic.c:896 -#, c-format -msgid "%s: Error closing %s: %s\n" -msgstr "" - -#: timezone/zic.c:901 -msgid "expected continuation line not found" -msgstr "" - -#: timezone/zic.c:957 -msgid "wrong number of fields on Rule line" -msgstr "" - -#: timezone/zic.c:961 -msgid "nameless rule" -msgstr "" - -#: timezone/zic.c:966 -msgid "invalid saved time" -msgstr "" - -#: timezone/zic.c:985 -msgid "wrong number of fields on Zone line" -msgstr "" - -#: timezone/zic.c:991 -#, c-format -msgid "\"Zone %s\" line and -l option are mutually exclusive" -msgstr "" - -#: timezone/zic.c:999 -#, c-format -msgid "\"Zone %s\" line and -p option are mutually exclusive" -msgstr "" - -#: timezone/zic.c:1011 -#, c-format -msgid "duplicate zone name %s (file \"%s\", line %d)" -msgstr "" - -#: timezone/zic.c:1027 -msgid "wrong number of fields on Zone continuation line" -msgstr "" - -#: timezone/zic.c:1067 -msgid "invalid UTC offset" -msgstr "" - -#: timezone/zic.c:1070 -msgid "invalid abbreviation format" -msgstr "" - -#: timezone/zic.c:1096 -msgid "Zone continuation line end time is not after end time of previous line" -msgstr "" - -#: timezone/zic.c:1123 -msgid "wrong number of fields on Leap line" -msgstr "" - -#: timezone/zic.c:1132 -msgid "invalid leaping year" -msgstr "" - -#: timezone/zic.c:1147 timezone/zic.c:1250 -msgid "invalid month name" -msgstr "" - -#: timezone/zic.c:1160 timezone/zic.c:1372 timezone/zic.c:1386 -msgid "invalid day of month" -msgstr "" - -#: timezone/zic.c:1165 -msgid "time before zero" -msgstr "" - -#: timezone/zic.c:1173 timezone/zic.c:2049 timezone/zic.c:2068 -msgid "time overflow" -msgstr "" - -#: timezone/zic.c:1176 timezone/zic.c:1279 -msgid "invalid time of day" -msgstr "" - -#: timezone/zic.c:1195 -msgid "illegal CORRECTION field on Leap line" -msgstr "" - -#: timezone/zic.c:1199 -msgid "illegal Rolling/Stationary field on Leap line" -msgstr "" - -#: timezone/zic.c:1214 -msgid "wrong number of fields on Link line" -msgstr "" - -#: timezone/zic.c:1218 -msgid "blank FROM field on Link line" -msgstr "" - -#: timezone/zic.c:1222 -msgid "blank TO field on Link line" -msgstr "" - -#: timezone/zic.c:1299 -msgid "invalid starting year" -msgstr "" - -#: timezone/zic.c:1303 timezone/zic.c:1328 -msgid "starting year too low to be represented" +#: timezone/zic.c:1351 +msgid "invalid ending year" msgstr "" -#: timezone/zic.c:1305 timezone/zic.c:1330 -msgid "starting year too high to be represented" +#: timezone/zic.c:1355 +msgid "ending year too low to be represented" msgstr "" -#: timezone/zic.c:1324 -msgid "invalid ending year" +#: timezone/zic.c:1357 +msgid "ending year too high to be represented" msgstr "" -#: timezone/zic.c:1333 +#: 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" +".\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/aicache.c:76 nscd/hstcache.c:438 +#, c-format +msgid "Reloading \"%s\" in hosts cache!" msgstr "" -#: nscd/cache.c:150 nscd/connections.c:187 +#: nscd/cache.c:127 #, c-format -msgid "cannot stat() file `%s': %s" +msgid "add new entry \"%s\" of type %s for %s to cache%s" msgstr "" -#: nscd/connections.c:146 -msgid "cannot read configuration file; this is fatal" +#: nscd/cache.c:207 nscd/connections.c:501 +#, c-format +msgid "cannot stat() file `%s': %s" msgstr "" -#: nscd/connections.c:153 +#: 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 "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:362 +#, c-format +msgid "cannot create %s; no persistent database used" +msgstr "" + +#: nscd/connections.c:365 #, c-format -msgid "while allocating cache: %s" +msgid "cannot create %s; no sharing possible" msgstr "" -#: nscd/connections.c:200 +#: 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 "while accepting connection: %s" +msgid "cannot change to old UID: %s; disabling paranoia mode" msgstr "" -#: nscd/connections.c:482 +#: nscd/connections.c:914 +#, c-format +msgid "cannot change to old GID: %s; disabling paranoia mode" +msgstr "" + +#: nscd/connections.c:927 +#, c-format +msgid "cannot change to old working directory: %s; disabling paranoia mode" +msgstr "" + +#: 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/grpcache.c:196 nscd/hstcache.c:282 nscd/pwdcache.c:192 +#: nscd/connections.c:1591 +msgid "getgrouplist failed" +msgstr "" + +#: 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: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:154 +#: 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 cache hits on positive entries\n" +"%15 cache hits on negative entries\n" +"%15 cache misses on positive entries\n" +"%15 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 number of delays on rdlock\n" +"%15 number of delays on wrlock\n" +"%15 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-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:118 +#: 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" +".\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 +#include +#include +#include +#include + + +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 - #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 ." 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 +#include + +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 #include +#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 #include @@ -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 directly; use 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 ?: "", - strtab + refsym->st_name); - } - memcpy (reloc_addr_arg, (void *) value, - MIN (sym->st_size, refsym->st_size)); - break; + rtld_progname ?: "", + 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 + + .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 @@ -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 ?: "", - 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 ?: "", + 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 + + .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 #include +#include -/* 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 +/* 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 +#include +#include +#include + +#include +#include +#include + +/* 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" -- cgit v1.2.3