summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
Diffstat (limited to 'elf')
-rw-r--r--elf/link.h14
-rw-r--r--elf/sofini.c2
-rw-r--r--elf/soinit.c2
3 files changed, 11 insertions, 7 deletions
diff --git a/elf/link.h b/elf/link.h
index c4b0a4fd9c..c74e240492 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -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 6da0062d06..077399f0ce 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 0c3f5b3163..2b333b7ace 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 *);