* elf/dblloadmod2.c: Likewise.
* elf/dblloadmod3.c: Likewise.
* elf/reldepmod5.c: Likewise.
* elf/reldepmod6.c: Likewise.
* elf/dl-conflict.c (_dl_resolve_conflicts): Add unused attribute
for resolve_conflict_map since RESOLVE_CONFLICT_FIND_MAP is not
used on all architectures.
* sunrpc/svc_tcp.c: Add noreturn attribute for
svctcp_rendezvous_abort.
* sunrpc/svc_unix.c: Likewise for svcunix_rendezvous_abort.
* sysdeps/generic/strstr.c (strstr): Add paranthese for assignment
to avoid warning.
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-11-12 Ulrich Drepper <drepper@redhat.com>
* elf/dl-reloc.c (_dl_relocate_object): Avoid iterating over
program header twice. Construct list with the needed information.
2001-11-09 Ulrich Drepper <drepper@redhat.com>
* elf/dl-minimal.c (realloc): Handle NULL for first parameter
correctly.
* elf/dl-load.c (is_dst): New function.
(_dl_dst_count): Use is_dst to check for DST variable.
(_dl_dst_substitute): Likewise.
2001-11-09 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object_from_fd): Delete code to remove
from object list when DF_1_NOOPEN is seen. This is done in lose.
2001-11-06 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object_from_fd): Don't call
_dl_signal_error directly, always use lose. Set fd to -1 after
file is closed.
(lose): Don't call close if fd == -1.
* elf/dl-profile.c: Replace state variable with simple flag named
running. Remove commented-out code.
* elf/dl-reloc.c (_dl_relocate_object): Likewise.
* elf/elf.h: Add dynamic tag definitions for prelinking.
* elf/rtld.c (process_envvars): Avoid using array of string pointers.
Rewrite code to remove environment varables for SUID binaries.
Small optimization in LD_PROFILE handling.
* sysdeps/generic/unsecvars.h: Adjust format for process_envvars
changes.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* sysdeps/generic/dl-sysdep.c: Don't initialize _dl_cpuclock_offset.
* elf/dl-reloc.c (_dl_reloc_bad_type): Rewrite to not use writable
strings. Change type of second parameter.
* sysdeps/generic/ldsodefs.h: Adjust _dl_reloc_bad_type prototype
for last change.
2001-11-01 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object): Correct test of DF_1_NODEFLIB
for rtld_search_dirs content. Minor optimizations.
2001-10-31 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object): Make code a bit more compact by
avoiding unnecessary duplication.
2001-10-31 Jakub Jelinek <jakub@redhat.com>
* elf/dl-load.c (_dl_map_object): If library was found using
LD_LIBRARY_PATH, don't try RUNPATH list.
2001-10-29 Kevin Ryde <user42@zip.com.au>
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* string/strxfrm.c [USE_IN_EXTENDED_LOCALE_MODEL]: Correctly get
nrules value.
2001-10-24 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/bits/dlfcn.h (DL_CALL_FCT): Cast to void *.
Use __BEGIN_DECLS/__END_DECLS around prototypes.
* sysdeps/mips/bits/dlfcn.h (DL_CALL_FCT): Likewise.
2001-10-21 Jim Meyering <meyering@lucent.com>
* malloc/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
this code would end up calling gettext even in packages built
with --disable-nls.
* posix/getopt.c (_): Likewise.
* posix/regex.c (_): Likewise.
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* resolv/gethnamaddr.c (gethostbyaddr): Use ip6.addr for reverse
lookup not ip6.int.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.
Reported by Martin.v.Loewis@t-online.de [PR libc/2598].
2001-10-19 Jakub Jelinek <jakub@redhat.com>
* misc/sys/cdefs.h (__attribute_used__): Define.
* elf/rtld.c (_dl_start): Add __attribute_used__.
* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
2001-10-10 Ulrich Drepper <drepper@redhat.com>
* elf/elf.h: Add more ELFOSABI_* constants.
(sparc64_fixup_plt): Moved from elf_machine_fixup_plt. Optimize
2001-09-29 Jes Sorensen <jes@trained-monkey.org>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
Add sc_loadrs and sc_rbs_bas to match current kernel.
2001-09-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
* sysdeps/ieee754/ldbl-128/s_erfl.c (__erfcl): Fix erfc(-inf).
2001-09-27 Jakub Jelinek <jakub@redhat.com>
* elf/dl-open.c (dl_open_worker): If l_opencount of freshly loaded
object has been bumped because of relocation dependency, avoid
duplicates in l_scope.
(show_scope): Fix typos.
* elf/Makefile: Add rules to build and run reldep6.
* elf/reldep6.c: New file.
* elf/reldep6mod0.c: New file.
* elf/reldep6mod1.c: New file.
* elf/reldep6mod2.c: New file.
* elf/reldep6mod3.c: New file.
* elf/reldep6mod4.c: New file.
2001-09-26 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_fixup_plt): Call
sparc64_fixup_plt.
(sparc64_fixup_plt): Moved from elf_machine_fixup_plt. Optimize
near jumps and 0xfffff800XXXXXXXX target addresses, no thread safety
for non-lazy binding. Fix .plt[32768+] handling.
(elf_machine_plt_value): Don't add addend.
(elf_machine_rela): Call sparc64_fixup_plt instead of
elf_machine_fixup_plt.
(elf_machine_runtime_setup, TRAMPOLINE_TEMPLATE): Optimize for
dynamic linker at 0xfffff800XXXXXXXX.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
2001-09-20 H.J. Lu <hjl@gnu.org>
* include/dlfcn.h (__RTLD_SPROF): New definiton.
* elf/dl-open.c (dl_open_worker): Return immediately after loading
for __RTLD_SPROF.
* elf/sprof.c (main): Default to the filename if soname doesn't exist.
(load_shobj): Call dlopen with `RTLD_LAZY | __RTLD_SPROF.
2001-09-20 H.J. Lu <hjl@gnu.org>
* elf/dl-profile.c (_dl_mcount): Use old *narcsp value for newarc,
don't add 1.
2001-09-22 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c: Accept -s parameter to overwrite rules in
nsswitch.conf. Patch by Nalin Dahyabhai <nalin@redhat.com>.
* nss/nss_files/files-network.c (LINE_PARSER): Pad addr string
with as many ".0" as necessary to form a complete address
inet_network understands.
* nss/getent.c: Various cleanups. Use simpler and fewer function
calls.
2001-09-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bits/setjmp.h: Correct pointer comparison in
_JMPBUF_UNWINDS.
* sysdeps/s390/s390-64/bits/setjmp.h: Likewise.
2001-09-22 Ulrich Drepper <drepper@redhat.com>
* iconvdata/Makefile: Add rules to build and distribute IBM1160 and
IBM1161.
* iconvdata/gconv-modules: Add entries for IBM1160 and IBM1161.
* iconvdata/ibm1160.c: New file.
* iconvdata/ibm1160.h: New file.
* iconvdata/ibm1161.c: New file.
* iconvdata/ibm1161.h: New file.
2001-09-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_load_address): Compute the
difference between base address and first PT_LOAD's virtual address,
not the base address.
2001-09-11 Tom Rix <trix@redhat.com>
* sysdeps/unix/sysv/aix/init-first.c (init): Use USE_NONONPTION_FLAG
ifdef for __getopt_clean_environment.
* sysdeps/unix/sysv/aix/libc-start.c: Add real implementation.
* sysdeps/unix/sysv/linux/x86_64/Dist: New file.
* sysdeps/x86_64/Dist: New file.
* sysdeps/x86_64/soft-fp/Dist: New file.
2001-09-13 Jakub Jelinek <jakub@redhat.com>
* elf/dl-deps.c (_dl_map_object_deps): Fix filter handling if filter
is already found earlier in the search scope.
2001-09-12 Jakub Jelinek <jakub@redhat.com>
* rt/Makefile (LDFLAGS-rt.so): Use shared thread library as librt's
filter.
2001-09-08 Ben Collins <bcollins@debian.org>
* sysdeps/arm/dl-machine.h (elf_machine_rel): Fix thinko in
usage of RESOLVE() (r_type, not reloc->r_type).
2001-09-08 Ulrich Drepper <drepper@redhat.com>
* elf/dl-object.c: Avoid allocating extra memory block for name.
* elf/dl-close.c (_dl_close): Don't free l_libname if it is no
allocated separately.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
2001-09-08 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (_dl_close): If object has no r_list (i.e., wasn't
loaded directly) determine length if l_initfini list by iterating
over its elements. Minor optimizations.
* elf/dl-deps.c (_dl_map_object_deps): Always add own map to l_initfini
for dependency objects.
If object was already loaded check whether any of the dependencies
is already on the relocation dependency list. If yes, remove the
latter. Minor optimizations.
* elf/dl-lookup.c (add_dependency): Add check for self reference of
maps here. Search l_initfini list only if the object was loaded
directly and not only as a dependency.
(_dl_lookup_symbol): Add relocation dependency also if object
is not in global scope. Remove test for self-reference here.
(_dl_lookup_versioned_symbol): Likewise.
* elf/dl-object (_dl_new_object): Cleanup. Initialize dont_free
element of first name record.
* elf/loadtest.c: Add some more test to recognize early if an object
wasn't unloaded.
* elf/Makefile: Add rules to build and run reldep5.
* elf/reldep5.c: New file.
* elf/reldepmod5.c: New file.
* elf/reldepmod6.c: New file.
* elf/reldep2.c: Fix typo.
* elf/dl-object.c (_dl_new_object): Initialize l_scope and l_scope_max.
2001-09-07 Ulrich Drepper <drepper@redhat.com>
* include/link.h (struct link_map): Add l_scope_mem and l_scope_max
elements. Change l_scope to be a pointer only.
* elf/dl-object.c (_dl_new_ojbect): Initialize l_scope and l_scope_max.
* elf/dl-open.c (dl_open_worker): If dependency wasn't just opened
here add searchlist of newly open file to the dependency's scope.
* elf/dl-close.c (_dl_close): If dependency is used otherwise remove
only searchlist from its scope. Free own scope array if necessary.
* elf/Makefile (tests): Add dblload and dblunload now.