diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/link.h | 14 | ||||
-rw-r--r-- | elf/sofini.c | 2 | ||||
-rw-r--r-- | elf/soinit.c | 2 |
3 files changed, 11 insertions, 7 deletions
@@ -111,6 +111,14 @@ struct r_search_path_elem }; +/* A data structure for a simple single linked list of strings. */ +struct libname_list + { + const char *name; /* Name requested (before search). */ + struct libname_list *next; /* Link to next name for this object. */ + }; + + /* Structure describing a loaded shared object. The `l_next' and `l_prev' members form a chain of all the shared objects loaded at startup. @@ -130,11 +138,7 @@ struct link_map /* All following members are internal to the dynamic linker. They may change without notice. */ - struct libname_list - { - const char *name; /* Name requested (before search). */ - struct libname_list *next; /* Link to next name for this object. */ - } *l_libname; + struct libname_list *l_libname; /* Indexed pointers to dynamic section. [0,DT_NUM) are indexed by the processor-independent tags. [DT_NUM,DT_NUM+DT_PROCNUM) are indexed by the tag minus DT_LOPROC. diff --git a/elf/sofini.c b/elf/sofini.c index 6da0062..077399f 100644 --- a/elf/sofini.c +++ b/elf/sofini.c @@ -13,7 +13,7 @@ static void (*const __DTOR_END__[1]) (void) this would be the 'length' field in a real FDE. */ typedef unsigned int ui32 __attribute__ ((mode (SI))); -static const ui32 __FRAME_END__[1] +static ui32 __FRAME_END__[1] __attribute__ ((unused, section (".eh_frame"))) = { 0 }; #endif diff --git a/elf/soinit.c b/elf/soinit.c index 0c3f5b3..2b333b7 100644 --- a/elf/soinit.c +++ b/elf/soinit.c @@ -18,7 +18,7 @@ run_hooks (void (*const list[]) (void)) } #ifdef HAVE_DWARF2_UNWIND_INFO -static const char __EH_FRAME_BEGIN__[] +static char __EH_FRAME_BEGIN__[] __attribute__ ((section (".eh_frame"))) = { }; extern void __register_frame (const void *); |