about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-01-24 08:36:13 +0000
committerUlrich Drepper <drepper@redhat.com>2004-01-24 08:36:13 +0000
commite8648a5a87fd0c472cb6002df8111b9a8ec3fba6 (patch)
tree87992735d4b94569a7938455ff304b630b66b8f0 /sysdeps/generic
parent75631a576303d3bf23c0db077dcf5dc15c863063 (diff)
downloadglibc-e8648a5a87fd0c472cb6002df8111b9a8ec3fba6.tar.gz
glibc-e8648a5a87fd0c472cb6002df8111b9a8ec3fba6.tar.xz
glibc-e8648a5a87fd0c472cb6002df8111b9a8ec3fba6.zip
Update.
2004-01-22  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-reloc.c (_dl_relocate_object): Move PT_GNU_RELRO protection
	into...
	(_dl_protect_relro): New routine.
	* sysdeps/generic/ldsodefs.h (_dl_protect_relro): New prototype.
	* elf/rtld.c (_dl_start_final): Copy l_relro_addr and l_relro_size
	from bootstrap_map.
	(_dl_main): Don't set GL(_dl_loaded)->l_relro_{addr,size} here.
	Call _dl_protect_relro for libraries if prelinking.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/ldsodefs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index a05e5c76d4..eed7893a1e 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -697,6 +697,10 @@ extern void _dl_relocate_object_internal (struct link_map *map,
 					  int lazy, int consider_profiling)
      attribute_hidden;
 
+/* Protect PT_GNU_RELRO area.  */
+extern void _dl_protect_relro (struct link_map *map)
+     internal_function attribute_hidden;
+
 /* Call _dl_signal_error with a message about an unhandled reloc type.
    TYPE is the result of ELFW(R_TYPE) (r_info), i.e. an R_<CPU>_* value.
    PLT is nonzero if this was a PLT reloc; it just affects the message.  */