2001-12-17 Ulrich Drepper <drepper@redhat.com>
* io/ftw.c (ftw_dir): Handle inaccessibility of toplevel dir
different than implemented in last patch.
* io/bug-ftw3.c: Adjust test for changed handling of
inaccessibility of toplevel dir.
`default:' to silence new GCC warning.
Rewrite cast of lvalue to silence new GCC warning.
* sysdeps/mach/hurd/i386/init-first.c: Avoid multi-line strings in asm.
2001-12-13 Ulrich Drepper <drepper@redhat.com>
* stdio-common/tst-sprintf.c: New file.
2001-12-13 Andreas Schwab <schwab@suse.de>
* stdio-common/vfprintf.c (process_string_arg): Correctly handle
zero precision with wide character string format.
2001-12-13 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/posix/cuserid.c (cuserid): If we don't find the UID,
but have a user supplied buffer, return the empty buffer, not NULL.
2001-12-13 Ulrich Drepper <drepper@redhat.com>
* crypt/md5.c (md5_process_bytes): Correct handling of alignment.
Patch by Eric Sharkey <sharkey@netrics.com>.
* crypt/md5test.c (main): Add test for multiple calls to
__md5_process_bytes to itererate over input string.
2001-12-12 Ulrich Drepper <drepper@redhat.com>
* nis/nis_findserv.c (__nis_findfastest_with_timeout): Mostly the code
from __nis_findfastest. Take timeout value from parameter.
(__nis_findfastest): Call __nis_findfastest_with_timeout repeatedly.
* nis/nis_intern.h: Define parameters controlling __nis_findfastest.
Patch by Alexander Belopolsky <alexb@rentec.com>.
* sysdeps/arm/dl-machine.h (elf_machine_rela): Fix typo in last patch.
combreloc test so that it works in this case.
2001-12-12 Andreas Jaeger <aj@suse.de>
* configure.in: Use -nostartfiles -nostdlib for linker tests, fix
combreloc test so that it works in this case.
* sysdeps/arm/dl-machine.h (elf_machine_rela): Fix typo in last
patch.
2001-12-12 NIIBE Yutaka <gniibe@m17n.org>
* sysdeps/sh/Makefile: New file.
* sysdeps/sh/_mcount.S: New file.
* sysdeps/sh/sysdep.h (CALL_MCOUNT): Implemented.
* sysdeps/sh/machine-gmon.h: Remove "NOTYET" comment, as we are ready.
2001-12-11 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile (dl-routines): Add conflict.
(rtld-ldscript-in, rtld-ldscript, rtld-parms): Remove.
(ld.so): Add _begin local symbol.
* elf/elf.h (DT_VALTAGIDX, DT_VALNUM, DT_ADDRTAGIDX, DT_ADDRNUM):
Define.
* elf/dl-deps.c (_dl_build_local_scope): New.
(_dl_map_object_deps): If LD_TRACE_PRELINKING, compute local scopes
of all libraries.
* elf/do-rel.h (VALIDX): Define.
(elf_dynamic_do_rel): If ELF_MACHINE_PLT_REL is defined, don't do
lazy binding for RELA. If DT_GNU_PRELINKED, DT_RELACOUNT relocations
can be skipped.
* elf/dl-conflict.c: New file.
* elf/dl-lookup.c (_dl_debug_bindings): New.
(_dl_lookup_symbol): Use _dl_debug_bindings. Reference_name is always
non-NULL.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
* elf/dl-runtime.c (PLTREL): If ELF_MACHINE_PLT_REL is defined,
define to ElfW(Rel).
* elf/dynamic-link.h (elf_get_dynamic_info): Record selected dynamic
tags in the DT_VALRNGLO..DT_VALRNGHI and DT_ADDRRNGLO..DT_ADDRRNGHI
ranges.
Don't adjust address dynamic tags if l_addr is 0.
* elf/rtld.c (_dl_trace_prelink, _dl_trace_prelink_map): New variables.
(_dl_start): Skip ELF_DYNAMIC_RELOCATE if ld.so is prelinked.
(VALIDX, ADDRIDX): Define.
(_dl_start_final): Initialize _dl_rtld_map's l_map_start and l_map_end.
(dl_main): Print library list for LD_TRACE_PRELINKING.
If prelinking information can be used, skip relocating libraries and
call _dl_resolve_conflicts instead.
(process_envvars): Handle LD_TRACE_PRELINKING envvar.
* elf/dl-load.c (_dl_map_object): Don't create fake libs
if LD_TRACE_PRELINKING.
* include/link.h (struct link_map) [l_info]: Add DT_VALNUM
+ DT_ADDRNUM.
* sysdeps/generic/ldsodefs.h (_dl_trace_prelink_map): New declaration.
(DL_DEBUG_PRELINK): Define.
(_dl_resolve_conflicts): Add prototype.
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Reinitialize
.plt for prelinked libraries where prelinking info cannot be used.
(elf_machine_rela): If relocating R_ALPHA_JMP_SLOT in .gnu.conflict
section, use RESOLVE_CONFLICT_FIND_MAP to find out reloc's link_map.
* sysdeps/arm/bits/link.h: New file.
* sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(ELF_MACHINE_NO_RELA): Only define if RTLD_BOOTSTRAP.
(ELF_MACHINE_PLT_REL): Define.
(elf_machine_rela, elf_machine_rela_relative): New.
(elf_machine_lazy_rel): Reinitialize R_ARM_JUMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/i386/bits/link.h: New file.
* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(ELF_MACHINE_NO_RELA): Only define if RTLD_BOOTSTRAP.
(ELF_MACHINE_PLT_REL): Define.
(elf_machine_rela, elf_machine_rela_relative): New.
(elf_machine_lazy_rel): Reinitialize R_386_JUMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/powerpc/dl-machine.h (elf_machine_rela): If relocating
conflicts, skip finaladdr computation. Use RESOLVE_CONFLICT_FIND_MAP
to find out map for R_PPC_JMP_SLOT relocs.
* sysdeps/sparc/sparc32/dl-machine.h (VALIDX): Define.
(OPCODE_BA): Define.
(elf_machine_runtime_setup): Reinitialize .plt for prelinked
libraries where prelinking info cannot be used.
(sparc_fixup_plt): Renamed from elf_machine_fixup_plt.
(elf_machine_fixup_plt): Call sparc_fixup_plt.
(elf_machine_rela): Set value to 0 if relocating conflicts.
Call sparc_fixup_plt for R_SPARC_JMP_SLOT.
* sysdeps/sparc/sparc64/dl-machine.h (VALIDX): Define.
(sparc64_fixup_plt): Fix a typo.
(elf_machine_rela): Set value to 0 if relocating conflicts.
Handle R_SPARC_JMP_SLOT relocs when relocating conflicts.
(elf_machine_runtime_setup): Reinitialize .plt for prelinked
libraries where prelinking info cannot be used.
* sysdeps/sh/bits/link.h: New file.
* sysdeps/sh/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_SH_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/s390/s390-32/bits/link.h: New file.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_390_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/s390/s390-64/bits/link.h: New file.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_390_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/x86_64/bits/link.h: New file.
* sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_X86_64_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
2001-12-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use sizeof
where appropriate instead of numbers. Little optimizations.
* sysdeps/mach/hurd/configure.in (libc_cv_gcc_unwind_find_fde):
Fix conditionals so this is set by default for stdio and not for libio.
* sysdeps/mach/hurd/configure: Regenerated.
2001-12-10 Thorsten Kukuk <kukuk@suse.de>
* io/ftw.c (ftw_startup): Check, if the path is search and readable.
* io/Makefile (tests): Add bug-ftw3.
* io/bug-ftw3.c: New file.
2001-12-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/glob.c (glob): Return only pattern if nothing
matches and GLOB_NOCHECK is set.
* posix/globtest.sh: Correct expected result for NOCHECK test.
* po/ca.po: Update from translation team.
2001-12-06 Ulrich Drepper <drepper@redhat.com>
* libio/vasprintf.c (_IO_vasprintf): Free buffer on failure.
* assert/assert.c: Check result of __asprintf call and don't use
string if it failed.
* assert/assert-perr.c: Likewise.
* inet/rcmd.c: Likewise.
* locale/programs/localedef.c (main): Check result of
construct_output_path and exit if it failed.
(construct_output_path): Check result of asprintf and mkdir calls and
fail if they failed.
* posix/getopt.c: Check result of __asprintf calls and fail if
they failed.
Patch by Dmitry V. Levin <ldv@alt-linux.org>.