diff options
author | Mark Salter <msalter@redhat.com> | 2011-02-23 12:56:43 +0100 |
---|---|---|
committer | Bernd Schmidt <bernds@codesourcery.com> | 2011-03-05 18:10:15 +0100 |
commit | 95adc01517efce365da4e40e0d2a081ec4497928 (patch) | |
tree | 8695a2d9a6f636baed3e935591369fe910f90beb /include/link.h | |
parent | f4eebb6146ea3f6917481d5d24f3d99e97236399 (diff) |
Add support for DSBT ELF to ld.so
This adds support for DSBT ELF to ld.so. This uses loadmaps like FD-PIC.
Some code is added in ld.so to initialize the DSBT tables, and there's
also a new target macro FINISH_BOOTSTRAP_RELOC.
Signed-off-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Aurelien Jacquiot <a-jacquiot@ti.com>
Signed-off-by: Bernd Schmidt <bernds@codesourcery.com>
Diffstat (limited to 'include/link.h')
-rw-r--r-- | include/link.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/link.h b/include/link.h index cbef6165a..185ee701e 100644 --- a/include/link.h +++ b/include/link.h @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995-2001, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1995-2001, 2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -83,6 +83,9 @@ extern ElfW(Dyn) _DYNAMIC[]; #ifdef __FDPIC__ # include <bits/elf-fdpic.h> #endif +#ifdef __DSBT__ +# include <bits/elf-dsbt.h> +#endif /* Structure describing a loaded shared object. The `l_next' and `l_prev' members form a chain of all the shared objects loaded at startup. @@ -98,8 +101,12 @@ struct link_map #ifdef __FDPIC__ struct elf32_fdpic_loadaddr l_addr; #else +#ifdef __DSBT__ + struct elf32_dsbt_loadaddr l_addr; +#else ElfW(Addr) l_addr; /* Base address shared object is loaded at. */ #endif +#endif char *l_name; /* Absolute file name object was found in. */ ElfW(Dyn) *l_ld; /* Dynamic section of the shared object. */ struct link_map *l_next, *l_prev; /* Chain of loaded objects. */ @@ -178,8 +185,12 @@ struct dl_phdr_info #ifdef __FDPIC__ struct elf32_fdpic_loadaddr dlpi_addr; #else +#ifdef __DSBT__ + struct elf32_dsbt_loadaddr dlpi_addr; +#else ElfW(Addr) dlpi_addr; #endif +#endif const char *dlpi_name; const ElfW(Phdr) *dlpi_phdr; ElfW(Half) dlpi_phnum; |