summaryrefslogtreecommitdiff
path: root/libdwfl
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2006-10-10 00:25:21 +0000
committerRoland McGrath <roland@redhat.com>2006-10-10 00:25:21 +0000
commitc373d850ec9ca342f4c71d5e287c8d8bf0723cd6 (patch)
treec8f9ea814866cdfb30ac9506ccddbc8629ebe345 /libdwfl
parent1dee360aa30fecd20f403f98fd1cb9e543afcca7 (diff)
downloadelfutils-c373d850ec9ca342f4c71d5e287c8d8bf0723cd6.tar.gz
2006-10-09 Roland McGrath <roland@redhat.com>
* ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.
Diffstat (limited to 'libdwfl')
-rw-r--r--libdwfl/ChangeLog5
-rw-r--r--libdwfl/derelocate.c4
-rw-r--r--libdwfl/dwfl_module_register_names.c16
-rw-r--r--libdwfl/libdwfl.h3
4 files changed, 19 insertions, 9 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 0e3ac136..7dea9438 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-05 Roland McGrath <roland@redhat.com>
+
+ * derelocate.c (cache_sections): Use alloca instead of variable-sized
+ auto array, in function already alloca.
+
2006-08-14 Roland McGrath <roland@redhat.com>
* linux-kernel-modules.c (try_kernel_name): If the call to
diff --git a/libdwfl/derelocate.c b/libdwfl/derelocate.c
index 89a2de8b..c26be8d8 100644
--- a/libdwfl/derelocate.c
+++ b/libdwfl/derelocate.c
@@ -1,5 +1,5 @@
/* Recover relocatibility for addresses computed from debug information.
- Copyright (C) 2005 Red Hat, Inc.
+ Copyright (C) 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -124,7 +124,7 @@ cache_sections (Dwfl_Module *mod)
return -1;
}
- struct secref *sortrefs[nrefs];
+ struct secref **sortrefs = alloca (nrefs * sizeof sortrefs[0]);
for (size_t i = nrefs; i-- > 0; refs = refs->next)
sortrefs[i] = refs;
assert (refs == NULL);
diff --git a/libdwfl/dwfl_module_register_names.c b/libdwfl/dwfl_module_register_names.c
index 9004b6b4..79a874a8 100644
--- a/libdwfl/dwfl_module_register_names.c
+++ b/libdwfl/dwfl_module_register_names.c
@@ -1,5 +1,5 @@
/* Enumerate DWARF register numbers and their names.
- Copyright (C) 2005 Red Hat, Inc.
+ Copyright (C) 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -54,7 +54,8 @@ int
dwfl_module_register_names (mod, func, arg)
Dwfl_Module *mod;
int (*func) (void *, int regno, const char *setname,
- const char *prefix, const char *regname);
+ const char *prefix, const char *regname,
+ int bits, int type);
void *arg;
{
if (unlikely (mod == NULL))
@@ -70,15 +71,18 @@ dwfl_module_register_names (mod, func, arg)
}
}
- int nregs = ebl_register_name (mod->ebl, -1, NULL, 0, NULL, NULL);
+ int nregs = ebl_register_info (mod->ebl, -1, NULL, 0,
+ NULL, NULL, NULL, NULL);
int result = 0;
for (int regno = 0; regno < nregs && likely (result == 0); ++regno)
{
char name[32];
const char *setname = NULL;
const char *prefix = NULL;
- ssize_t len = ebl_register_name (mod->ebl, regno, name, sizeof name,
- &prefix, &setname);
+ int bits = -1;
+ int type = -1;
+ ssize_t len = ebl_register_info (mod->ebl, regno, name, sizeof name,
+ &prefix, &setname, &bits, &type);
if (unlikely (len < 0))
{
__libdwfl_seterrno (DWFL_E_LIBEBL);
@@ -88,7 +92,7 @@ dwfl_module_register_names (mod, func, arg)
if (likely (len > 0))
{
assert (len > 1); /* Backend should never yield "". */
- result = (*func) (arg, regno, setname, prefix, name);
+ result = (*func) (arg, regno, setname, prefix, name, bits, type);
}
}
diff --git a/libdwfl/libdwfl.h b/libdwfl/libdwfl.h
index ce85a6bb..a7e8caee 100644
--- a/libdwfl/libdwfl.h
+++ b/libdwfl/libdwfl.h
@@ -426,7 +426,8 @@ extern int dwfl_module_register_names (Dwfl_Module *mod,
int regno,
const char *setname,
const char *prefix,
- const char *regname),
+ const char *regname,
+ int bits, int type),
void *arg);