svn commit: r368260 - in head: libexec/rtld-elf sys/sys

Konstantin Belousov kib at FreeBSD.org
Tue Dec 1 22:28:02 UTC 2020


Author: kib
Date: Tue Dec  1 22:28:01 2020
New Revision: 368260
URL: https://svnweb.freebsd.org/changeset/base/368260

Log:
  rtld: bump r_debug.r_version to 1 from current 0.
  
  Add r_ldbase.
  
  Requested and reviewed by:	emaste
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week
  Differential revision:	https://reviews.freebsd.org/D27429

Modified:
  head/libexec/rtld-elf/rtld.c
  head/sys/sys/link_elf.h

Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c	Tue Dec  1 20:27:06 2020	(r368259)
+++ head/libexec/rtld-elf/rtld.c	Tue Dec  1 22:28:01 2020	(r368260)
@@ -2272,8 +2272,10 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo **aux_info)
     parse_rtld_phdr(&obj_rtld);
     obj_enforce_relro(&obj_rtld);
 
+    r_debug.r_version = R_DEBUG_VERSION;
     r_debug.r_brk = r_debug_state;
     r_debug.r_state = RT_CONSISTENT;
+    r_debug.r_ldbase = obj_rtld.relocbase;
 }
 
 /*

Modified: head/sys/sys/link_elf.h
==============================================================================
--- head/sys/sys/link_elf.h	Tue Dec  1 20:27:06 2020	(r368259)
+++ head/sys/sys/link_elf.h	Tue Dec  1 22:28:01 2020	(r368260)
@@ -69,7 +69,7 @@ typedef struct link_map {
 } Link_map;
 
 struct r_debug {
-	int		r_version;		/* not used */
+	int		r_version;		/* Currently '1' */
 	struct link_map *r_map;			/* list of loaded images */
 	void		(*r_brk)(struct r_debug *, struct link_map *);
 						/* pointer to break point */
@@ -78,7 +78,10 @@ struct r_debug {
 		RT_ADD,				/* adding a shared library */
 		RT_DELETE			/* removing a shared library */
 	}		r_state;
+	void		*r_ldbase;		/* Base address of rtld */
 };
+
+#define	R_DEBUG_VERSION		1
 
 struct dl_phdr_info
 {


More information about the svn-src-all mailing list