aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/bfd-in2.h6
-rw-r--r--bfd/targets.c27
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldlang.c12
5 files changed, 33 insertions, 23 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ba678b6..bf79618 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
2016-07-16 Alan Modra <amodra@gmail.com>
+ * targets.c (bfd_seach_for_target): Rename to..
+ (bfd_iterate_over_targets): ..this. Rewrite doc.
+ * bfd-in2.h: Regenerate.
+
+2016-07-16 Alan Modra <amodra@gmail.com>
+
* archures.c (bfd_default_set_arch_mach): Make available in bfd.h.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 8b12547..f9f0e26 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7555,9 +7555,9 @@ const bfd_target *bfd_get_target_info (const char *target_name,
const char **def_target_arch);
const char ** bfd_target_list (void);
-const bfd_target *bfd_search_for_target
- (int (*search_func) (const bfd_target *, void *),
- void *);
+const bfd_target *bfd_iterate_over_targets
+ (int (*func) (const bfd_target *, void *),
+ void *data);
const char *bfd_flavour_name (enum bfd_flavour flavour);
diff --git a/bfd/targets.c b/bfd/targets.c
index a9edd4c..19d442a 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -1815,29 +1815,28 @@ bfd_target_list (void)
/*
FUNCTION
- bfd_seach_for_target
+ bfd_iterate_over_targets
SYNOPSIS
- const bfd_target *bfd_search_for_target
- (int (*search_func) (const bfd_target *, void *),
- void *);
+ const bfd_target *bfd_iterate_over_targets
+ (int (*func) (const bfd_target *, void *),
+ void *data);
DESCRIPTION
- Return a pointer to the first transfer vector in the list of
- transfer vectors maintained by BFD that produces a non-zero
- result when passed to the function @var{search_func}. The
- parameter @var{data} is passed, unexamined, to the search
- function.
+ Call @var{func} for each target in the list of BFD target
+ vectors, passing @var{data} to @var{func}. Stop iterating if
+ @var{func} returns a non-zero result, and return that target
+ vector. Return NULL if @var{func} always returns zero.
*/
const bfd_target *
-bfd_search_for_target (int (*search_func) (const bfd_target *, void *),
- void *data)
+bfd_iterate_over_targets (int (*func) (const bfd_target *, void *),
+ void *data)
{
- const bfd_target * const *target;
+ const bfd_target *const *target;
- for (target = bfd_target_vector; *target != NULL; target ++)
- if (search_func (*target, data))
+ for (target = bfd_target_vector; *target != NULL; ++target)
+ if (func (*target, data))
return *target;
return NULL;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b7be656..e4026ec 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,10 @@
2016-07-16 Alan Modra <amodra@gmail.com>
+ * ldlang.c (open_output): Replace bfd_search_for_target with
+ bfd_iterate_over_targets. Localize vars.
+
+2016-07-16 Alan Modra <amodra@gmail.com>
+
* ldlang.c: Don't include libbfd.h.
* emultempl/nds32elf.em: Likewise.
* emultempl/ppc64elf.em: Likewise.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 82d5582..aee8720 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3113,15 +3113,15 @@ open_output (const char *name)
line? */
if (command_line.endian != ENDIAN_UNSET)
{
- const bfd_target *target;
- enum bfd_endian desired_endian;
-
/* Get the chosen target. */
- target = bfd_search_for_target (get_target, (void *) output_target);
+ const bfd_target *target
+ = bfd_iterate_over_targets (get_target, (void *) output_target);
/* If the target is not supported, we cannot do anything. */
if (target != NULL)
{
+ enum bfd_endian desired_endian;
+
if (command_line.endian == ENDIAN_BIG)
desired_endian = BFD_ENDIAN_BIG;
else
@@ -3143,8 +3143,8 @@ open_output (const char *name)
/* Try to find a target as similar as possible to
the default target, but which has the desired
endian characteristic. */
- bfd_search_for_target (closest_target_match,
- (void *) target);
+ bfd_iterate_over_targets (closest_target_match,
+ (void *) target);
/* Oh dear - we could not find any targets that
satisfy our requirements. */