Commit Graph

183 Commits

Author SHA1 Message Date
Ulrich Drepper
62dcee574f Replace _dl_debug_* variables with _dl_debug_mask. 2001-02-27 09:34:31 +00:00
Ulrich Drepper
1e71bd5279 Update.
* elf/rtld.c (process_envvars): Call __strtoul_internal instead of
	strtoul.
	* elf/dl-minimal.c (strtol, __strtol_internal, strtoul): Removed.
	(__sigjmp_save): Set __mask_was_saved to zero since we don't save
	anything.
	* dlfcn/eval.c (__strtol_internal): Define here.
	(eval): Use __strtol_internal instead of strtol.
2001-01-19 00:36:48 +00:00
Ulrich Drepper
92effacf83 Update.
* elf/rtld.c (process_envvars): Place output files for profiling
	in SUID binaries in /var/profile.
2001-01-09 04:32:41 +00:00
Andreas Jaeger
72f70279f4 Update.
* sysdeps/unix/sysv/linux/init-first.c: Include <libc-internals.h>
	for prototypes, remove redundant prototypes.
	* gmon/gmon.c: Likewise.
	* sysdeps/unix/i386/i586/clock_getres.c: Likewise.
	* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.

	* sysdeps/generic/enbl-secure.c: Include <libc-internals.h> for
	prototypes.
	* elf/soinit.c: Likewise.
	* sysdeps/generic/prof-freq.c: Likewise.
	* sysdeps/mach/hurd/profil.c: Likewise.
	* debug/noophooks.c: Likewise.
	* debug/pcprofile.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/get_clockfreq.c: Likewise.
	* sysdeps/generic/get_clockfreq.c: Likewise.

	* locale/localeinfo.h: Add internal prototypes.

	* elf/rtld.c (dl_main): Fix prototype.
2000-12-31 18:24:24 +00:00
Andreas Jaeger
48896b9dba Update.
2000-12-05  Andreas Jaeger  <aj@suse.de>

	* elf/dl-misc.c (_dl_sysdep_read_whole_file): Mark as
	internal_function.
	* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Likewise.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start_cleanup): Likewise.

	* sysdeps/generic/dl-cache.c: Remove declaration of
	_dl_sysdep_read_whole_file.

	* elf/dl-load.c (_dl_map_object): Remove declaration of
	_dl_load_cache_lookup.

	* sysdeps/generic/ldsodefs.h: Add declarations of
	_dl_load_cache_lookup, _dl_unload_cache,
	_dl_sysdep_read_whole_file, _dl_sysdep_start and
	_dl_sysdep_start_cleanup.

	* elf/rtld.c: Remove prototypes that are defined in ldsodefs.h
	now.

	* elf/dl-misc.c: Include <ldsodefs.h> to get prototypes.
	* sysdeps/generic/dl-environ.c: Likewise.

	* stdio-common/printf_fp.c: Include <gmp.h> instead of
	<stdlib/gmp.h>.
	* math/atest-exp.c: Likewise.
	* math/atest-exp2.c: Likewise.
	* math/atest-sincos.c: Likewise.
	* stdio-common/_itoa.c: Likewise.
	* stdio-common/_itowa.c: Likewise.

	* include/gmp.h: New file with internal prototypes.

	* sysdeps/generic/longjmp.c: Move _longjmp_unwind declaration from
	here to...
	* include/setjmp.h: ...here.

	* locale/Makefile (routines): Remove codeset_name since it's not
	needed anywhere.

	* locale/codeset_name.c: Removed.
2000-12-05 17:34:28 +00:00
Ulrich Drepper
42c4f32a44 Update.
2000-10-24  Ulrich Drepper  <drepper@redhat.com>

	Complete revamp of the reference counter handling.
	* include/link.h (struct link_map): Add l_idx field.
	* elf/dl-close.c: Handle decrementing of reference counters more
	correctly. If necessary decrement reference counters of dependencies
	of dependencies.
	* elf/dl-lookup.c (add_dependency): Only increment reference counter
	of the object itself and not also its dependencies.
	* elf/dl-open.c: Increment reference counters here.
	* elf/dl-deps.c: Remove reference counter handling here.
	* elf/dl-load.c: Likewise.
	* elf/rtld.c: Adjust for _dl_map_deps not handling reference counters.

	* elf/loadtest.c: Print loaded objects at the beginning.
2000-10-24 07:36:55 +00:00
Ulrich Drepper
a881e0a074 Update.
* include/link.h (struct link_map): New bit field l_faked.
	* elf/dl-deps.c: Use l_faked field in struct link_map instead of
	the magic l_opencount==0.
	* elf/dl-load.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/rtld.c: Likewise.
2000-10-24 01:02:15 +00:00
Ulrich Drepper
74955460c5 Update.
2000-09-26  Thorsten Kukuk  <kukuk@suse.de>

	* nscd/dbg_log.c (dbg_log): Add missing format string.

	* catgets/catgets.c (catopen): Use getenv instead of __secure_getenv
	since we filter out the variable once.
	* iconv/gconv_conf.c (__gconv_get_path): Likewise.
	* locale/newlocale.c (__newlocale): Likewise.
	* locale/setlocale.c (setlocale): Likewise.
	* malloc/malloc.c (ptmalloc_init): Likewise.
	* resolv/res_hconf.c (_res_hconf_init): Likewise.
	* resolv/res_init.c (__res_vinit): Likewise.
	* time/tzfile.c (__tzfile_read): Likewise.
	* sysdeps/generic/unsecvars.h: New file.
	* elf/dl-support.c (non_dynamic_init): Use it here to remove variables.
	* elf/rtld.c (process_envvars): Likewise.
	* elf/Makefile (distribute): Add unsecvars.h.
2000-09-26 09:46:55 +00:00
Ulrich Drepper
5f2de3379c Update.
* elf/rtld.c (process_envvars): Open debug output file with O_NOFOLLOW.
2000-09-26 05:50:51 +00:00
Ulrich Drepper
8a0e201e33 Update.
* elf/rtld.c (_dl_dynamic_weak): Set to 1 by default for now.
	* elf/dl-support.c: Likewise.

	necessary.  Move includes of POSIX and Unix limits files to the end.
2000-09-16 05:22:26 +00:00
Ulrich Drepper
2b7238dda8 Update.
2000-08-26  Ulrich Drepper  <drepper@redhat.com>

	* elf/Makefile (distribute): Add unloadmod.c, reldepmod1.c,
	reldepmod2.c, reldepmod3.c, and reldepmod4.c.
	(tests): Add unload, reldep, reldep2, and reldep3.
	(modules-names): Add unloadmod, reldepmod1, reldepmod2, reldepmod3,
	and reldepmod4.
	Add rules to build and run unload, reldep, reldep2, and reldep3.
	* elf/dl-lookup.c (_dl_lookup_symbol): Add new parameter explicit.
	Don't create relocation dependency if it is nonzero.
	(_dl_lookup_symbol_skip): Remove relocation dependency stuff.  This
	can never happen here.
	(_dl_lookup_versioned_symbol): Add new parameter explicit.
	Don't create relocation dependency if it is nonzero.
	(_dl_lookup_versioned_symbol_skip): Remove relocation dependency
	stuff.  This can never happen here.
	* sysdeps/generic/ldsodefs.h: Change prototypes.
	* elf/dl-reloc.c (RESOLVE_MAP): Pass 0 in explicit parameter to
	_dl_lookup_up and _dl_lookup_versioned_symbol.
	(RESOLV): Likewise.
	* elf/dl-runtime.c (fixup): Likewise.
	(profile_fixup): Likewise.
	* elf/dl-libc.c (do_dlsym): Pass 1 in explicit parameter to
	_dl_lookup_symbol.
	* elf/dl-symbol.c (_dl_symbol_value): Likewise.
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-sym.c (_dl_sym): Pass 1 in explicit parameter to
	_dl_lookup_symbol if handle is not RTLD_DEFAULT.  Always compute
	and pass down the caller map.
	(_dl_vsym): Likewise.
	* elf/reldep.c: New file.
	* elf/reldep2.c: New file.
	* elf/reldep3.c: New file.
	* elf/reldepmod1.c: New file.
	* elf/reldepmod2.c: New file.
	* elf/reldepmod3.c: New file.
	* elf/reldepmod4.c: New file.
	* elf/unload.c: New file.
	* elf/unloadmod.c: New file.

	* elf/do-lookup.h: Remove unused undef_name parameter.
	* elf/dl-lookup.c: Adjust callers.
2000-08-26 23:41:19 +00:00
Ulrich Drepper
752a2a50d4 Update.
2000-08-19  Ulrich Drepper  <drepper@redhat.com>

	* elf/Versions [ld] (GLIBC_2.2): Export _dl_check_map_versions.
	* elf/dl-deps.c (_dl_map_object_deps): If object was dependency of
	a dynamically loaded object remove old l_initfini list.
	* elf/dl-libc.c (free_mem): Used as __libc_subfreeres callback to
	remove some dynamically allocated memory blocks in the dynamic
	loading data structures.
	* elf/dl-load.c (add_name_to_object): Initialize dont_free to 0.
	* elf/dl-open.c (dl_open_workder): Don't call _dl_check_all_versions.
	Instead call _dl_check_map_versions only for the dependencies.
	* elf/rtld.c: Avoid unneccessary initializations.  Mark l_libname
	information of initial objects as not free-able.
	* sysdeps/generic/ldsodefs.h (struct libname_list): Add dont_free
	element.

	* elf/filter.c: Call mtrace.
	* elf/restest1.c: Likewise.  Close the objects.
	* elf/loadtest.c: Call mtrace.  Check result of dlclose.  Print more
	debug information.

	* elf/constload1.c: Add comment explaining not freed memory.
2000-08-19 07:17:09 +00:00
Ulrich Drepper
1ebba33ece Update.
2000-08-15  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/ldsodefs.h: Declare _nl_nloaded.
	* elf/Versions [ld] (GLIBC_2.2): Add _nl_nloaded.
	* elf/dl-support.c: Define _nl_nloaded.
	* elf/rtld.c: Likewise.  Increment _nl_nloaded for rtld itself.
	* elf/dl-object.c (_dl_new_object): Increment _nl_nloaded after adding
	object to global list.
	* elf/dl-close.c (_dl_close): Decrement _nl_nloaded after removing
	from _dl_loaded list.
	* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
	* elf/dl-fini.c (_dl_fini): Use _nl_nloaded instead of computing the
	number here.

	* sysdeps/i386/fpu/fedisblxcpt.c (fedisableexcept): Mask, not
	unmask, exceptions.
	* sysdeps/i386/fpu/feenablxcpt.c (feenableexcept): Unmask, not mask,
	exceptions.
	Reported by Harvey J. Stein <hjstein@bfr.co.il>.
2000-08-16 06:30:08 +00:00
Ulrich Drepper
f53c03c20d Update.
* elf/rtld.c: Define _dl_bind_not variable.
	(process_envvars): Recognize LD_BIND_NOT and set _dl_bind_not.
	* elf/dl-support.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Declare _dl_bind_not.
	* elf/dl-runtime.c (fixup): Don't remember looked up value if
	_dl_bind_not.
	(profile_fixup): Likewise.
2000-07-21 06:43:05 +00:00
Ulrich Drepper
bf8b3e74bf Update.
* elf/elf.h: Add various DF_1_*, DTF_1_*, and DF_P1_* entries.
	* elf/dl-close.c (_dl_close): Don't close an object if it is marked
	with nodelete.
	* elf/dl-open.c (dl_open_worker): Pass RTLD_NOLOAD as new parameter
	to _dl_map_object.  Return immediately if no object loaded.
	Set DF_1_NODELETE bit in l_flags_1 if RTLD_NODELETE was passed.
	* elf/dynamic-link.h (elf_get_dynamic_info): Copy DT_FLAGS_1 entry
	if it exists into l_flags_1 word.
	* elf/dl-load.c (_dl_map_object_from_fd): Take no parameter and use
	it to determine whether loading is wanted or not.
	(_dl_map_object): Likewise.
	Call _dl_map_object_from_fd with new parameter.
	* sysdeps/generic/ldsodefs.h: Update prototype.
	* elf/dl-deps.c: Add new parameter to _dl_map_object calls.
	* elf/rtld.c: Likewise.
	* elf/Makefile (tests): Add noload.  Add rules to generate noload.
	* elf/noload.c: New file.
	* include/link.h (struct link_map): Add l_feature_1 and l_flags_1.
	* sysdeps/generic/bits/dlfcn.h: Define RTLD_NOLOAD and RTLD_NODELETE.
	* sysdeps/mips/bits/dlfcn.h: Likewise.
2000-07-20 22:53:54 +00:00
Ulrich Drepper
ca3c013564 Update.
* elf/Versions (ld): Export _dl_out_of_memory for GLIBC_2.2.
	* dlfcn/dlerror.c (dlerror): Don't free the error string if it is the
	report that we are out of memory.
	* elf/dl-deps.c (_dl_map_object_deps): Likewise.
	* elf/dl-libc.c (dlerror_run): Likewise.
	* elf/dl-open.c (_dl_open): Likewise.
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-error.c: Define _dl_out_of_memory.
	(_dl_signal_error): Return _dl_signal_error if we cannot duplicate
	the error string.
	* sysdeps/generic/ldsodefs.h: Declare _dl_out_of_memory.

	* dlfcn/dlerror.c (free_key_mem): Also free error string.

	* iconv/loop.c: Fix comment.
2000-07-13 19:46:27 +00:00
Ulrich Drepper
47a81620ad Update.
2000-07-09  Mark Kettenis  <kettenis@gnu.org>

	* elf/rtld.c (dl_main): Move call to __libc_check_standard_fds...
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): ... to here.

2000-07-10  Ulrich Drepper  <drepper@redhat.com>

	* include/features.h: Include ISO C99 features if the compiler used
	is an ISO C99 compiler.
	Patch by Joseph S. Myers <jsm28@cam.ac.uk>.

2000-07-08  Mark Kettenis  <kettenis@gnu.org>

	* iconv/gconv_conf.c: Include <bits/libc-lock.h>.
2000-07-10 20:02:00 +00:00
Ulrich Drepper
8e17ea5817 Update.
2000-06-09  Ulrich Drepper  <drepper@redhat.com>

	Rewrite error message handling.
	* elf/dl-deps.c (_dl_map_object_deps): Pass new parameter to
	_dl_catch_error.
	* elf/dl-error (struct catch): Add objname member.
	(_dl_signal_error): Take new parameter with object name.  When
	passing message on simply store object name and duplicate error
	message.
	(_dl_catch_error): Take new parameter.  Store object name in the
	place pointed to.
	* include/dlfcn.h: Adjust _dl_catch_error prototype.
	* sysdeps/generic/ldsodefs.h: Adjust _dl_signal_error prototype.
	* elf/dl-libc.c (dlerror_run): Pass new parameter to _dl_catch_error.
	* elf/dl-open.c (_dl_open): Likewise.
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-close.c: Mark error messages with N_().
	* elf/dl-deps.c: Likewise.
	* elf/dl-error.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/dl-lookup.c: Add comments about problems with error message
	translations.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-version.c: Likewise.
2000-06-10 04:01:36 +00:00
Ulrich Drepper
b0982c4ad3 Update.
* include/elf.h: Include also <dl-dtprocnum.h>.
	* elf/dl-deps.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-rel.h: Likewise.
	* elf/dynamic-link.h: Likewise.
	* elf/link.h: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/dl-dtprocnum.h: New file.
	* sysdeps/ia64/dl-dtprocnum.h: New file.
	* sysdeps/mips/dl-dtprocnum.h: New file.
	* sysdeps/sparc/dl-dtprocnum.h: New file.
2000-06-08 04:48:56 +00:00
Ulrich Drepper
dec126b41a Update.
* dlfcn/dlfcn.h: Pretty print dladdr declaraction.

	* elf/rtld.c (process_envvars): Recognize LD_DYNAMIC_WEAK.
	(_dl_dynamic_weak): New variable.
	* elf/dl-support.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Declare _dl_dynamic_weak.
	* elf/do-lookup.h: If we find a weak definition treat it like a
	normal symbol unless _dl_dynamic_weak is nonzero.  In the latter
	case treat it like before.
2000-06-08 03:03:00 +00:00
Ulrich Drepper
75e8d1f516 Update.
2000-06-02  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (process_envvars): Test for = after variable name.
2000-06-02 07:30:28 +00:00
Ulrich Drepper
db33f7d4ae Update.
* csu/Makefile (routines): Add check_fds.
	* elf/rtld.c (dl_main): Call __libc_check_standard_fds for SUID
	binaries.  Add various __builtin_expect.
	* sysdeps/generic/libc-start.c: Move check_fds and helper functions...
	* sysdeps/generic/check_fds.c: ...here.  New file.

	* malloc/malloc.c (ptmalloc_init): Only enable debugging for SUID
	binaries if file /etc/suid-debug is available.
2000-05-25 05:02:35 +00:00
Ulrich Drepper
c0282c0642 Update.
2000-05-05  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-load.c (_dl_map_object_from_fd): Little of computation of
	parameter to mprotect and for variable assignments.

2000-05-03  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/generic/ldsodefs.h (LOOKUP_VALUE_ADDRESS): Check the
	validity of map before dereferencing it.

	* elf/dl-reloc.c (RESOLVE_MAP): Define.

2000-05-02  Jes Sorensen  <jes@linuxcare.com>

	* elf/dl-runtime.c (fixup): Add the value returned in the symbol
	lookup to the arguments to elf_machine_fixup_plt().

	* sysdeps/ia64/dl-machine.h (elf_machine_fixup_plt): Add Link_map
	of the symbol being resolved to input argument list and make the
	function return the pointer to the reloc.

	* sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): Change
	return valuie to lookup_t and return the value.
	* sysdeps/arm/dl-machine.h (elf_machine_fixup_plt): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_fixup_plt): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_fixup_plt): Likewise.
	* sysdeps/m68k/dl-machine.h (elf_machine_fixup_plt): Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_fixup_plt): Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_fixup_plt): Likewise.

	* sysdeps/powerpc/dl-machine.h (elf_machine_fixup_plt): Likewise.
	Make it an inline function returning value after calling
	__elf_machine_fixup_plt().

	* elf/dl-sym.c (_dl_vsym): Use DL_SYMBOL_ADDRESS() to obtain the
	symbol address.

	* elf/dl-symbol.c (_dl_symbol_value): Use LOOKUP_VALUE_ADDRESS to
	obtain the symbol address.

	* sysdeps/generic/ldsodefs.h: Add generic DL_SYMBOL_ADDRESS() macro
	depending on the definition of ELF_FUNCTION_PTR_IS_SPECIAL.

	* sysdeps/ia64/dl-machine.h: Add DL_SYMBOL_ADDRESS() macro calling
	_dl_symbol_address() - this way DL_SYMBOL_ADDRESS() turns into an
	inline on non ia64.

2000-04-28  Jes Sorensen  <jes@linuxcare.com>

	* elf/dl-runtime.c (fixup): Use the portable macros to get the
	symbol address of an object.

	* elf/dl-runtime.c (fixup-profile): Use the portable macros to get
	the symbol address of an object.

	* elf/dl-libc.c (struct do_dlsym_args): Change loadbase to a lookup_t.
	* elf/dl-lookup.c (_dl_lookup_symbol): Likewise.
	(_dl_lookup_symbol_skip): Likewise.
	(_dl_lookup_versioned_symbol): Likewise.
	(_dl_lookup_versioned_symbol_skip): Likewise.

2000-04-27  Jes Sorensen  <jes@linuxcare.com>

	* elf/rtld.c (_dl_start): Get the function pointer return address
	via _dl_start_address for architectures that need a function
	pointer descriptor rather than just a pointer (ia64).

	* sysdeps/generic/dl-lookupcfg.h: New file.
	* sysdeps/ia64/dl-lookupcfg.h: New file.
	* sysdeps/ia64/dl-machine.h: New file.
	* sysdeps/ia64/dl-symaddr.c: New file.
	* sysdeps/ia64/dl-fptr.c: New file.

	* elf/elf.h: Add IA-64 specific definitions.
2000-05-05 07:15:29 +00:00
Andreas Jaeger
8b07d6a860 2000-04-20 Andreas Jaeger <aj@suse.de>
* elf/rtld.c (print_statistics): Move ifndef further up.
	(_dl_start_final): Added HP_TIMINIG_NONAVAIL to avoid warnings.
	(dl_main): Likewise.
2000-04-20  Andreas Jaeger  <aj@suse.de>

	* elf/rtld.c (print_statistics): Move ifndef further up.
	(_dl_start_final): Added HP_TIMINIG_NONAVAIL to avoid warnings.
	(dl_main): Likewise.
2000-04-21 02:05:30 +00:00
Andreas Jaeger
b034c2b191 2000-04-18 Andreas Jaeger <aj@suse.de>
* elf/rtld.c (process_dl_debug): Remove obsolete comment.
	* elf/rtld.c (process_dl_debug): Remove obsolete comment.
2000-04-18 21:37:51 +00:00
Ulrich Drepper
dc9116316e Update.
* elf/rtld.c: Display statitics option also if hp timing is not
	available.
2000-04-18 18:50:15 +00:00
Andreas Jaeger
1531e094ce 2000-04-18 Andreas Jaeger <aj@suse.de>
* elf/rtld.c (print_statistics): Added HP_TIMINIG_NONAVAIL where
	needed.
2000-04-18  Andreas Jaeger  <aj@suse.de>

	* elf/rtld.c (print_statistics): Added HP_TIMINIG_NONAVAIL where
	needed.
2000-04-18 17:21:41 +00:00
Ulrich Drepper
5732c4df91 Update.
* sysdeps/generic/hp-timing.h (HP_TIMING_NONAVAIL): Define to
	signal timing is not really implemented.

2000-04-17  Andreas Jaeger  <aj@suse.de>

	* elf/rtld.c (process_dl_debug): Mention statistics in help message.

2000-04-17  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (install): Use slibdir and libdir instead of inst_slibdir
	and inst_libdir.

2000-04-17  Ulrich Drepper  <drepper@redhat.com>
2000-04-18 06:35:08 +00:00
Ulrich Drepper
466a0ec998 Update.
* elf/dl-reloc.c (_dl_relocat_object): Add more __builtin_expect.
	* elf/dl-lookup.c: Add more __builtin_expect.
	* elf/dl-init.c (_dl_init): Add more __builtin_expect.
	* elf/dl-fini.c (_dl_fini): Add more __builtin_expect.
	* elf/dl-deps.c (_dl_map_object_deps): Add more __builtin_expect.
	* elf/dl-close.c (_dl_close): Add more __builtin_expect.
	* elf/rtld.c (_dl_start_final): Add more __builtin_expect.
2000-04-17 15:41:59 +00:00
Ulrich Drepper
145b84138f Update.
* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode.
	Before testing versions check that we actually loaded the object
	and whether we are in trace mode.  If not loaded during tracing don't
	test versions in this object.
	(_dl_check_all_versions): Take new parameter and pass to
	_dl_check_map_versions.
	* sysdeps/generic/ldsodefs.h: Update prototypes for
	_dl_check_all_versions and _dl_check_map_versions.
	* elf/rtld.c (struct version_check_args): Add dotrace.
	(version_check_doit): Pass args->dotrace to _dl_check_all_versions.
	(dl_main): Pass info about trace mode to version_check_doit.
	* elf/dl-open.c (dl_open_worker): Pass zero as new argument to
	_dl_check_all_versions.

	* manual/users.texi (XPG Functions): Document utmpxname, getutmp,
	and getutmpx.
	Patch by Bryan Henderson <bryanh@giraffe-data.com>.
2000-04-15 22:26:34 +00:00
Ulrich Drepper
cf197e41e7 Update.
2000-04-02  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-fini.c (_dl_fini): Increment j counter after swapping in
	element at this position.

	* elf/Versions [ld.so] (GLIBC_2.2): Export _dl_load_lock.
	* elf/link.h (struct link_map): Add l_reldepsmax, l_reldepsact, and
	l_reldeps elements.
	* elf/dl-lookup.c (add_dependency): New function.
	(_dl_lookup_symbol): Use it whenever symbol was found in a global,
	dynamically loaded object.
	(_dl_lookup_symbol_skip): Likewise.
	(_dl_lookup_versioned_symbol): Likewise.
	(_dl_lookup_versioned_symbol_skip): Likewise.
	* elf/dl-open.c: Don't define _dl_load_lock here...
	* elf/rtld.c: ...but here...
	* elf/dl-support.c: ...and here.
	* elf/dl-close.c (_dl_close): Close also dependent objects introduce
	through relocation.
	* elf/dl-fini.c (_dl_fini): Also take dependencies introduced through
	relocations.
	* dlfcn/Makefile (glrefmain.out): Test is not expected to fail
	anymore.
	* dlfcn/glrefmain.c: Add one more debug message.

	* Makeconfig (preprocess-versions): Don't add $(CPPFLAGS) to compiler
	command line.
	* Makerules (sysd-versions): Use ( ) instead of { }.

	* elf/dl-load.c: Use __builtin_expect to signal that compiler should
	optimize for the non-debugging case.
	* elf/dl-lookup.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
2000-04-03 03:51:04 +00:00
Ulrich Drepper
a42195dbe4 Update.
2000-03-23  Andreas Jaeger  <aj@suse.de>

	* elf/dl-addr.c: Adjust include paths for ldsodefs location
	change.
	* elf/dl-debug.c: Likewise.
	* elf/dl-deps.c: Likewise.
	* elf/dl-error.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-init.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-minimal.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-preinit.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-profstub.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-symbol.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/sprof.c: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-origin.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/generic/elf/backtracesyms.c: Likewise.
	* sysdeps/generic/elf/backtracesymsfd.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
	* sysdeps/powerpc/dl-machine.c: Likewise.
	* sysdeps/powerpc/elf/libc-start.c: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.

	* elf/ldsodefs.h: Move file to ...
	* sysdeps/generic/ldsodefs.h: ... here.

	* sysdeps/generic/ldsodefs.h: Add definition for D_PTR.
	
	* sysdeps/mips/elf/ldsodefs.h: New file.

	* elf/dl-version.c (match_symbol): Use D_PTR to access relocated
	entries in l_info.
	(_dl_check_map_versions): Likewise.
	* elf/dl-reloc.c (_dl_relocate_object): Likewise.
	* elf/dl-load.c (_dl_init_paths): Likewise.
	(_dl_map_object): Likewise.
	* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Likewise.
	(elf_get_dynamic_info): Likewise.
	* elf/do-lookup.h (FCT): Likewise.
	* elf/do-rel.h (elf_dynamic_do_rel): Likewise.
	* elf/dl-deps.c (_dl_map_object_deps): Likewise.
	* elf/dl-addr.c (_dl_addr): Likewise.
	* elf/dl-runtime.c (profile_fixup): Likewise.
	(fixup): Likewise.
	* elf/dl-init.c (_dl_init_next): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-librecon.h
	(DISTINGUISH_LIB_VERSIONS): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Likewise.
	(elf_machine_rel): Likewise.

	* elf/dynamic-link.h (elf_get_dynamic_info): Only change l_info
	for writable dynamic section.
2000-03-23 20:31:46 +00:00
Ulrich Drepper
d9cb1a7dad Update.
* elf/dl-deps.c (_dl_map_object_deps): Change return type and remove
	last parameter.  Move code to add map to global scope from here...
	* elf/dl-open.c (dl_open_worker): ...here.
	* elf/ldsodefs.h: Adjust declaration of _dl_map_object_deps.
	* elf/rtld.c: Adjust call to _dl_map_object_deps.
2000-03-15 05:32:11 +00:00
Andreas Jaeger
e8b1163ed0 2000-03-09 Martin Buchholz <martin@xemacs.org>
* sysdeps/unix/sysv/linux/alpha/syscall.S:
	* manual/message.texi (Using gettextized software):
	* manual/message.texi (Message Translation): Doc Fixes.
	* manual/filesys.texi (File Size):
	* manual/charset.texi (glibc iconv Implementation):
	* locale/programs/ld-collate.c (collate_output):
	* iconv/gconv_db.c (find_derivation):
	* manual/install.texi:
	* manual/search.texi (Hash Search Function):
	* manual/stdio.texi (Output Conversion Syntax):
	* FAQ.in:
	* config.h.in:
	* sysdeps/generic/dl-sysdep.c:
	Doc Fixes.  `allows to' is not correct English.

	* elf/rtld.c: Doc fixes.
	* manual/creature.texi (Feature Test Macros): Doc fixes.
	* manual/memory.texi (Hooks for Malloc): Doc Fixes.

	* manual/filesys.texi (Working Directory): Check for ERANGE to
	avoid infloop.
2000-03-10 08:41:39 +00:00
Ulrich Drepper
49c091e523 Update.
2000-02-22  Ulrich Drepper  <drepper@redhat.com>

	* locales/mk_MK: New file.
	Contributed by Damjan Georgievski <gdamjan@freemail.org.mk>
	* SUPPORTED: Add mk_MK ISO-8859-1.
2000-02-22 09:00:35 +00:00
Ulrich Drepper
1ca7cbcb45 Update.
2000-02-14  Andreas Jaeger  <aj@suse.de>

	* elf/rtld.c (dl_main): Fix check for references to dynamic linker.
2000-02-15 01:43:12 +00:00
Ulrich Drepper
264ec183cf Update.
* Versions: Export __pthread_kill_other_threads_np from libpthread
	for GLIBC_2.1.2.
1999-08-20 00:11:57 +00:00
Ulrich Drepper
722c33bbb6 Update.
* string/bits/string2.h: Fix aliasing problems.
	* sysdeps/i386/i486/bits/string.h: Likewise.
	* sysdeps/i386/bits/string.h: Likewise.

1998-12-28  Geoff Keating  <geoffk@ozemail.com.au>

	* sysdeps/powerpc/dl-machine.c: Handle shared library profiling.
	* elf/rtld.c (dl_main): Don't call malloc() between
	re-relocating the dynamic linker and running the application's crt0.

1999-07-21  Paul D. Smith  <psmith@gnu.org>

	* sysdeps/generic/glob.c: Move getlogin{,_r} prototypes below
	glob.h to get __P() macro.

	* posix/fnmatch.c (internal_fnmatch): Use K&R definition syntax,
	not ANSI.
	(__strchrnul): This won't exist outside GLIBC, so create one.

1999-07-25  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/unix/sysv/linux/sparc/bits/types.h: Always define __qaddr_t.
	__ino64_t should be 32bit unsigned type on sparc32.
	Define __off64_t to __quad_t instead of __int64_t.
	Make __pic_pid_t unsigned on sparc32.

1999-07-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* localedata/tst-rpmatch.sh: Use "&" instead of "§" to avoid a bug
	in bash 2.03.

1999-07-25  Ulrich Drepper  <drepper@cygnus.com>
1999-07-25 23:21:20 +00:00
Ulrich Drepper
fcf70d4114 Update.
1999-07-24  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-fini.c: Handle DT_FINI_ARRAY.
	* elf/link.h (struct link_map): Remove l_init_running.  Add l_runcount
	and l_initcount.
	* elf/dl-init.c: Handle DT_INIT_ARRAY.
	* elf/dynamic-link.h: Change parameters.  Now only get link_map
	pointer.  Calculate l_initcount.

	* elf/link.h (struct link_map): Add l_runpath_dirs.
	* elf/dynamic-link.h: If RUNPATH is given, set RPATH to NULL.
	* elf/dl-load.c: Pretty print.
	(decompose_rpath): Take new parameter with info from where the path
	comes.  Pass it the fillin_rpath.
	(_dl_init_paths): Initialize l_runpath_dirs.
	(_dl_map_object): Don't search using RPATHs if object has RUNPATH.
	Search using RUNPATH after LD_LIBRARY_PATH.
	* elf/dl-support.c: Adjust comment.
	* elf/rtld.c: Adjust help message.
1999-07-24 19:45:13 +00:00
Ulrich Drepper
d3ac2d4712 (dl_main): Adopt to changed _dl_lookup_symbol interface. 1999-07-24 17:38:14 +00:00
Ulrich Drepper
b2bcd61a99 Update.
1999-07-12  Andreas Schwab  <schwab@suse.de>

	* elf/rtld.c (dl_main): When putting back the interpreter object
	handle the case where a missing object might occur in the list of
	objects but not in the search list when in trace mode.
1999-07-12 16:33:05 +00:00
Ulrich Drepper
6a1db4ffb6 Update.
* elf/rtld.c: Split _dl_start in two pieces to prevent GOT usage
	before the relocation happened.
	Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
1999-07-09 14:34:22 +00:00
Ulrich Drepper
12b5b6b7f7 Update.
1999-05-11  Ulrich Drepper  <drepper@cygnus.com>

	* elf/Versions (ld.so) [GLIBC_2.1.1]: Add _dl_lazy.
	* elf/dl-open.c (_dl_open_worker): Only relocate newly loaded objects
	lazily if LD_BIND_NOW is not set.
	* elf/dl-support.c (_dl_lazy): New variable.
	(non_dynamic_init): Set _dl_lazy according to LD_BIND_NOW envvar.
	* elf/rtld.c (_dl_lazy): new global variable.
	( dl_main): Remove lazy, replace it by _dl_lazy.

1999-05-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* locale/setlocale.c (new_composite_name): Check also whether the
	first category name differs.

1999-05-11  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/ftime.c: Use the bsd implementation, not
	the generic one.

1999-05-11  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/bits/socket.h (struct sockaddr_storage): New
	structure; storage suitable for any socket address.
	* sysdeps/unix/sysv/linux/bits/socket.h (struct sockaddr_storage):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/socket.h (struct
	sockaddr_storage): Likewise.

	* inet/netinet/in.h: Use ULONG_MAX not ~0 to test for a 64-bit
	platform.
1999-05-11 13:00:20 +00:00
Ulrich Drepper
57de50372c Update.
1999-03-29  Ulrich Drepper  <drepper@cygnus.com>

	* elf/rtld.c (process_envvars): Do not automatically prevent lazy
	relocation for SUID binaries.

	* misc/regexp.h (compile): Cast some pointers to (char *) to avoid
1999-03-29 17:25:46 +00:00
Ulrich Drepper
9a51759bdf Update.
1999-02-23  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* malloc/malloc.c (mALLOC_SET_STATe): Handle the case where a
	non-checked heap is restored when malloc checking was requested by
	the user.
	(struct malloc_state): Add using_malloc_checking.
	(MALLOC_STATE_VERSION): Increment minor.
	(using_malloc_checking, disallow_malloc_check): New variables.
	(__malloc_check_init): Use them.
	(mALLOC_GET_STATe): Use mALLOc to allocate the malloc_state, so
	that it can the chunk is properly instrumented when malloc
	checking is enabled.  Set the new using_malloc_checking field.
	(malloc_hook_ini): Correct signature when _LIBC is not defined.

1999-02-23  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/i386/dl-librecon.h
	(DISTINGUISH_LIB_VERSIONS): Don't relocate DT_STRTAB a second
	time.

	* elf/rtld.c (dl_main): Rename paths_initialized to rtld_is_main.
	Don't call elf_get_dynamic_info and _dl_setup_hash a second time
	if ld.so is the main program.

	* stdio-common/vfprintf.c (vfprintf): If precision or width is too
1999-02-24 09:40:04 +00:00
Ulrich Drepper
f420344cef Update.
* elf/dynamic-link.h (elf_get_dynamic_info): Take new argument with
	load address.  Relocate d_ptr in DT_DTRTAB, DT_SYMTAB, DT_RELA, DT_REL,
	DT_JMPREL, DT_PLTGOT, and DT_VERSYM l_info entry.
	(_ELF_DYNAMIC_DO_RELOC): Take extra argument which specifies whether
	rel and rela relocations can both happen and skip one test if this
	is not possible.
	(ELF_DYNAMIC_DO_RELA, ELF_DYNAMIC_DO_REL): Call _ELF_DYNAMIC_DO_RELOC
	appropriately.
	* elf/dl-addr.c (_dl_addr): DT_SYMTAB and DT_STRTAB entries are
	already relocated.
	* elf/dl-deps.c (_dl_map_object_deps): DT_STRTAB entry is already
	relocated.
	* elf/dl-load.c (_dl_init_paths): DT_STRTAB entry is already relocated.
	(_dl_map_object_from_fd): Call elf_get_dynamic_info with new argument.
	(_dl_map_object): DT_STRTAB entry is already relocated.
	* elf/dl-lookup.c (do_lookup): DT_STRTAB and DT_SYMTAB entries are
	already relocated.
	* elf/dl-reloc.c (_dl_relocate_object): DT_STRTAB entry is already
	relocated.
	* elf/dl-runtime.c (fixup): DT_SYMTAB, DT_STRTAB, DT_JMPREL, and
	DT_VERSYM entries are already relocated.
	(profile_fixup): Likewise.
	* elf/dl-version.c: Rename VERSTAG macro into VERSYMIDX.  Replace
	all users.
	(match_symbol): DT_STRTAB entry is already relocated.
	(_dl_check_map_versions): Likewise.  Also fo DT_VERSYM.
	* elf/do-rel.h (elf_dynamic_do_rel): reladdr is now assumed to be
	relocated already.  DT_SYMTAB and DT_VERSYM entries are also relocated.
	* elf/rtld.c (_dl_start): Pass extra argument to elf_get_dynamic_info.
	(find_needed): DT_STRTAB entry is already relocated.
	(dl_main): Pass extra argument to elf_get_dynamic_info.
	DT_STRTAB entry is already relocated.
	* sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): DT_JMPREL and
	DT_PLTGOT entries are already relocated.
	(elf_machine_rela): Likewise for DT_SYMTAB.
	* sysdeps/arm/dl-machine.h (elf_machine_rel): DT_STRTAB is already
	relocated.
	* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_got_rel): Likewise.
	(elf_machine_got_rel): Likewise for DT_SYMTAB and DT_STRTAB.

	* grp/initgroups.c (initgroups): If function in current module was
	successful don't stop but continue to process to get all the groups.
1999-02-20 15:02:24 +00:00
Ulrich Drepper
61e0617ac3 Update.
* elf/link.h (link_map): Add l_dev and l_ino.
	* elf/dl-load.c (_dl_map_object_from_fd): Test dev/ino of newly
	loaded shared object with all laoded objects.  Initialize l_ino
	and l_dev in case it's new.
	* elf/rtld.c (dl_main): Explain situation is l_dev/l_ino with main
	object.
	* elf/Makefile: Compile and run new test.
	* elf/multiload.c: New file.
1999-02-19 00:00:05 +00:00
Ulrich Drepper
db276fa11c Update.
1998-12-27  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-lookup.c (_dl_num_relocations): New variable.
	(do_lookup): Increment _dl_num_relocations for every call.
	* elf/rtld.c (print_statistics): New function.
	(_dl_debug_statistics): New variable.  Set when statistics are asked
	for.
	(rtld_total_time, relocate_time, load_time): New variables.  Used
	in print_statistics.
	(_dl_start): Record start and end time of startup.  Call
	print_statistics if needed.
	(dk_main): Record times for relocations and loading.
	(process_dl_debug): Recognize statistics.

	Low-level, low-overhead, high-precision timing funcationality.
	* sysdeps/generic/hp-timing.h: New file.
	* sysdeps/i386/i686/Makefile: New file.
	* sysdeps/i386/i686/hp-timing.h: New file.
	* sysdeps/i386/i686/hp-timing.c: New file.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Reverse order of OR
	clauses to avoid accessing global variables during rtld relocation.

	* sunrpc/rpc_main.c: Unify messages.

	* sysdeps/unix/sysv/linux/arm/Dist: Add ioperm.c and sys/io.h.
1998-12-27 17:29:47 +00:00
Ulrich Drepper
50463d27cd Update.
1998-11-19  Geoff Keating  <geoffk@ozemail.com.au>

	* elf/rtld.c (_dl_start): Handle weak undefined symbols in ld.so
	correctly.
1998-11-19 17:46:16 +00:00
Ulrich Drepper
9a821cf90b Update.
* elf/rtld.c: Add a few __builtin_expects where they will improve
	a lot.

1998-11-05  Ulrich Drepper  <drepper@cygnus.com>

1998-11-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* libio/genops.c (_IO_least_marker): Add additional parameter
	end_p replacing fp->_IO_read_end.
	(save_for_backup): Likewise.  All callers changed.  Use _IO_size_t
	and _IO_ssize_t instead of int.
	(_IO_switch_to_main_get_area): Remove use of _IO_save_ptr.
	(_IO_switch_to_backup_area): Likewise.  Fix comments.
	(_IO_seekmark): Undo last change.
	(_IO_default_pbackfail): Correct use of backup area.
	* libio/libio.h (_IO_FILE_complete): Remove _IO_save_ptr.
1998-11-05 17:52:04 +00:00