summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-31 08:36:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-31 08:36:05 +0000
commit4317f9e1377c92493459f2796c37da27c01bccf7 (patch)
tree37f8f4e349b3dfdd41a31ebd0e984e645c698bbc /elf
parent0491011bdeaa994079912b9955a1fbf7e6fb5c59 (diff)
Update.
* nss/nsswitch.c (__nss_lookup): Adjust comment.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-load.c8
-rw-r--r--elf/ldsodefs.h23
-rw-r--r--elf/link.h4
3 files changed, 26 insertions, 9 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index c75a91392e..212b22307a 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -331,6 +331,10 @@ _dl_init_paths (const char *llp)
variable. */
struct link_map *l;
+ /* Names of important hardware capabilities. */
+ char **hwcap_names;
+ size_t nhwcap_names;
+
/* Number of elements in the library path. */
size_t nllp;
@@ -347,6 +351,10 @@ _dl_init_paths (const char *llp)
else
nllp = 0;
+ /* Get the capabilities. */
+ hwcap_names = _dl_important_hwcaps (&nhwcap_names,
+ _dl_platform, _dl_platformlen);
+
l = _dl_loaded;
if (l != NULL)
{
diff --git a/elf/ldsodefs.h b/elf/ldsodefs.h
index 3154bf2a2b..578e085d75 100644
--- a/elf/ldsodefs.h
+++ b/elf/ldsodefs.h
@@ -53,20 +53,22 @@ enum r_dir_status { unknown, nonexisting, existing };
struct r_search_path_elem
{
- const char *dirname;
-
- size_t dirnamelen;
- enum r_dir_status dirstatus;
-
- size_t machdirnamelen;
- enum r_dir_status machdirstatus;
+ /* This link is only used in the `all_dirs' member of `r_search_path'. */
+ struct r_search_path_elem *next;
/* Strings saying where the definition came from. */
const char *what;
const char *where;
- /* This link is only used in the `all_dirs' member of `r_search_path'. */
- struct r_search_path_elem *next;
+ const char *dirname;
+
+ enum r_dir_status exists[0];
+ };
+
+struct r_strlenpair
+ {
+ const char *str;
+ size_t len;
};
@@ -383,6 +385,9 @@ extern void _dl_show_auxv (void);
other. */
extern char *_dl_next_ld_env_entry (char ***position);
+/* Return an array with the names of the important hardware capabilities. */
+extern char **_dl_important_hwcap (size_t *sz);
+
__END_DECLS
#endif /* ldsodefs.h */
diff --git a/elf/link.h b/elf/link.h
index 30efa0ed25..edf1303595 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -156,6 +156,10 @@ struct link_map
/* Collected information about own RPATH directories. */
struct r_search_path_elem **l_rpath_dirs;
+ /* Directory names composed from capability names. */
+ struct r_strlenpair *l_capstrs;
+ size_t l_ncapstrs;
+
/* Collected results of relocation while profiling. */
ElfW(Addr) *l_reloc_result;