Commit Graph

1430 Commits

Author SHA1 Message Date
Roland McGrath
a3fcd5e8a4 2005-10-17 Roland McGrath <roland@redhat.com>
* elf/dl-load.c (MAP_COPY): When undefined, define to
	MAP_PRIVATE|MAP_DENYWRITE instead of just MAP_PRIVATE.
	(_dl_map_object_from_fd): Don't use MAP_DENYWRITE explicitly.
2005-10-17 20:59:28 +00:00
Roland McGrath
ae0d550c3e * abi-tags (.*-.*-knetbsd.*-gnu.*): New match, with ABI value 4.
* elf/cache.c (print_entry): Match the kNetBSD ABI tag.
2005-10-17 02:44:01 +00:00
Roland McGrath
aed48a2a23 2005-10-16 Daniel Jacobowitz <dan@codesourcery.com>
Roland McGrath  <roland@redhat.com>

	* Makerules [module-names] (extra-modules-build): New variable.
	($(extra-modules-build:%=$(objpfx)%.so)): New static pattern rule.
	Depend on libc.so and libc_nonshared.a.
	* dlfcn/Makefile ($(test-modules)): Remove static pattern rule.
	* elf/Makefile (modules-names-nobuild): New variable, add filtmod1.
	($(test-modules)): Remove static pattern rule.
2005-10-16 09:25:59 +00:00
Roland McGrath
dc936e2b7c * sysdeps/generic/ldsodefs.h (struct audit_ifaces):
Use ARCH_PLTENTER_MEMBERS and ARCH_PLTEXIT_MEMBERS macros if defined.
	* elf/tst-auditmod1.c: Include <tst-audit.h> to define more
	architecture-specific code.
	* sysdeps/generic/tst-audit.h: New file.
	* elf/Makefile (distribute): Add it.
2005-10-05 18:57:11 +00:00
Roland McGrath
ffa5c4607d * elf/elf.h (R_ARM_TLS_DTPMOD32, R_ARM_TLS_DTPOFF32,
R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
	R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros.
2005-10-05 18:30:11 +00:00
Roland McGrath
22aa06a562 [BZ #1392]
* posix/sys/wait.h [!__GNUC__ || __cplusplus] (__WAIT_INT): Use const.
2005-09-29  Alfred M. Szmidt  <ams@gnu.org>

	* elf/rtld.c [! DL_ARGV_NOT_RELRO] (_dl_argc, _dl_skip_args):
	Don't use attribute_relro.

2005-09-29  Roland McGrath  <roland@redhat.com>

	[BZ #1392]
2005-09-29 22:03:45 +00:00
Ulrich Drepper
7f71c55ddf [BZ #516]
* elf/dl-load.c: Report failed loading due to ELF class mismatch
	with better words.
2005-09-26 15:58:00 +00:00
Roland McGrath
5eac47606b * elf/dl-tsd.c (__libc_dl_error_tsd): Use attribute_tls_model_ie for
static __thread variable.
	From Alexandre Oliva <aoliva@redhat.com>
2005-09-22 07:29:50 +00:00
Roland McGrath
e751d28209 [BZ #1346]
2005-09-20  Roland McGrath  <roland@redhat.com>
	[BZ #1346]
	* elf/dl-load.c (_dl_map_object_from_fd) [HAVE_Z_RELRO]: Do relro
	magic on __stack_prot only if [SHARED].  Skip mprotect if __stack_prot
	lies outside the page-rounded-down relro region.
2005-09-20 07:46:12 +00:00
Ulrich Drepper
fc072badce (_dl_map_object_from_fd): No need to change protection of memory used for the last segment. 2005-09-02 07:33:58 +00:00
Ulrich Drepper
0b3cf80142 * sysdeps/ieee754/flt-32/e_hypotf.c [!__STDC__]: Fix function name.
2005-08-01  Bob Wilson  <bob.wilson@acm.org>
        Richard Sandiford  <richard@codesourcery.com>

	* sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Add missing
	exponent bias to the value for 2^126.

2005-08-30  Jakub Jelinek  <jakub@redhat.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* elf/dl-addr.c (_dl_addr): Use DL_ADDR_SYM_MATCH macro.
	* sysdeps/generic/ldsodefs.h (DL_ADDR_SYM_MATCH): Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h: New file.
2005-08-30 22:48:53 +00:00
Ulrich Drepper
6c49b464d9 * elf/elf.h (DT_ALPHA_PLTRO): Use symbolic name in DT_ALPHA_PLTRO
definition.
2005-08-07 07:55:10 +00:00
Ulrich Drepper
23e2554f5b * elf/dl-load.c [__WORDSIZE==64] (FILEBUF_SIZE): Adjust the value
up.  We have more program header entries now and the note section
	was normally not loaded.
2005-07-30 21:15:22 +00:00
Ulrich Drepper
04395c90fc [BZ #974]
2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
	[BZ #974]
	* csu/elf-init.c (__preinit_array_start): Take int, char **, char **.
	(__preinit_array_end): Likewise.
	(__init_array_start): Likewise.
	(__init_array_end): Likewise.
	(__libc_csu_init): Take int argc, char **argv, char **envp.
	Call preinit_array and init_array with argc, argv, envp.
	* sysdeps/generic/libc-start.c (LIBC_START_MAIN): Remove
	INIT_MAIN_ARGS.
	* sysdeps/powerpc/elf/libc-start.c (INIT_MAIN_ARGS): Removed.
	* elf/Makefile (distribute): Add tst-array5.c, tst-array5-static.c,
	tst-array5dep.c, and tst-array5.exp.
	(tests): Add tst-array5.
	(tests-static): Add tst-array5-static.
	($(objpfx)tst-array5): New target.
	($(objpfx)tst-array5.out): Likewise.
	($(objpfx)tst-array5-static.out): Likewise.
	* elf/tst-array5-static.c: New file.
	* elf/tst-array5-static.exp: Likewise.
	* elf/tst-array5.c: Likewise.
	* elf/tst-array5.exp: Likewise.
	* elf/tst-array5dep.c: Likewise.
2005-07-07 23:00:02 +00:00
Ulrich Drepper
253eb3a0ac * elf/stackguard-macros.h (STACK_CHK_GUARD): Fix s390/s390x definition.
Reported by Ulrich Weigand <uweigand@de.ibm.com>.

	* elf/stackguard-macros.h (STACK_CHK_GUARD): Add ia64 definition.
2005-07-07 06:10:18 +00:00
Ulrich Drepper
587d6ddc60 * elf/dl-error.c (_dl_signal_error): When testing for executable
being relocated, take into account that nothing might even be loaded.
2005-07-07 06:02:07 +00:00
Ulrich Drepper
9f0d7b6df9 * elf/dl-reloc.c [PROF] (_dl_relocate_object): Define
consider_profiling always to zero.  Don't count of compiler to
	remove unreached if block.
	* sysdeps/x86_64/dl-trampoline.S [PROF] (_dl_runtime_profile):
	Don't compile.
	* sysdeps/i386/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise.
	* sysdeps/ia64/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise.
	* sysdeps/s390/s390-64/dl-trampoline.S [PROF] (_dl_runtime_profile):
	Likewise.
	* sysdeps/s390/s390-32/dl-trampoline.S [PROF] (_dl_runtime_profile):
	Likewise.
	* sysdeps/powerpc/powerpc64/dl-trampoline.S [PROF]
	(_dl_profile_resolve): Likewise.
	* sysdeps/powerpc/powerpc32/dl-trampoline.S [PROF]
	(_dl_profile_resolve): Likewise.
	* gmon/Makefile: Add rules to build and run tst-profile-static.
	* gmon/tst-profile-static.c: New file.
	* Makeconfig (+link-static): Allow passing program-specific flags.
2005-07-07 02:39:45 +00:00
Ulrich Drepper
35f1e82763 * Versions.def (ld): Add GLIBC_2.4.
* configure.in: Add --enable-stackguard-randomization option.
	(ENABLE_STACKGUARD_RANDOMIZE): New define.
	* config.h.in (ENABLE_STACKGUARD_RANDOMIZE): Add.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Include stdint.h.
	(_dl_setup_stack_chk_guard): New inline function.
	* sysdeps/generic/dl-osinfo.h: Include stdint.h.
	(_dl_setup_stack_chk_guard): New inline function.
	* elf/rtld.c (__stack_chk_guard): New variable.
	(dl_main): Remove all traces of TLS_INIT_TP_EXPENSIVE.
	Set __stack_chk_guard to _dl_setup_stack_chk_guard (),
	use THREAD_SET_STACK_GUARD if defined.
	* elf/Versions (ld): Export __stack_chk_guard@@GLIBC_2.4.
	* sysdeps/generic/libc-start.c (__stack_chk_guard): New variable.
	(__libc_start_main): Set __stack_chk_guard to
	_dl_setup_stack_chk_guard (), use THREAD_SET_STACK_GUARD if defined.
	* sysdeps/generic/libc-tls.c (__libc_setup_tls): Remove all
	traces of TLS_INIT_TP_EXPENSIVE.
	* debug/Versions (libc): Export __stack_chk_fail@@GLIBC_2.4.
	* debug/Makefile (routines): Add stack_chk_fail.
	(static-only-routines): Add stack_chk_fail_local.
	* debug/stack_chk_fail_local.c: New file.
	* debug/stack_chk_fail.c: New file.
	* elf/Makefile: Add rules to build and run tst-stackguard1{,-static}
	tests.
	* elf/tst-stackguard1.c: New file.
	* elf/tst-stackguard1-static.c: New file.
	* elf/stackguard-macros.h: New file.
2005-06-26 18:14:26 +00:00
Ulrich Drepper
99c7f8700d * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_runtime_setup):
Handle prelinked libraries and binaries with new style PLT.

2005-06-07  Jakub Jelinek  <jakub@redhat.com>

	* elf/elf.h (R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI,
	R_PPC_REL16_HA): Define.

2005-06-14  Alan Modra  <amodra@bigpond.net.au>

	* config.h.in (HAVE_ASM_PPC_REL16): Add.
	* elf/elf.h (DT_PPC_GOT, DT_PPC_NUM): Define.
	* elf/tls-macros.h (PowerPC32): Include config.h.  Add variants of
	TLS_IE, TLS_LD and TLS_GD for new PLT/GOT layout.
	* sysdeps/powerpc/powerpc32/configure.in: New file,
	* sysdeps/powerpc/powerpc32/dl-dtprocnum.h: New file.
	* sysdeps/powerpc/powerpc32/dl-machine.h (DT_PPC): Define.
	(ppc_got): New inline function.
	(elf_machine_dynamic): Use ppc_got.  Add attribute const.
	(elf_machine_load_address): Add attribute const.  Don't use int vars.
	Use bcl rather than bl to save trashing branch target stack.  Use
	elf_machine_dynamic rather than duplicating code here.
	(elf_machine_runtime_setup): New inline function replacing define.
	Handle new PLT.
	(elf_machine_fixup_plt): Handle new PLT.
	(elf_machine_rela): Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Include config.h.
	(CALL_MCOUNT): Don't set up counter vars.
	* sysdeps/powerpc/powerpc32/ppc-mcount.S: Correct comment.
	* sysdeps/powerpc/powerpc32/elf/start.S (start_addressesp): Don't
	define when HAVE_ASM_PPC_REL16.
	(_start): Add HAVE_ASM_PPC_REL16 code.
	* sysdeps/powerpc/powerpc32/dl-start.S (_dl_start_user): Don't bl
	into the GOT when HAVE_ASM_PPC_REL16.
	* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp): Ditto.
	* sysdeps/powerpc/powerpc32/fpu/s_ceil.S (__ceil): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S (__ceilf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_floor.S (__floor): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_floorf.S (__floorf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_lround.S (__lround): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_rint.S (__rint): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_rintf.S (__rintf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_round.S (__round): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_roundf.S (__roundf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_trunc.S (__trunc): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_truncf.S (__truncf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S (__sigsetjmp):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S (__brk): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
	(__getcontext): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
	(__setcontext): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
	(__swapcontext): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (stackblock):
	Comment.
	(__socket): Bomb if NARGS >= 7.  Invoke CGOTSETUP and CGOTRESTORE.

2005-06-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/sigignore.c: Include <string.h> to tell the compiler
	to use __GI_memset.
	* sysdeps/posix/signal.c: Likewise.
	* sysdeps/posix/sigset.c: Likewise.
	* sysdeps/posix/sysv_signal.c: Likewise.
	* sysdeps/unix/sysv/linux/sleep.c: Likewise.
	* sysdeps/unix/sysv/linux/sysctl.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
2005-06-17 23:11:35 +00:00
Ulrich Drepper
c63d8f809b [BZ #966]
2005-06-13  Ulrich Drepper  <drepper@redhat.com>
	* sysdeps/unix/clock_gettime.c (clock_gettime): Implement case
	where HANDLED_REALTIME is not defined.  [BZ #966]

2005-06-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/netlinkaccess.h (__netlink_sendreq,
	__netlink_receive): Remove prototypes.
	(__netlink_request): New prototype.
	* sysdeps/unix/sysv/linux/ifaddrs.c: Include <alloca.h> and
	<stdint.h>.
	(__netlink_sendreq): Make static.
	(__netlink_receive): Rename to...
	(__netlink_request): ... this.  Add type argument, call
	__netlink_sendreq.  If MSG_TRUNC is set after recvmsg, retry
	with a bigger buffer.  Don't record buffers that contain no
	messages we are expecting.
	(getifaddrs): Use __netlink_request instead of __netlink_sendreq
	and __netlink_receive pairs.  Formatting.
	* sysdeps/unix/sysv/linux/if_index.c (if_nameindex_netlink): Use
	__netlink_request instead of __netlink_sendreq and __netlink_receive
	pair.

2005-06-13  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/unix/sysv/linux/netinet/if_tr.h: Don't include kernel
	headers, instead copy important structs/defines.

2005-06-13  Jakub Jelinek  <jakub@redhat.com>

	* elf/rtld.c (dl_main): Move DT_DEBUG setup before first
	_dl_debug_state call.
2005-06-14 00:56:49 +00:00
Ulrich Drepper
74780cf659 * elf/dl-error.c (_dl_signal_error): Store information about use of
real malloc in the catch object.
	(_dl_catch_error): Forward information about malloc use to caller
	in new parameter.
	(_dl_out_of_memory): Make static.
	* elf/dl-deps.c: Adjust callers of _dl_catch_error.
	* elf/dl-libc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/rtld.c: Likewise.
	Add new --audit option.
	* sysdeps/generic/ldsodefs.h: Remove _dl_out_of_memory declaration.
	(rtld_global_ro._dl_signal_error): Add new parameter.
	* include/dlfcn.h (_dl_catch_error): Add new parameter.
	* dlfcn/dlfcn.c (_dlerror_run): Pass additional parameter to
	_dl_catch_error.  Only free if the returned newly value says so.
2005-06-12 16:29:51 +00:00
Richard Henderson
4d87b39422 * elf/elf.h (DT_ALPHA_PLTRO, DT_ALPHA_NUM): New. * sysdeps/alpha/dl-dtprocnum.h: New file. * sysdeps/alpha/dl-machine.h (DT_ALPHA): New. (elf_machine_load_address): Simplify to rely on gprel relocations. (elf_machine_runtime_setup): Handle DT_ALPHA_PLTRO plt format. Remove thread safety workaround for binutils 2.6. (elf_machine_fixup_plt): Handle DT_ALPHA_PLTRO plt format. * sysdeps/alpha/dl-trampoline.S (_dl_runtime_resolve_new): New. (_dl_runtime_profile_new): New. (_dl_runtime_resolve_old): Rename from _dl_runtime_resolve. (_dl_runtime_profile_old): Rename from _dl_runtime_profile. Fix typo in _dl_call_pltexit argument loading.
* sysdeps/alpha/div_libc.h (funcnoplt): New.
        * sysdeps/alpha/divl.S, sysdeps/alpha/divq.S: Use it.
        * sysdeps/alpha/divqu.S, sysdeps/alpha/reml.S: Likewise.
        * sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Likewise.
2005-05-28  Richard Henderson  <rth@redhat.com>

	* elf/elf.h (DT_ALPHA_PLTRO, DT_ALPHA_NUM): New.
	* sysdeps/alpha/dl-dtprocnum.h: New file.
	* sysdeps/alpha/dl-machine.h (DT_ALPHA): New.
	(elf_machine_load_address): Simplify to rely on gprel relocations.
	(elf_machine_runtime_setup): Handle DT_ALPHA_PLTRO plt format.
	Remove thread safety workaround for binutils 2.6.
	(elf_machine_fixup_plt): Handle DT_ALPHA_PLTRO plt format.
	* sysdeps/alpha/dl-trampoline.S (_dl_runtime_resolve_new): New.
	(_dl_runtime_profile_new): New.
	(_dl_runtime_resolve_old): Rename from _dl_runtime_resolve.
	(_dl_runtime_profile_old): Rename from _dl_runtime_profile.  Fix
	typo in _dl_call_pltexit argument loading.

	* sysdeps/alpha/div_libc.h (funcnoplt): New.
	* sysdeps/alpha/divl.S, sysdeps/alpha/divq.S: Use it.
	* sysdeps/alpha/divqu.S, sysdeps/alpha/reml.S: Likewise.
	* sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Likewise.
2005-05-28 23:40:09 +00:00
Ulrich Drepper
2f4db0dfc8 * elf/rtld.c: Include <dl-osinfo.h>. 2005-05-22 23:03:25 +00:00
Ulrich Drepper
39fb308fd2 * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Adjust for
removal of a_ptr element in ElfXX_auxv_t.
	* elf/dl-support.c (_dl_aux_init): Likewise.
2005-05-11 17:32:13 +00:00
Ulrich Drepper
151c317ff7 (Elf32_auxv_t): Make cross-compile safe. (Elf64_auxv_t): Likewise. 2005-05-11 08:33:48 +00:00
Ulrich Drepper
bfc832ccf1 * elf/dl-close.c: Include stddef.h.
(_dl_close): If called recursively, just remember GC needs to be rerun
	and decrease l_direct_opencount.  Avoid GC if l_direct_opencount
	decreased to 1.  Rerun GC at the end if any destructor unloaded some
	additional libraries.
	* elf/Makefile: Add rules to build and run unload6 test.
	* elf/unload6.c: New test.
	* elf/unload6mod1.c: New file.
	* elf/unload6mod2.c: New file.
	* elf/unload6mod3.c: New file.

	* malloc/hooks.c (mem2chunk_check): Add magic_p argument, set *magic_p
	if magic_p is not NULL.
	(top_check): Invoke MALLOC_FAILURE_ACTION if MORECORE failed.
	(malloc_check): Fail if sz == -1.
	(free_check): Adjust mem2chunk_check caller.
	(realloc_check): Likewise.  Fail if bytes == -1.  If bytes == 0 and
	oldmem != NULL, call free_check and return NULL.  If reallocating
	and returning NULL, invert magic byte again to make oldmem valid
	region for further checking.
	(memalign_check): Fail if bytes == -1.
	* malloc/Makefile: Add rules to build and run tst-mcheck.
	* malloc/tst-mcheck.c: New test.
2005-04-27 01:39:11 +00:00
Roland McGrath
0980fc8724 2005-04-26 Roland McGrath <roland@redhat.com>
* elf/rtld-Rules (rtld-all): Test ifndef rtld-modules instead of
	ifeq ($(subdir),elf) to distinguish main driver from subdir runs.
2005-04-26 20:05:30 +00:00
Roland McGrath
b34cbd1428 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
(INTERNAL_SYSCALL_ERROR_P): Fix typo in last change.

	* sunrpc/xdr.c (xdr_u_int): Use `long' for L and cast where needed.

	* elf/dl-load.c: Revert last change.
2005-04-26 04:26:13 +00:00
Roland McGrath
6c63200907 * elf/dl-load.c (_dl_map_object_from_fd): Don't use MAP_DENYWRITE,
since Linux ignores it in user mmap calls.
2005-04-21 21:49:23 +00:00
Ulrich Drepper
edac0e8f44 Add sparc64 TLS and NPTL support.
* elf/tls-macros.h: Add Sparc64 defines.
	* sysdeps/sparc/sparc64/dl-machine.h (sparc64_fixup_plt): Mark as
	always_inline.
	(elf_machine_fixup_plt): Likewise.
	(elf_machine_rela): Handle TLS relocations.
	(elf_machine_type_cleaa): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER_ENTRY): Use sethi/or for GOT reloc.
	It does not always fit in R_SPARC_GOT13 when building -fPIC.
	Also, add TLS handling.
	* sysdeps/unix/sysv/linux/configure.in (arch_minimum_kernel):
	Increase it to 2.4.21 for sparc64.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: NULL terminate
	backtrace by zero'ing out %fp.  Store away flags, func_ptr,
	and func_arg in global registers not local registers.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Handle PTID, TLS,
	and CTID arguments properly.  Add RESET_PID handling.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Rework so that we
	do not invoke __sigprocmask().  We can always assume rt signals
	are present on sparc64, so just do an inline syscall.

2005-04-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc64/dl-machine.h: Add dl_machine_h multiple
	inclusion guard for the first half of the header.
	(elf_machine_type_class, ELF_MACHINE_JMP_SLOT, ELF_MACHINE_NO_REL,
	ELF_MACHINE_PLTREL_OVERLAP, elf_machine_runtime_setup,
	elf_machine_relplt, DL_STACK_END, RTLD_START): Move into the
	#ifndef dl_machine_h guarded part of the header.
2005-04-14 21:46:37 +00:00
Roland McGrath
ab1d521db3 * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_discover_osversion)
[(NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO) && SHARED]: Scan
	GLRO(dl_sysinfo_map) for PT_NOTE giving Linux kernel version,
	we can skip the uname call if it's there.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't use
	DL_SYSDEP_OSCHECK here.
	* elf/rtld.c (dl_main) [DL_SYSDEP_OSCHECK]: Do it here instead.

	* sysdeps/generic/ldsodefs.h (struct rtld_global_ro):
	Add _dl_sysinfo_map.
	* elf/rtld.c (dl_main): Don't call _dl_init_paths early in the
	rtld_is_main case.  Call it unconditionally later.
	Move GLRO(dl_sysinfo_dso) handling earlier, before _dl_init_paths call.
	Initialize GLRO(dl_sysinfo_map).
	* elf/dl-load.c (open_path): Bail out if _dl_init_paths wasn't called.
	* sysdeps/generic/dl-sysdep.c (_DL_FIRST_EXTRA): New macro.
	(_dl_important_hwcaps)
	[(NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO) && SHARED]: Scan
	GLRO(dl_sysinfo_map) for PT_NOTE giving synthetic hwcap names
	and bit values.
	* elf/ldconfig.c (_DL_FIRST_EXTRA): New macro.
	(hwcap_extra): New static variable.
	(is_hwcap_platform): Check hwcap_extra for a matching name.
	Remove tls special case.
	(path_hwcap): Likewise.
	(parse_conf): Parse "hwcap" directive to define synthetic hwcap bits
	and their names, stored in hwcap_extra.
	(main) [USE_TLS]: Initialize final synthetic hwcap bit as "tls".

	* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Use uint64_t for
	_dl_hwcap and _dl_hwcap_mask.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Cast a_val for
	AT_HWCAP to unsigned long int.
	* elf/dl-support.c (_dl_aux_init): Likewise.
	(_dl_hwcap): Update defn.

	* elf/cache.c (print_entry): Pad hwcap value with 0s in diagnostic.
	* elf/ldconfig.c (search_dir): Likewise.
2005-04-07 20:57:41 +00:00
Roland McGrath
404a4e2fb3 * sysdeps/sparc/sparc32/dl-trampoline.S: New file.
* sysdeps/sparc/sparc32/dl-machine.h: Move PLT trampolines there.
	Use RESOLVE_MAP instead of RESOLVE to protect relocation code.
	(elf_machine_runtime_setup): Test for dl_profile non-null.
	* sysdeps/sparc/sparc64/dl-trampoline.S: New file.
	(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): New.
	* sysdeps/sparc/sparc64/dl-machine.h: Move PLT trampolines there.
	Use RESOLVE_MAP instead of RESOLVE to protect relocation code.
	(elf_machine_runtime_setup): Test for dl_profile non-null.
	* sysdeps/sparc/bits/link.h: New file.
	* sysdeps/generic/ldsodefs.h (La_sparc32_regs, La_sparc32_retval,
	La_sparc64_regs, La_sparc64_retval): New.
	(struct audit_ifaces): Add sparc entries.
	* elf/tst-auditmod1.c: Add sparc entries.
2005-04-05 21:37:05 +00:00
Roland McGrath
9640622776 * elf/dl-load.c: Don't include dl-osinfo.h here. 2005-03-30 02:07:41 +00:00
Andreas Jaeger
abc85e9fea [BZ #783]
2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
	[BZ #783]
	* elf/tst-auditmod1.c: Add MIPS support.
	* sysdeps/generic/ldsodefs.h (La_mips_32_regs): New.
	(La_mips_32_retval): New.
	(La_mips_64_regs): New.
	(La_mips_64_retval): New.
	(struct audit_ifaces): Add MIPS entries.
	* sysdeps/mips/dl-machine.h: Check RESOLVE_MAP instead of RESOLVE.
	(elf_machine_runtime_link_map, ELF_DL_FRAME_SIZE,
	ELF_DL_SAVE_ARG_REGS, ELF_DL_RESTORE_ARG_REGS,
	ELF_MACHINE_RUNTIME_TRAMPOLINE): Move to dl-trampoline.c.
	(RTLD_START): Align the stack before calling _dl_init_internal.
	Use .ent for _dl_start_user.
	(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): Define.
	(elf_machine_rel, elf_machine_rel_relative, elf_machine_lazy_rel)
	(elf_machine_runtime_setup): Use "auto inline".
	(elf_machine_rela, elf_machine_rela_relative): Provide empty versions.
	(elf_machine_got_rel): Likewise.  Use RESOLVE_MAP.
	* sysdeps/mips/dl-trampoline.c: New file.
	* sysdeps/mips/bits/link.h: New file.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
	(internal_syscall5): Use register operands instead of non-lvalue
	memory operands.
	(internal_syscall6): Likewise.
	(internal_syscall7): Likewise.
2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>

	[BZ #783]
	* elf/tst-auditmod1.c: Add MIPS support.
	* sysdeps/generic/ldsodefs.h (La_mips_32_regs): New.
	(La_mips_32_retval): New.
	(La_mips_64_regs): New.
	(La_mips_64_retval): New.
	(struct audit_ifaces): Add MIPS entries.
	* sysdeps/mips/dl-machine.h: Check RESOLVE_MAP instead of RESOLVE.
	(elf_machine_runtime_link_map, ELF_DL_FRAME_SIZE,
	ELF_DL_SAVE_ARG_REGS, ELF_DL_RESTORE_ARG_REGS,
	ELF_MACHINE_RUNTIME_TRAMPOLINE): Move to dl-trampoline.c.
	(RTLD_START): Align the stack before calling _dl_init_internal.
	Use .ent for _dl_start_user.
	(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): Define.
	(elf_machine_rel, elf_machine_rel_relative, elf_machine_lazy_rel)
	(elf_machine_runtime_setup): Use "auto inline".
	(elf_machine_rela, elf_machine_rela_relative): Provide empty versions.
	(elf_machine_got_rel): Likewise.  Use RESOLVE_MAP.
	* sysdeps/mips/dl-trampoline.c: New file.
	* sysdeps/mips/bits/link.h: New file.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
	(internal_syscall5): Use register operands instead of non-lvalue
	memory operands.
	(internal_syscall6): Likewise.
	(internal_syscall7): Likewise.
2005-03-28 07:49:19 +00:00
Roland McGrath
729cee49f0 2005-03-27 Daniel Jacobowitz <dan@codesourcery.com>
* elf/tls-macros.h: Correct typo.
2005-03-27 20:06:13 +00:00
Roland McGrath
eb13a70972 2005-03-22 Daniel Jacobowitz <dan@codesourcery.com>
* elf/elf.h (PT_ARM_EXIDX): New macro.
2005-03-22 21:48:18 +00:00
Ulrich Drepper
167d5acc0d [BZ #786]
2005-03-15  Jakub Jelinek  <jakub@redhat.com>
	[BZ #786]
	* sysdeps/generic/dl-tls.c (_dl_next_tls_modid): Handle
	GL(dl_tls_static_nelem) == GL(dl_tls_max_dtv_idx).
	* elf/Makefile: Add rules to build and run tst-tls15.
	* elf/tst-tls15.c: New test.
	* elf/tst-tlsmod15a.c: New file.
	* elf/tst-tlsmod15b.c: New file.

2005-03-20  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (dl_main): Always call init_tls if we have audit modules.
2005-03-20 22:25:59 +00:00
Ulrich Drepper
8622e9505d * elf/dl-open.c (dl_open_worker): Fix typo. 2005-03-20 18:38:24 +00:00
Ulrich Drepper
f7e39466ca * elf/dl-lookup.c (add_dependency): Always search l_initfini if
the list exists.
2005-03-19 09:10:45 +00:00
Ulrich Drepper
3d786f1969 * elf/Makefile: Add rules to build and run order2.
* elf/order2.c: New file.
	* elf/order2mod1.c: New file.
	* elf/order2mod2.c: New file.
	* elf/order2mod3.c: New file.
	* elf/order2mod4.c: New file.
2005-03-19 08:04:37 +00:00
Ulrich Drepper
a2f7570bdd * elf/dl-open.c (dl_open_worker): Print exact l_direct_opencount value,
it has been incremented before.
2005-03-19 07:51:35 +00:00
Ulrich Drepper
c3381f3eb2 * elf/dl-fini.c (_dl_fini): Split sorting of the maps in separate
function _dl_sort_fini.
	(_dl_sort_fini): New function.
	* sysdeps/generic/ldsodefs.h: Declare _dl_sort_fini.
	* elf/dl-close.c (_dl_close): Call _dl_sort_fini before running
	destructors to call them in the right order.
2005-03-19 07:22:23 +00:00
Ulrich Drepper
20fe49b93a * include/link.h (struct link_map): Remove l_opencount. Add l_removed.
Change type of l_idx to int.
	* elf/dl-close.c: Basically rewrite.  Do not use l_opencount to
	determine whether a DSO has to be unloaded.  Instead compute this
	in this function.
	* elf/dl-deps.c: No need to manipulate l_opencount anymore.
	* elf/dl-lookup.c: Likewise.
	* elf/rtld.c: Likewise
	* elf/dl-open.c: Likewise.  Use l_init_called to determine whether
	object was just loaded.
	* elf/dl-fini.c: Bump l_direct_opencount instead of l_opencount.
	* elf/dl-load.c (_dl_map_object_from_fd): Do not recognize DSO which
	is about to be unloaded as a match.
	(_dl_map_object): Likewise.
	* elf/do-lookup.h (do_lookup_x): Do not look into DSO which is about
	to be unloaded.
	* elf/circleload1.c: Don't use l_opencount anymore.
	* elf/neededtest.c: Likewise.
	* elf/neededtest2.c: Likewise.
	* elf/neededtest3.c: Likewise.
	* elf/neededtest4.c: Likewise.
	* elf/unload.c: Likewise.
	* elf/unload2.c: Likewise.
	* elf/loadtest.c: Likewise.

	* elf/rtld.c: Preloading errors are now never fatal.

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

	* elf/Makefile: Add rules to build and run unload5 test.
	* elf/unload5.c: New file.

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

	* elf/Makefile: Add rules to build and run unload4 test.
	* elf/unload4.c: New file.
	* elf/unload4mod1.c: New file.
	* elf/unload4mod2.c: New file.
	* elf/unload4mod3.c: New file.
	* elf/unload4mod4.c: New file.
2005-03-18 11:11:42 +00:00
Ulrich Drepper
193af754dc Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
Roland McGrath
acf9547e00 2005-03-16 Daniel Jacobowitz <dan@codesourcery.com>
* elf/elf.h: Define MIPS TLS relocations.
2005-03-16 23:25:56 +00:00
Ulrich Drepper
1087e37192 (main): Pretty printing. 2005-03-16 08:43:59 +00:00
Roland McGrath
1b243ca9a8 * sysdeps/generic/wordexp.c (exec_comm_child): Add inline keyword.
Patch by Dan Kegel <dank@kegel.com>.

	* elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Add inline keyword.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline
	attribute.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.  Change
	static inline into auto inline.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela):
	Likewise.
	* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Likewise.

2005-03-15  Jakub Jelinek  <jakub@redhat.com>
2005-03-15 22:57:31 +00:00
Roland McGrath
af81020e98 * elf/tls-macros.h: #include_next <tls-macros.h> to get a sysdeps
version if there is one.  Only #error if macros are then undefined.
	* sysdeps/generic/tls-macros.h: New file.
2005-03-13 09:09:05 +00:00
Ulrich Drepper
21745dfa61 * elf/dl-close.c (_dl_close): Decrement l_opencount before
printing debug message.
	* elf/dl-open.c (dl_open_worker): Always print the new opencount
	in debug messages.
2005-03-07 08:06:09 +00:00
Ulrich Drepper
d8505f90bf * elf/dl-close.c (_dl_close): Unify debug message format. 2005-03-07 07:57:43 +00:00