Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F106101118
D24946.id72096.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D24946.id72096.diff
View Options
Index: head/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c
===================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c
@@ -143,12 +143,18 @@
return;
}
+#ifdef __FreeBSD__
+ elf = (void *)lmp->l_base;
+#else
elf = (void *)lmp->l_addr;
+#endif
dh.dofhp_dof = (uintptr_t)dof;
- dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_addr : 0;
#ifdef __FreeBSD__
+ dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_base : 0;
dh.dofhp_pid = getpid();
+#else
+ dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_addr : 0;
#endif
if (lmid == 0) {
Index: head/lib/libc/gen/dlinfo.3
===================================================================
--- head/lib/libc/gen/dlinfo.3
+++ head/lib/libc/gen/dlinfo.3
@@ -105,17 +105,16 @@
.In link.h
and has the following members:
.Bd -literal -offset indent
-caddr_t l_addr; /* Load Offset of library */
+caddr_t l_base; /* Base Address 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 */
*l_prev;
+caddr_t l_addr; /* Load Offset of library */
.Ed
.Bl -tag -width ".Va l_addr"
-.It Va l_addr
-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_base
+The base address of the object loaded into memory.
.It Va l_name
The full name of the loaded shared object.
.It Va l_ld
@@ -130,6 +129,10 @@
The previous
.Vt Link_map
structure on the link-map list.
+.It Va l_addr
+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.
.El
.It Dv RTLD_DI_SERINFO
Retrieve the library search paths associated with the given
Index: head/libexec/rtld-elf/rtld.c
===================================================================
--- head/libexec/rtld-elf/rtld.c
+++ head/libexec/rtld-elf/rtld.c
@@ -4032,8 +4032,9 @@
struct link_map *prev;
obj->linkmap.l_name = obj->path;
- obj->linkmap.l_addr = obj->relocbase;
+ obj->linkmap.l_base = obj->mapbase;
obj->linkmap.l_ld = obj->dynamic;
+ obj->linkmap.l_addr = obj->relocbase;
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,13 +57,14 @@
#define LA_SER_SECURE 0x80 /* default (secure) path prepended */
typedef struct link_map {
- caddr_t l_addr; /* Load Offset of library */
+ caddr_t l_base; /* Base Address of library */
#ifdef __mips__
caddr_t l_xxx; /* unused */
#endif
const char *l_name; /* Absolute Path to Library */
const void *l_ld; /* Pointer to .dynamic in memory */
struct link_map *l_next, *l_prev; /* linked list of of mapped libs */
+ caddr_t l_addr; /* Load Offset of library */
} Link_map;
struct r_debug {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Dec 26, 10:17 AM (10 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15599161
Default Alt Text
D24946.id72096.diff (3 KB)
Attached To
Mode
D24946: Revert to the initial version of D24918
Attached
Detach File
Event Timeline
Log In to Comment