Page MenuHomeFreeBSD

D24918.diff
No OneTemporary

D24918.diff

Index: head/lib/libc/gen/dlinfo.3
===================================================================
--- head/lib/libc/gen/dlinfo.3
+++ head/lib/libc/gen/dlinfo.3
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 14, 2003
+.Dd May 19, 2020
.Dt DLINFO 3
.Os
.Sh NAME
@@ -105,7 +105,7 @@
.In link.h
and has the following members:
.Bd -literal -offset indent
-caddr_t l_addr; /* Base Address of library */
+caddr_t l_addr; /* Load Offset of library */
const char *l_name; /* Absolute Path to Library */
const void *l_ld; /* Pointer to .dynamic in memory */
struct link_map *l_next, /* linked list of mapped libs */
@@ -113,7 +113,9 @@
.Ed
.Bl -tag -width ".Va l_addr"
.It Va l_addr
-The base address of the object loaded into memory.
+The load offset of the object, that is, the difference between
+the actual load address and the base virtual address the object
+was linked at.
.It Va l_name
The full name of the loaded shared object.
.It Va l_ld
Index: head/libexec/rtld-elf/rtld.c
===================================================================
--- head/libexec/rtld-elf/rtld.c
+++ head/libexec/rtld-elf/rtld.c
@@ -4032,12 +4032,8 @@
struct link_map *prev;
obj->linkmap.l_name = obj->path;
- obj->linkmap.l_addr = obj->mapbase;
+ obj->linkmap.l_addr = obj->relocbase;
obj->linkmap.l_ld = obj->dynamic;
-#ifdef __mips__
- /* GDB needs load offset on MIPS to use the symbols */
- obj->linkmap.l_offs = obj->relocbase;
-#endif
if (r_debug.r_map == NULL) {
r_debug.r_map = l;
Index: head/sys/sys/link_elf.h
===================================================================
--- head/sys/sys/link_elf.h
+++ head/sys/sys/link_elf.h
@@ -57,9 +57,9 @@
#define LA_SER_SECURE 0x80 /* default (secure) path prepended */
typedef struct link_map {
- caddr_t l_addr; /* Base Address of library */
+ caddr_t l_addr; /* Load Offset of library */
#ifdef __mips__
- caddr_t l_offs; /* Load Offset of library */
+ caddr_t l_xxx; /* unused */
#endif
const char *l_name; /* Absolute Path to Library */
const void *l_ld; /* Pointer to .dynamic in memory */

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 22, 1:17 AM (21 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25857257
Default Alt Text
D24918.diff (2 KB)

Event Timeline