Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Dec 2020 22:28:01 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r368260 - in head: libexec/rtld-elf sys/sys
Message-ID:  <202012012228.0B1MS1dN010521@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202012012228.0B1MS1dN010521>