about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-15 22:46:40 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-15 22:46:40 +0000
commit162434a68226eb9a81fe92979fb59c8081aefcc0 (patch)
treecb2d459833468ea3e841def74ce2f3a5429df765 /elf
parent482eb33c43d5a281625ce440c869a306e46fb367 (diff)
downloadglibc-162434a68226eb9a81fe92979fb59c8081aefcc0.tar.gz
glibc-162434a68226eb9a81fe92979fb59c8081aefcc0.tar.xz
glibc-162434a68226eb9a81fe92979fb59c8081aefcc0.zip
Update.
2003-04-15  Ulrich Drepper  <drepper@redhat.com>

	* elf/elf.h: Define AT_SYSINFO_EH_FRAME.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Handle
	AT_SYSINFO_EH_FRAME.
	(_dl_show_auxv):Display AT_SYSINFO_EH_FRAME value.
	* sysdeps/generic/ldsodefs.h [NEED_DL_SYSINFO] (struct rtld_global):
	Add _dl_sysinfo_eh_frame field.
	* elf/dl-support.c [NEED_DL_SYSINFO]: Define _dl_sysinfo_eh_frame.
	* sysdeps/generic/libc-start.c [NEED_DL_SYSINFO] Define eh_obj
	variable.
	[NEED_DL_SYSINFO] (LIBC_START_MAIN): Call __register_frame_info_bases
	if _dl_sysinfo_eh_frame is non-NULL.

	* Makeconfig (gnulib): Add -lgcc_eh.

	* config.h.in: Define HAVE_FORCED_UNWIND.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-support.c2
-rw-r--r--elf/elf.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/elf/dl-support.c b/elf/dl-support.c
index efeddb6fe1..1e547d3b4d 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -127,6 +127,8 @@ size_t _dl_phnum;
 #ifdef NEED_DL_SYSINFO
 /* Needed for improved syscall handling on at least x86/Linux.  */
 uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
+/* Address of the unwind info for the vsyscall page.  */
+uintptr_t _dl_sysinfo_eh_frame;
 #endif
 
 /* During the program run we must not modify the global data of
diff --git a/elf/elf.h b/elf/elf.h
index 4a1f0fb4e0..69adde46ed 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -949,6 +949,7 @@ typedef struct
 /* Pointer to the global system page used for system calls and other
    nice things.  */
 #define AT_SYSINFO	32
+#define AT_SYSINFO_EH_FRAME	33
 
 
 /* Note section contents.  Each entry in the note section begins with