glibc/elf
Ulrich Drepper 32e6df3621 Update.
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-12 00:21:26 +00:00
..
.cvsignore
cache.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
chroot_canon.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
constload1.c
constload2.c Add prototype for init. 2001-01-21 17:15:50 +00:00
constload3.c Update. 2000-12-17 17:50:56 +00:00
dblload.c Update. 2001-09-06 01:03:05 +00:00
dblloadmod1.c Update. 2001-09-06 01:03:05 +00:00
dblloadmod2.c Update. 2001-09-06 01:03:05 +00:00
dblloadmod3.c Update. 2001-09-06 01:03:05 +00:00
dblunload.c Update. 2001-09-06 01:03:05 +00:00
dep1.c
dep2.c
dep3.c
dep4.c
dl-addr.c Update. 2001-08-23 02:46:15 +00:00
dl-close.c Update. 2001-09-08 20:03:14 +00:00
dl-conflict.c Update. 2001-12-12 00:21:26 +00:00
dl-debug.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-deps.c Update. 2001-12-12 00:21:26 +00:00
dl-dst.h Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-error.c Update. 2001-09-05 03:42:43 +00:00
dl-fini.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-init.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-iteratephdr.c * sysdeps/generic/ldsodefs.h (_dl_load_lock): Declare it here with 2001-08-23 06:03:42 +00:00
dl-libc.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-load.c Update. 2001-12-12 00:21:26 +00:00
dl-lookup.c Update. 2001-12-12 00:21:26 +00:00
dl-minimal.c (realloc): Handle NULL for first parameter correctly. 2001-11-10 03:23:20 +00:00
dl-misc.c Update. 2001-11-08 01:48:57 +00:00
dl-object.c Update. 2001-11-08 22:32:38 +00:00
dl-open.c Update. 2001-10-01 00:14:14 +00:00
dl-profile.c Update. 2001-11-07 06:32:27 +00:00
dl-profstub.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
dl-reloc.c Update. 2001-11-12 21:04:45 +00:00
dl-runtime.c Update. 2001-12-12 00:21:26 +00:00
dl-support.c Update. 2001-09-01 06:10:36 +00:00
dl-sym.c Update. 2001-09-05 03:42:43 +00:00
dl-version.c Update. 2001-11-07 23:21:00 +00:00
do-lookup.h Update. 2001-08-26 22:28:16 +00:00
do-rel.h Update. 2001-12-12 00:21:26 +00:00
dynamic-link.h Update. 2001-12-12 00:21:26 +00:00
elf.h Update. 2001-12-12 00:21:26 +00:00
failobj.c Update. 2000-12-17 17:50:56 +00:00
filter.c
filtmod1.c Update. 2000-12-17 17:50:56 +00:00
filtmod2.c Update. 2000-12-17 17:50:56 +00:00
firstobj.c Add prototype. 2001-02-06 10:38:10 +00:00
gen-trusted-dirs.awk
genrtldtbl.awk
global.c (main): Use proper prototype. 2001-03-21 07:21:34 +00:00
globalmod1.c Update. 2001-04-06 15:23:41 +00:00
initfirst.c Update. 2001-02-02 06:54:15 +00:00
interp.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
lateglobal.c
ldconfig.c Update. 2001-08-23 23:36:47 +00:00
ldd.bash.in Update. 2001-09-19 03:25:37 +00:00
link.h Update. 2001-07-25 20:47:02 +00:00
loadfail.c
loadtest.c Update. 2001-09-08 16:27:08 +00:00
ltglobmod1.c Update. 2000-12-17 17:50:56 +00:00
ltglobmod2.c
Makefile Update. 2001-12-12 00:21:26 +00:00
multiload.c
neededobj1.c Update. 2000-12-17 17:50:56 +00:00
neededobj2.c Update. 2000-12-17 17:50:56 +00:00
neededobj3.c Update. 2000-12-17 17:50:56 +00:00
neededobj4.c Update. 2000-12-17 17:50:56 +00:00
neededobj5.c Update. 2000-12-31 06:09:08 +00:00
neededobj6.c Update. 2000-12-31 06:09:08 +00:00
neededtest2.c
neededtest3.c
neededtest4.c Update. 2000-12-31 06:09:08 +00:00
neededtest.c
next.c
nextmod1.c Update. 2000-12-17 17:50:56 +00:00
nextmod2.c Update. 2000-12-17 17:50:56 +00:00
nodelete.c
nodelmod1.c
nodelmod2.c
nodelmod3.c Update. 2000-12-17 17:50:56 +00:00
nodelmod4.c
nodlopen.c
nodlopenmod.c
noload.c
order.c
origtest.c
pathoptobj.c Update. 2000-12-17 17:50:56 +00:00
preloadtest.c
readlib.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
reldep2.c Update. 2001-09-08 17:45:32 +00:00
reldep3.c
reldep4.c Avoid compile warning. 2001-09-22 15:44:07 +00:00
reldep4mod1.c Update. 2001-05-22 23:55:23 +00:00
reldep4mod2.c Update. 2001-06-22 13:50:51 +00:00
reldep4mod3.c Update. 2001-05-22 23:55:23 +00:00
reldep4mod4.c Update. 2001-06-22 13:50:51 +00:00
reldep5.c Update. 2001-09-22 15:44:35 +00:00
reldep6.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod0.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod1.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod2.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod3.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod4.c Update. 2001-10-01 00:14:14 +00:00
reldep.c
reldepmod1.c Update. 2000-12-17 17:50:56 +00:00
reldepmod2.c Update. 2000-12-17 17:50:56 +00:00
reldepmod3.c Update. 2000-12-17 17:50:56 +00:00
reldepmod4.c Update. 2000-12-17 17:50:56 +00:00
reldepmod5.c Update. 2001-09-08 16:27:08 +00:00
reldepmod6.c Update. 2001-09-08 16:27:08 +00:00
resolvfail.c
restest1.c
restest2.c Update. 2001-05-22 22:30:18 +00:00
rtld.c Update. 2001-12-12 00:21:26 +00:00
sln.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
sofini.c
soinit.c Update. 2001-11-16 01:27:24 +00:00
sprof.c Update. 2001-09-23 02:10:30 +00:00
testobj1_1.c
testobj1.c
testobj2.c
testobj3.c
testobj4.c
testobj5.c
testobj6.c
testobj.h
tst-pathopt.c
tst-pathopt.sh Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
unload2.c
unload2dep.c Update. 2000-12-17 17:50:56 +00:00
unload2mod.c Update. 2000-12-17 17:50:56 +00:00
unload.c
unloadmod.c
Versions Update. 2001-12-06 07:59:42 +00:00
vismain.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
vismod1.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
vismod2.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
vismod3.c Update to LGPL v2.1. 2001-07-06 04:58:11 +00:00
vismod.h Update. 2000-12-17 17:09:01 +00:00