summary refs log tree commit diff
path: root/include/link.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-07-26 00:27:15 +0000
committerUlrich Drepper <drepper@redhat.com>2001-07-26 00:27:15 +0000
commit370f00c3a7bfaa50b091a8cbf049c5d3c92639ab (patch)
treeb72cf5ea4172145b97d7cd2de38e026e4dda0fa1 /include/link.h
parentca13ce66be1bb4d218c89b1680e7aa177a3275cd (diff)
downloadglibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.tar.gz
glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.tar.xz
glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.zip
Update.
2001-06-07  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/ia64/dl-symaddr.c (_dl_symbol_address): Update call to
	__ia64_make_fptr() for new interface.
	(_dl_function_address): Remove.

	* sysdeps/ia64/dl-machine.h (IA64_BOOT_FPTR_TABLE_LEN): Rename
	from IA64_BOOT_FPTR_SIZE and reduce its value from 256 to 200.
	(struct ia64_fdesc): Rename from struct ia64_fptr and drop "next"
	pointer.  Rename member "func" to "ip".
	(struct ia64_fdesc_table): New type.
	(__ia64_make_fptr): Change prototype.
	(__ia64_init_bootstrap_fdesc_table): New function.
	(ELF_MACHINE_BEFORE_RTLD_RELOC): New macro.
	(__boot_ldso_fptr): Removed.
	(__fptr_next): Removed.
	(__fptr_root): Removed.
	(__fptr_count): Removed.
	(TRAMPOLINE_TEMPLATE): Fix typo in comment.  Don't use multi-line
	strings to avoid warning from gcc3.
	(RTLD_START): Don't use multi-line strings.
	(ELF_MACHINE_START_ADDRESS): Use DL_STATIC_FUNCTION_ADDRESS.
	(elf_machine_fixup_plt): Update the code entry point in the
	function descriptor through a "volatile" pointer to ensure proper
	write ordering.
	(elf_machine_rela): Simplify handling of FPTR relocs: always call
	__ia64_make_fptr().

	* sysdeps/ia64/dl-lookupcfg.h (DL_AUTO_FUNCTION_ADDRESS): New macro.
	(DL_STATIC_FUNCTION_ADDRESS): Likewise.
	(DL_DT_INIT_ADDRESS): Use DL_AUTO_FUNCTION_ADDRESS.
	(DL_DT_FINI_ADDRESS): Likewise.

	* sysdeps/ia64/dl-fptr.c: Rewrite for better scalability and to
	avoid deadlocks.

	* include/link.h: Add member machine specific "l_mach" member to
	link_map.

	* sysdeps/generic/bits/link.h: New file.
	* sysdeps/ia64/bits/link.h: Likewise.

	* elf/rtld.c (_dl_start): Fix typo in comment.
	(_dl_start_final): Copy new "l_mach" member from temporary to
	final bootstrap map.
Diffstat (limited to 'include/link.h')
-rw-r--r--include/link.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/link.h b/include/link.h
index 1964b6bad3..9345c928d7 100644
--- a/include/link.h
+++ b/include/link.h
@@ -33,6 +33,7 @@
 #define _ElfW_1(e,w,t)	e##w##t
 
 #include <bits/elfclass.h>		/* Defines __ELF_NATIVE_CLASS.  */
+#include <bits/link.h>
 
 /* Rendezvous structure used by the run-time dynamic linker to communicate
    details of shared object loading to the debugger.  If the executable's
@@ -228,6 +229,8 @@ struct link_map
 
     /* Temporarily used in `dl_close'.  */
     unsigned int l_idx;
+
+    struct link_map_machine l_mach;
   };
 
 struct dl_phdr_info