aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2020-05-21 22:24:23 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2020-05-21 22:24:23 +0000
commitd0ca9a7fe4450aaa19ad281a9cef37f413bd9e5c (patch)
tree3157709def91a36554b53c9e0dcc29a742579887 /libexec/rtld-elf
parente68cde59c392635d615971c61a1fa26abcc66754 (diff)
downloadsrc-d0ca9a7fe4450aaa19ad281a9cef37f413bd9e5c.tar.gz
src-d0ca9a7fe4450aaa19ad281a9cef37f413bd9e5c.zip
Restore the binary compatibility for link_map l_addr.
Keep link_map l_addr binary layout compatible, rename l_addr to l_base where rtld returns map base. Provide relocbase in newly added l_addr. This effectively reverts the patch to the initial version of D24918. Reported by: antoine (portmgr) Reviewed by: jhb, markj Tested by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24946
Notes
Notes: svn path=/head/; revision=361349
Diffstat (limited to 'libexec/rtld-elf')
-rw-r--r--libexec/rtld-elf/rtld.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 1af83f5dc18a..1799d1893d28 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -4032,8 +4032,9 @@ linkmap_add(Obj_Entry *obj)
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;