Commit Graph

73 Commits

Author SHA1 Message Date
Ulrich Drepper 8099361ecd * include/atomic.c: Define catomic_* operations.
* sysdeps/x86_64/bits/atomic.h: Likewise.  Fix a few minor problems.
	* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
	* malloc/memusage.c: Likewise.
	* gmon/mcount.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-fptr.c: Likewise.
	* resolv/res_libc.c: Likewise.
2006-10-11 09:01:52 +00:00
Ulrich Drepper 1100f84983 Jakub Jelinek <jakub@redhat.com>
Implement reference counting of scope records.
	* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
	from the list in objects which remain.  Always allocate new scope
	record.
	* elf/dl-open.c (dl_open_worker): When growing array for scopes,
	don't resize, allocate a new one.
	* elf/dl-runtime.c: Update reference counters before using a scope
	array.
	* elf/dl-sym.c: Likewise.
	* elf/dl-libc.c: Adjust for l_scope name change.
	* elf/dl-load.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/link.h: Inlcude <rtld-lowlevel.h>.  Define struct
	r_scoperec.  Replace r_scope with pointer to r_scoperec structure.
	Add l_scoperec_lock.
	* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
	* sysdeps/generic/rtld-lowlevel.h: New file.

	* include/atomic.h: Rename atomic_and to atomic_and_val and
	atomic_or to atomic_or_val.  Define new macros atomic_and and
	atomic_or which do not return values.
	* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
	Various cleanups.
	* sysdeps/i386/i486/bits/atomic.h: Likewise.
2006-10-10 00:51:29 +00:00
Ulrich Drepper 028dca779d (fixup): Change return type to DL_FIXUP_VALUE_TYPE. Use DL_FIXUP_VALUE_TYPE, DL_FIXUP_MAKE_VALUE and DL_FIXUP_VALUE_CODE_ADDR for relocation values. Use DL_FIXUP_VALUE_ADDR and DL_FIXUP_ADDR_VALUE to store and retrieve relocation values. (profile_fixup): Likewise. 2005-02-07 22:47:00 +00:00
Roland McGrath 91bf35de4c 2005-01-21 Roland McGrath <roland@redhat.com>
* elf/dl-runtime.c (_dl_profile_fixup): Remove const from REGS.
	* sysdeps/i386/dl-machine.h: Update decl.
2005-01-22 08:03:27 +00:00
Ulrich Drepper 9fbdeb410d Update.
* elf/dl-runtime.c: Inlcude <sys/param.h>.

	* elf/Makefile (headers): Add bits/link.h.

2005-01-09  Andreas Schwab  <schwab@suse.de>

	* elf/rtld.c (dl_main): Create main_map with __RTLD_OPENEXEC.

2005-01-09  Andreas Jaeger  <aj@suse.de>

	* time/strptime_l.c (__strptime_internal): Add braces to avoid
	warning.

	* sysdeps/x86_64/bits/link.h: Use vector_size for GCC 4.0.

	* elf/rtld.c (dl_main): Call _dl_add_to_slotinfo only if USE_TLS.

2005-01-08  Jakub Jelinek  <jakub@redhat.com>

	* elf/Makefile (generated): Add tst-pie1{,.out,.o}.

2005-01-09  Ulrich Drepper  <drepper@redhat.com>
2005-01-09 20:23:44 +00:00
Ulrich Drepper 9dcafc5597 * csu/elf-init.c (__libc_csu_fini): Don't do anything here.
* sysdeps/generic/libc-start.c: Don't register program destructor here.
	* dlfcn/Makefile: Add rules to build dlfcn.c.
	(LDFLAGS-dl.so): Removed.
	* dlfcn/dlclose.c: _dl_close is now in ld.so, use function pointer
	table.
	* dlfcn/dlmopen.c: Likewise for _dl_open.
	* dlfcn/dlopen.c: Likewise.
	* dlfcn/dlopenold.c: Likewise.
	* elf/dl-libc.c: Likewise for _dl_open and _dl_close.
	* elf/Makefile (routines): Remove dl-open and dl-close.
	(dl-routines): Add dl-open, dl-close, and dl-trampoline.
	Add rules to build and run tst-audit1.
	* elf/tst-audit1.c: New file.
	* elf/tst-auditmod1.c: New file.
	* elf/Versions [libc]: Remove _dl_open and _dl_close.
	* elf/dl-close.c: Change for use inside ld.so instead of libc.so.
	* elf/dl-open.c: Likewise.
	* elf/dl-debug.c (_dl_debug_initialize): Allow reinitialization,
	signaled by nonzero parameter.
	* elf/dl-init.c: Fix use of r_state.
	* elf/dl-load.c: Likewise.

	* elf/dl-close.c: Add auditing checkpoints.
	* elf/dl-open.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* elf/dl-object.c: Allocate memory for auditing information.
	* elf/dl-reloc.c: Remove RESOLV.  We now always need the map.
	Correctly initialize slotinfo.
	* elf/dynamic-link.h: Adjust after removal of RESOLV.
	* sysdeps/hppa/dl-lookupcfg.h: Likewise.
	* sysdeps/ia64/dl-lookupcfg.h: Likewise.
	* sysdeps/powerpc/powerpc64/dl-lookupcfg.h: Removed.
	* elf/dl-runtime.c (_dl_fixup): Little cleanup.
	(_dl_profile_fixup): New parameters to point to register struct and
	variable for frame size.
	Add auditing checkpoints.
	(_dl_call_pltexit): New function.
	Don't define trampoline code here.
	* elf/rtld.c: Recognize LD_AUDIT.  Load modules on startup.
	Remove all the functions from _rtld_global_ro which only _dl_open
	and _dl_close needed.
	Add auditing checkpoints.
	* elf/link.h: Define symbols for auditing interfaces.
	* include/link.h: Likewise.
	* include/dlfcn.h: Define __RTLD_AUDIT.
	Remove prototypes for _dl_open and _dl_close.
	Adjust access to argc and argv in libdl.
	* dlfcn/dlfcn.c: New file.
	* sysdeps/generic/dl-lookupcfg.h: Remove all content now that RESOLVE
	is gone.
	* sysdeps/generic/ldsodefs.h: Add definitions for auditing interfaces.
	* sysdeps/generic/unsecvars.h: Add LD_AUDIT.
	* sysdeps/i386/dl-machine.h: Remove trampoline code here.
	Adjust for removal of RESOLVE.
	* sysdeps/x86_64/dl-machine.h: Likewise.
	* sysdeps/generic/dl-trampoline.c: New file.
	* sysdeps/i386/dl-trampoline.c: New file.
	* sysdeps/x86_64/dl-trampoline.c: New file.

	* sysdeps/generic/dl-tls.c: Cleanups.  Fixup for dtv_t change.
	Fix updating of DTV.
	* sysdeps/generic/libc-tls.c: Likewise.

	* sysdeps/arm/bits/link.h: Renamed to ...
	* sysdeps/arm/buts/linkmap.h: ...this.
	* sysdeps/generic/bits/link.h: Renamed to...
	* sysdeps/generic/bits/linkmap.h: ...this.
	* sysdeps/hppa/bits/link.h: Renamed to...
	* sysdeps/hppa/bits/linkmap.h: ...this.
	* sysdeps/hppa/i386/link.h: Renamed to...
	* sysdeps/hppa/i386/linkmap.h: ...this.
	* sysdeps/hppa/ia64/link.h: Renamed to...
	* sysdeps/hppa/ia64/linkmap.h: ...this.
	* sysdeps/hppa/s390/link.h: Renamed to...
	* sysdeps/hppa/s390/linkmap.h: ...this.
	* sysdeps/hppa/sh/link.h: Renamed to...
	* sysdeps/hppa/sh/linkmap.h: ...this.
	* sysdeps/hppa/x86_64/link.h: Renamed to...
	* sysdeps/hppa/x86_64/linkmap.h: ...this.
2005-01-06  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c (init_one_static_tls): Adjust initialization of DTV
	entry for static tls deallocation fix.
	* sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
	also contains information whether the memory pointed to is static
	TLS or not.
	* sysdeps/i386/tls.h: Likewise.
	* sysdeps/ia64/tls.h: Likewise.
	* sysdeps/powerpc/tls.h: Likewise.
	* sysdeps/s390/tls.h: Likewise.
	* sysdeps/sh/tls.h: Likewise.
	* sysdeps/sparc/tls.h: Likewise.
	* sysdeps/x86_64/tls.h: Likewise.
2005-01-06 22:40:27 +00:00
Ulrich Drepper a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek 0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper 1e5f1d862b Update.
* sysdeps/i386/dl-machine.h: Define ARCH_FIXUP_ATTRIBUTE and use
	it in the fixup function declarations.
	* elf/dl-runtime.c: If ARCH_FIXUP_ATTRIBUTE is not defined,
	provide dummy definition.  Use macro in fixup function
	definitions.
2004-03-09 07:44:07 +00:00
Ulrich Drepper 021723ab78 Update.
2004-03-06  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c: We don't need for specialized lookup functions.
	Combining the functionality does not slow down relocation processing,
	it might even speed it up a little.
	* sysdeps/generic/ldsodefs.h: Adjust prototypes for lookup function.
	Add only one function pointer to rtlf_global_ro.
	* elf/do-lookup.h: Replace #ifs with ifs.
	* elf/dl-libc.c: Adjust _dl_lookup_* callers.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/rtld.c: Likewise.  Adjust _rtld_global_ro initialization.

	* sysdeps/generic/ldsodefs.h (__rtld_local_attribute__,
	__rtld_global_attribute__): Undef after use.
	(_rtld_local_ro): Define __rtld_local_attribute__ with just hidden
	if available.

	* sysdeps/alpha/Subdirs: New file.
	* sysdeps/alpha/soft-fp/Makefile: New file.
	* sysdeps/alpha/soft-fp/Versions: New file.
	* sysdeps/alpha/soft-fp/local-soft-fp.h: New file.
	* sysdeps/alpha/soft-fp/ots_add.c: New file.
	* sysdeps/alpha/soft-fp/ots_cmp.c: new file.
	* sysdeps/alpha/soft-fp/ots_cmpe.c: New file.
	* sysdeps/alpha/soft-fp/ots_cvtqux.c: New file.
	* sysdeps/alpha/soft-fp/ots_cvtqx.c: New file.
	* sysdeps/alpha/soft-fp/ots_cvttx.c: New file.
	* sysdeps/alpha/soft-fp/ots_cvtxq.c: New file.
	* sysdeps/alpha/soft-fp/ots_cvtxt.c: New file.
	* sysdeps/alpha/soft-fp/ots_div.c: New file.
	* sysdeps/alpha/soft-fp/ots_mul.c: New file.
	* sysdeps/alpha/soft-fp/ots_nintxq.c: New file.
	* sysdeps/alpha/soft-fp/ots_sub.c: New file.
2004-03-07 05:26:02 +00:00
Ulrich Drepper 154d10bdf1 Update.
* elf/Versions: Remove functions which are not exported anymore.
	* dlfcn/dlerror.c: Call ld.so functions through GLSO.
	* dlfcn/dlinfo.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-libc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* elf/dl-debug.c: Remove *_internal definition.  Don't use INTUSE for
	functions which are not exported anymore.
	* elf/dl-deps.c: Likewise.
	* elf/dl-dst.h: 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-misc.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-profstub.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-lookup.h: Likewise.
	* include/dlfcn.h: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-fptr.c: Likewise.
	* sysdeps/generic/dl-origin.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/generic/dl-tls.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/i386/dl-tls.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.
	* elf/rtld.c: Likewise.  Export function though _rtld_global_ro.

	* generic/dl-fptr.c: Likewise.
	* mach/hurd/dl-sysdep.c: Likewise.
	* unix/sysv/linux/ia64/dl-static.c: Likewise.
	* unix/sysv/linux/ia64/getpagesize.c: Likewise.
	* unix/sysv/linux/m68k/getpagesize.c: Likewise.
	* unix/sysv/linux/sparc/sparc32/getpagesize.c: Likewise.
2004-03-06 08:19:29 +00:00
Ulrich Drepper afdca0f2a3 Update.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
	* sysdeps/powerpc/powerpc32/dl-machine.c: Likewise.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/arm/dl-machine.h: Likewise.
	* sysdeps/alpha/dl-machine.h: Likewise.
2004-03-05 10:29:47 +00:00
Ulrich Drepper a481b13cc2 Update.
* elf/dl-load.c (lose): Use noinline attribute instead of silly
	alloca to prevent inlining.
	* elf/dl-runtime.c (fixup): Likewise.
	(profile_fixup): Likewise.
2004-02-09 07:10:19 +00:00
Ulrich Drepper eecc378cbb Update.
2003-02-07  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-runtime.c (fixup): Correct typo in version index computation.
	(profile_fixup): Likewise.
2003-02-07 19:45:00 +00:00
Roland McGrath 0bc0e4dd09 * locale/lc-ctype.c (_nl_postload_ctype): Add compat_symbol decls for
the __ctype_* compat symbols, so the relocs generated bind to the
	right versioned global symbol in the shared object.

	* elf/do-rel.h (elf_dynamic_do_rel): Mask off 0x8000 bit (hidden flag)
	from the value taken from the DT_VERSYM table.
	* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
	* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Likewise.
	(RESOLVE_GOTSYM): Likewise.
2002-09-18 18:32:27 +00:00
Roland McGrath 868b78c83c * elf/dl-runtime.c (IN_DL_RUNTIME): Define this macro first thing.
* sysdeps/i386/dl-machine.h: Only declare fixup, profile_fixup and
	define ELF_MACHINE_RUNTIME_TRAMPOLINE under #ifdef IN_DL_RUNTIME.
2002-08-29 23:24:40 +00:00
Ulrich Drepper f9f2a150e8 Update.
2002-04-13  Ulrich Drepper  <drepper@redhat.com>

	* elf/do-lookup.h [!VERSIONED]: Add new parameter flags.  Use it to
	check whether the caller prefers getting the most recent version of
	a symbol of the earliest version.
	* elf/dl-lookup.c: Adjust all callers of do_lookup.  Change
	_dl_do_lookup to also take the new parameter and pass it on.
	Change 'explicit' parameter of _dl_lookup_symbol and
	_dl_lookup_versioned_symbol to flags.  Adjust tests.
	* sysdeps/generic/ldsodefs.h: Adjust prototypes.
	* elf/dl-libc.c: Adjust all callers of _dl_lookup_symbol and
	_dl_lookup_versioned_symbol.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* sysdeps/mips/dl-machine.h: Likewise.
2002-04-13 07:55:02 +00:00
Ulrich Drepper e6caf4e12e Update.
2002-03-01  Ulrich Drepper  <drepper@redhat.com>

	* elf/Makefile (dl-routines): Add dl-origin.
	(elide-routines.os): Add dl-origin.
	* elf/Versions [ld] (GLIBC_PRIVATE): Add _dl_get_origin.
	* elf/dl-debug.c (_dl_debug_initialize): Add missing INTUSE around
	_dl_debug_state.
	* include/libc-symbols.c: Define attribute_hidden depending on
	HAVE_VISIBILITY_ATTRIBUTE.  Add definition of INTVARDEF.

	* elf/dl-deps.c: Use INTUSE with __libc_enable_secure.
	* elf/dl-load.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/unistd.h: Declare __libc_enable_secure_internal.
	* sysdeps/generic/dl-sysdep.c: Use INTVARDEF with __libc_enable_secure.
	Use INTUSE with __libc_enable_secure.
	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.

	* elf/dl-deps.c: Use INTUSE with _dl_out_of_memory.
	* elf/dl-error.c: Likewise,
	* sysdeps/generic/ldsodefs.h: Declare _dl_out_of_memory_internal.

	* elf/dl-dst.h [_RTLD_GLOBAL]: Define _dl_get_origin to use INTUSE.
	* sysdeps/generic/dl-origin.c: Undefine _dl_get_origin macro before
	function definition.  Use INTDEF with _dl_get_origin.
	* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.

	* elf/dl-init.c: Use INTUSE with _dl_starting_up.
	* elf/rtld.c: Likewise.  Use INTVARDEF for _dl_starting_up.

	* elf/dl-profile.c: Use INTDEF for _dl_mcount.
	* elf/dl-runtime.c: Use INTUSE with _dl_mcount.
	* sysdeps/generic/ldsodefs.h: Declare _dl_mcount_internal.

	* elf/dl-conflict.c: Use rtld_progrname instead of _dl_argv[0].
	* 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-reloc.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-lookup.h: Likewise.
	* sysdeps/arm/dl-machine.h: Likewise.
	* sysdeps/cris/dl-machine.h: Likewise.
	* sysdeps/hppa/dl-machine.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* sysdeps/powerpc/dl-machine.h: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/sh/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc-32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc-64/dl-machine.h: Likewise.
	* sysdeps/x86_64/dl-machine.h: Likewise.
	* elf/rtld.c: Use INTDEF for _dl_argv.  Use rtld_progrname instead of
	_dl_argv[0].  Use INTUSE with _dl_argv.
	* sysdeps/generic/dl-sysdep.c: Use INTUSE with _dl_argv.
	* sysdeps/generic/ldsodefs.h: Define rtld_progname macro.
2002-03-01 09:44:29 +00:00
Andreas Jaeger 64b6bd34ef Update.
* elf/dl-error.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/do-lookup.h: Likewise.
2002-02-06 14:19:54 +00:00
Ulrich Drepper 7969407a01 Update.
Change ld.so to not use functions which are exported.  One cannot
	interpose them anyway.  Use INT() to mark uses, INTDEF() to mark
	definitions.
	* include/libc-symbols.h: Define INT and INTDEF.
	* sysdeps/generic/ldsodefs.h: Declare _dl_debug_printf_internal,
	_dl_signal_error_internal, _dl_map_object_internal,
	_dl_map_object_deps_internal, _dl_lookup_symbol_internal,
	_dl_lookup_versioned_symbol_internal,
	_dl_relocate_object_internal, _dl_debug_state_internal,
	_dl_start_profile_internal, and _dl_unload_cache_internal.
	* include/dlfcn.h: Declare _dl_catch_error_internal.
	* elf/rtld.c: Use INT for calls to any of the *_internal functions
	above.  Add INTDEF to function definitions.
	* elf/dl-debug.c: Likewise.
	* elf/dl-deps.c: Likewise.
	* elf/dl-dst.h: 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-misc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-lookup.h: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/alpha/dl-machine.h (RTLD_START): Call _dl_init_internal
	instead of _dl_init.
	* sysdeps/arm/dl-machine.h: Likewise.
	* sysdeps/cris/dl-machine.h: Likewise.
	* sysdeps/hppa/dl-machine.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* sysdeps/mips/dl-machine.h: Likewise.
	* sysdeps/mips/mips64/dl-machine.h: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/sh/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/x86_64/dl-machine.h: Likewise.
	* sysdeps/powerpc/dl-start.S (_dl_start_user): Likewise.

	* elf/Versions: Don't export _dl_check_all_versions, _dl_sysdep_start,
	and _dl_debug_initialize.
2002-02-03 00:31:37 +00:00
Ulrich Drepper d6b5d570a3 Update.
2002-01-30  Ulrich Drepper  <drepper@redhat.com>

	* Versions.def [ld]: Add GLIBC_2.3.
	* elf/dl-addr.c: Move global variables for SHARED code in struct
	_rtld_global.  Export this struct, remove all exports for the
	signal variables.
	* elf/dl-close.c: Likewise.
	* elf/dl-conflict.c: Likewise.
	* elf/dl-debug.c: Likewise.
	* elf/dl-deps.c: Likewise.
	* elf/dl-dst.h: Likewise.
	* elf/dl-error.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-init.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-libc.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-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-sym.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-lookup.h: Likewise.
	* elf/do-rel.h: Likewise.
	* elf/dynamic-link.h: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-fptr.c: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-librecon.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/getclktck.c: Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/dl-static.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/getpagesize.c: Likewise.

	* malloc/thread-m.h: Spinlock definitions for x86/x86_64.
2002-01-31 03:41:25 +00:00
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
Ulrich Drepper 6ed623f848 Update.
2001-11-07  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-version.c (match_symbol): Optimize error handling for size.
	(_dl_check_map_versions): Likewise.
2001-11-07 23:21:00 +00:00
Ulrich Drepper ca6c73895d Update.
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-27 00:23:28 +00:00
Ulrich Drepper 092243fa4e Update.
2001-08-26  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-runtime.c: Update calls to _dl_lookup_*.
2001-08-27 00:19:07 +00:00
Andreas Jaeger 41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +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 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
Greg McGary 7884bf473e * elf/dl-runtime.c (fixup): Trampoline passes unbounded pointer.
(profile_fixup): Don't define for __BOUNDED_POINTERS__. 
* sysdeps/i386/dl-machine.h: Don't use regparm attribute for 
__BOUNDED_POINTERS__. 
(ELF_MACHINE_RUNTIME_TRAMPOLINE): Use non-regparm version 
for __BOUNDED_POINTERS__.
	* iconv/gconv_trans.c: Add #include <stdlib.h> to get malloc decl.

	* elf/dl-runtime.c (fixup): Trampoline passes unbounded pointer.
	(profile_fixup): Don't define for __BOUNDED_POINTERS__.
	* sysdeps/i386/dl-machine.h: Don't use regparm attribute for
	__BOUNDED_POINTERS__.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Use non-regparm version
	for __BOUNDED_POINTERS__.
2000-07-18 00:13:34 +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 6aa29abe9f Update.
2000-05-21  H.J. Lu  <hjl@gnu.org>

	* elf/do-lookup.h (do_lookup_versioned): Replace reloc_type parameter
	with noexec and noplt parameter.
	(do_lookup): Likewise.

	* elf/dl-lookup.c (_dl_lookup_symbol): Change for new parameters of
	do_lookup.  Support STV_PROTECTED.
	(_dl_lookup_symbol_skip): Likewise.
	(_dl_lookup_versioned_symbol): Likewise.
	(_dl_lookup_versioned_symbol_skip): Likewise.

	* elf/dl-reloc.c (RESOLVE): Check STB_LOCAL instead of ST_VISIBILITY.

	* elf/dl-runtime.c (profile_fixup): Fix a typo in comment.
2000-05-22 16:33:19 +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
Ulrich Drepper 736d0841e4 Update.
* elf/dl-runtime.c (fixup): Correct handling of symbols marked
	STV_HIDDEN and STV_INTERNAL during lookup.
	(profile_fixup): Likewise.
	* elf/dl-reloc.c (RESOLVE): Likewise.
2000-04-04 23:23:40 +00:00
Ulrich Drepper d8655fd731 Update.
* elf/dl-runtime.c (ElfW): Fxi typo in comment.
2000-04-02 16:21:24 +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 101edd3f31 Update.
* nscd/connections.c (nscd_run): Pretty print.
	* elf/dl-runtime.c: Include stdlib.h for alloca prototype.
2000-03-22 00:36:57 +00:00
Ulrich Drepper 5330804225 Update.
1999-07-29  H.J. Lu  <hjl@gnu.org>

	* stdlib/mbtowc.c: Include <string.h>.
	* stdlib/wctomb.c: Likewise.
	* sysdeps/unix/sysv/linux/fstatfs64.c: Likewise.
	* sysdeps/unix/sysv/linux/statfs64.c: Likewise.

	* misc/mntent_r.c: Include <alloca.h>.
	* elf/dl-runtime.c: Likewise.
1999-07-29 23:46:10 +00:00
Ulrich Drepper 06535ae948 Update.
* posix/unistd.h: Move declaration of __libc_enable_secure to...
	* include/unistd.h: ...here.

	* elf/dl-open.c (dl_open_worker): If DST is used in SUID program punt.
	* elf/dl-deps.c (expand_dst): Likewise.

	* elf/dynamic-link.h: Set DT_SYMBOLIC, DT_TEXTREL, and DT_BIND_NOW
	based on DT_FLAGS value.

	* elf/do-lookup.h: Remove reference_name parameter, add undef_map.
	Add test for symbols marked STV_HIDDEN.
	* elf/dl-lookup.c (_dl_lookup_symbol): Remove reference_name parameter,
	add undef_map.  Compute reference_name locally.  Update call to
	do_lookup.
	(_dl_lookup_symbol_skip): Likewise.
	(_dl_lookup_versioned_symbol): Likewise.
	(_dl_lookup_versioned_symbol_skip): Likewise.
	* elf/dl-libc.c: Update call to _dl_lookup_*symbol.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-symbol.c: Likewise.
	* elf/ldsodefs.h: Adjust prototypes.

	* elf/dl-reloc.c (RESOLV): Add test for STV_PROTECTED flag set and
	handle appropriately.  Add comment about DT_TEXTREL.
	* elf/dl-runtime.c: Likewise.
1999-07-23 22:58:50 +00:00
Ulrich Drepper c33bd0123e Update.
1999-07-13  Andreas Schwab  <schwab@suse.de>

	* elf/dl-runtime.c (fixup, profile_fixup): Call alloca to prevent
	inlining.  Fixes PR libc/1198.
1999-07-14 15:10:51 +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 cb0509a8d5 Update.
1998-11-26  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): New defined macro.
	(elf_machine_got_rel): Remove scope variable.  Use scope from the map.
	Don't modify _dl_global_scope_end in the end.
	(__dl_runtime_resolv): Also use scope from the map.
	* sysdeps/mips/mips64/dl-machine.h: Likewise.
	* elf/dl-runtime.c: Don't define fixup and profile_fixup if
	ELF_MACHINE_NO_PLT is defined.
	* sysdeps/mips/sys/ucontext.h: New file.
	Patches by kaz Kojima <kkojima@rr.iij4u.or.jp>.

1998-11-26  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* sysdeps/generic/pselect.c (__pselect): Change interface, 
	set/restore sigmask. 
 
	* misc/sys/select.h: Change declaration according to Stevens' Unix  
	Network Programming. 
	* include/sys/select.h (__pselect): Likewise. 
	Reported by <bwelling@anomaly.munge.com> [PR libc/872]. 
 
	* include/fpu_control.h: New file, contains __setfpucw 
	declaration. 
 
	* sysdeps/generic/fpu_control.h: Remove __setfpucw declaration, 
	it's an internal symbol. 
	* sysdeps/alpha/fpu/fpu_control.h: Likewise. 
	* sysdeps/arm/fpu/fpu_control.h: Likewise. 
	* sysdeps/i386/fpu_control.h: Likewise. 
	* sysdeps/m68k/fpu_control.h: Likewise. 
	* sysdeps/powerpc/fpu_control.h: Likewise. 
	* sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise. 
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.
1998-11-26 12:02:23 +00:00
Ulrich Drepper be93561004 Update.
1998-09-06 09:00  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 2.0.96.

	Rewrite runtime linker to be truly thread-safe.  There is now no
	global variable specifying the scope.  We create all needed
	scopes at the time the link maps are created.
	* elf/Versions [GLIBC_2.1]: Add _dl_loaded and _dl_main_searchlist.
	* elf/link.h: Add struct r_scope_elem and use this for l_searchlist,
	l_symbolic_searchlist, l_scope, and l_local_scope elements in
	struct link_map.
	* elf/dl-close.c: Rewritten accordingly.
	* elf/dl-deps.c: Likewise.
	* elf/dl-error.c: Likewise.
	* elf/dl-init.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/dl-open.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/dlfcn.h: Likewise.
	* elf/dlsym.c: Likewise.
	* elf/dlvsym.c: Likewise.
	* elf/ldsodefs.h: Likewise.
	* elf/rtld.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* nss/nsswitch.c: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
1998-09-06 09:16:53 +00:00
Ulrich Drepper e0d46614cd Update.
1998-08-29  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/register-dump.h: Move to ...
	* sysdeps/unix/sysv/linux/i386/register-dump.h: ...here.
1998-08-29 09:51:09 +00:00
Ulrich Drepper fdacb17d48 Update.
1998-06-29 12:27  Ulrich Drepper  <drepper@cygnus.com>

	* argp/argp.h: Use __PMT instead of __P for function pointer.
	* iconv/gconv.h: Likewise.
	* io/fts.h: Likewise.
	* io/ftw.h: Likewise.
	* libio/libio.h: Likewise.
	* malloc/mcheck.h: Likewise.
	* misc/search.h: Likewise.
	* posix/glob.h: Likewise.
	* resolv/resolv.h: Likewise.
	* signal/signal.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.

1998-06-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig (CPPFLAGS): Use $($(subdir)-CPPFLAGS) only once.

1998-06-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* posix/wordexp.c (parse_param): Fix memory leak.

1998-06-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libc.map: Export _IO_ftrylockfile.

1998-06-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Use get[pu]id instead of
	__get[pu]id.

1998-06-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-misc.c (_dl_debug_message): Don't cache the pid.

	* elf/dl-runtime.c (_dl_object_relocation_scope): Avoid adding the
	same search list twice.

1998-06-29  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* login/programs/utmpd.c (handle_requests): Set and use maximal fd
	used to optimize loop/select.

1998-06-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/init-first.c: Don't define __libc_pid.
	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
	* sysdeps/arm/init-first.c: Likewise.
	* posix/getopt_init.c: Don't use __libc_pid.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
	* sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
	* libc.map: Remove __libc_uid and __libc_pid.
1998-06-29 12:44:22 +00:00
Ulrich Drepper 27a5bb33ac Update.
1998-04-07 16:18  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add __asprintf to GLIBC_2.1.
	* elf/dlerror.c: Use __asprintf, not asprintf.
	* libio/stdio.h: Declare __asprintf.
	* stdio-common/asprintf.c: Define as __asprintf and make asprintf
	a weak alias.

	* elf/dl-minimal.c: Add definition of strtol and strtoul (und friends)
	to avoid inclusion from libc_pic.a.

	* elf/dl-runtime.c: Undo last patch.

	* stdlib/strtod.c: Don't use mbtowc, use btowc.

	* sysdeps/i386/dl-machine.h (dl_platform_init): Don't use "i386"
	as default, use NULL.
1998-04-07 16:28:09 +00:00
Richard Henderson 4194bc660f * elf/dl-runtime.c (fixup, profile_fixup): The final arg to _dl_lookup_*symbol is DL_LOOKUP_NOPLT not ELF_MACHINE_JMP_SLOT. * elf/elf.h (EM_SPARC64): Remove. (EM_SPARC32PLUS, EM_SPARCV9): Add. (HWCAP_SPARC_V9): Add. * elf/ldsodefs.h (_dl_hwcap): Declare. * sysdeps/sparc/sparc32/dl-machine.h (_dl_hwcap, _dl_hwcap_mask): Weaken so dlopen from static progies works. (WEAKADDR): New macro. (elf_machine_matches_host): Accept EM_SPARC32PLUS on a v9 cpu. (LD_SO_PRELOAD): New macro. (elf_machine_fixup_plt): Cope with weak _dl_hwcap. (elf_machine_rela): Weaken _dl_rtld_map. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Rename __libc_clone to __clone, and remove the later's alias. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Copy to/from the kernel's structure.
1998-04-06  Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>

	* elf/dl-runtime.c (fixup, profile_fixup): The final arg to
	_dl_lookup_*symbol is DL_LOOKUP_NOPLT not ELF_MACHINE_JMP_SLOT.

	* elf/elf.h (EM_SPARC64): Remove.
	(EM_SPARC32PLUS, EM_SPARCV9): Add.
	(HWCAP_SPARC_V9): Add.

	* elf/ldsodefs.h (_dl_hwcap): Declare.
	* sysdeps/sparc/sparc32/dl-machine.h (_dl_hwcap, _dl_hwcap_mask):
	Weaken so dlopen from static progies works.
	(WEAKADDR): New macro.
	(elf_machine_matches_host): Accept EM_SPARC32PLUS on a v9 cpu.
	(LD_SO_PRELOAD): New macro.
	(elf_machine_fixup_plt): Cope with weak _dl_hwcap.
	(elf_machine_rela): Weaken _dl_rtld_map.

	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Rename __libc_clone
	to __clone, and remove the later's alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Copy to/from
	the kernel's structure.

	* sysdeps/generic/libc-start.c: Allow init and fini to be null.
1998-04-06 19:08:46 +00:00
Ulrich Drepper d0fc4041fe Update.
* intl/finddomain.c: Likewise.
	* intl/gettextP.h: Likewise.
	* intl/loadmsgcat.c: Likewise.
1998-04-02 13:11:24 +00:00
Ulrich Drepper a853022cc3 Update.
1998-03-24  Ulrich Drepper  <drepper@cygnus.com>

	* elf/ldsodesf.h: New file.
	* elf/Makefile (distribute): Add ldsodefs.h.
	* elf/link.h: Separate internal information in exter header.
	* elf/rtld.c: Include elf/ldsodefs.h not link.h.
	* elf/dl-minimal.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* elf/sprof.c: Likewise.
	* elf/dlsym.c: Likewise.
	* elf/dlvsym.c: Likewise.
	* elf/dlerror.c: Likewise.
	* elf/dladdr.c: Likewise.
	* elf/dlclose.c: Likewise.
	* elf/dlopen.c: Likewise.
	* elf/dl-addr.c: Likewise.
	* elf/dl-close.c: Likewise.
	* 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-object.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-profile.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.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* nss/nsswitch.c: Likewise.
1998-03-24 00:39:45 +00:00
Ulrich Drepper 3db52d94e2 Update.
1998-03-08 14:58  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig (nisobjdir): Set to path to nis directory.
	(rpath-link): Add nisobjdir.
	Patch by Sven Verdoolaege <skimo@kotnet.org>.

	* elf/Makefile: Pretty print.
	* elf/dl-lookup.c: Include unistd.h.
	* elf/dl-runtime.c: Likewise.

	* localedata/Makefile (test-srcs): Add tst-rpmatch.
	(distribute): Add tst-rpmatch.sh.
	(tests): Add tst-rpmatch to dependency list and run tst-rpmatch.sh.

	New tests for rpmatch function by
	Jochen Hein <jochen.hein@delphi.central.de>.
	* localedata/tst-rpmatch.c: New file.
	* localedata/tst-rpmatch.sh: New file.

	* localedata/locales/de_DE: Correct yesexpr and noexpr.
	* localedata/locales/de_AT: Likewise.

	* posix/getopt.c: Update contact address.
	* posix/getopt1.c: Pretty print.

	* sysdeps/generic/libc-start.c: Do most of the initialization now
	here instead of in start.S.
	* sysdeps/unix/sysv/linux/libc-start.c: Likewise.
	* sysdeps/i386/elf/start.S: Remove most of the initialization code.

	* sysdeps/unix/sysv/linux/i386/profil-counter.h: No need for
	profil_counter to be public.

1998-03-08 13:06  Tim Waugh  <tim@cyberelk.demon.co.uk>

	* posix/wordexp.c (parse_arith): Now works for negative numbers too.
	(parse_param): Coded parameter length expansion (${#var}).
	(parse_param): Handling for "=", "+", "-", and the ":" versions added.
	(parse_param): Cleaned up (fixed) error handling.

	* posix/wordexp-test.c: IFS now includes non-whitespace character
	(comma).  Added more tests.
1998-03-08 15:26:29 +00:00
Ulrich Drepper ea7eb7e3eb Update.
1998-03-04 09:43  Ulrich Drepper  <drepper@cygnus.com>

	* elf/link.h (struct link_map): Add new field l_reloc_result.
	* elf/dl-reloc.c (_dl_relocate_object): Allocate array for results
	of relocation for the object to be profiled.
	* elf/dl-object.c (_dl_new_object): Initialize l_reloc_result field
	to NULL.
	* elf/rtld.c (_dl_start): Add comment that we must not allocate an
	array here.
	* elf/dl-runtime.c (profile_fixup): If l_reloc_result array already
	contains a result from a previous run use this instead of computing
	the value again.
	* elf/dl-minimal.c (malloc): Remove limit for size of allocation.

1998-03-04 11:32  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1998-03-04 09:53:17 +00:00