diff options
author | Kurt Miller <kurt@cvs.openbsd.org> | 2008-04-09 21:45:27 +0000 |
---|---|---|
committer | Kurt Miller <kurt@cvs.openbsd.org> | 2008-04-09 21:45:27 +0000 |
commit | e8fa3db80c2b63ccd534533dd3faba4cea7228b8 (patch) | |
tree | 576d27cf7bc73facdc4c3316c2b0c99491e0e78d /libexec/ld.so/resolve.h | |
parent | 2649d5c18f001d23bb274cca5b01e455722dcc89 (diff) |
Improve support for shared libs linked at non-zero addreses:
- rename private values in struct elf_object to better
describe their meaning:
s/load_offs/obj_base/ "object's address '0' base"
s/load_addr/load_base/ "The base address of the loadable
segments"
- gdb needs the obj_base value so swap positions with load_base in
struct elf_object
- fix a few occurrences of where load_base was used instead of
obj_base.
With help and okay drahn@
Diffstat (limited to 'libexec/ld.so/resolve.h')
-rw-r--r-- | libexec/ld.so/resolve.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libexec/ld.so/resolve.h b/libexec/ld.so/resolve.h index 1257ffccae3..ac27d79a274 100644 --- a/libexec/ld.so/resolve.h +++ b/libexec/ld.so/resolve.h @@ -1,4 +1,4 @@ -/* $OpenBSD: resolve.h,v 1.55 2007/11/27 16:42:15 miod Exp $ */ +/* $OpenBSD: resolve.h,v 1.56 2008/04/09 21:45:26 kurt Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -49,13 +49,13 @@ struct load_list { */ typedef struct elf_object elf_object_t; struct elf_object { - Elf_Addr load_addr; /* Real load address */ + Elf_Addr obj_base; /* object's address '0' base */ char *load_name; /* Pointer to object name */ Elf_Dyn *load_dyn; /* Pointer to object dynamic data */ struct elf_object *next; struct elf_object *prev; /* End struct link_map compatible */ - Elf_Addr load_offs; /* Load offset from link address */ + Elf_Addr load_base; /* Base address of loadable segments */ struct load_list *load_list; @@ -152,7 +152,7 @@ void _dl_rt_resolve(void); void _dl_add_object(elf_object_t *object); elf_object_t *_dl_finalize_object(const char *objname, Elf_Dyn *dynp, - const long *, const int objtype, const long laddr, const long loff); + const long *, const int objtype, const long lbase, const long obase); void _dl_remove_object(elf_object_t *object); void _dl_cleanup_objects(void); |