Don't include libbfd.h outside of bfd, part 4

Not much to see here, just renaming a function.

bfd/
	* targets.c (bfd_seach_for_target): Rename to..
	(bfd_iterate_over_targets): ..this.  Rewrite doc.
	* bfd-in2.h: Regenerate.
ld/
	* ldlang.c (open_output): Replace bfd_search_for_target with
	bfd_iterate_over_targets.  Localize vars.
This commit is contained in:
Alan Modra 2016-07-16 13:29:35 +09:30
parent 16412c3bc4
commit 4212b42d79
5 changed files with 33 additions and 23 deletions

View File

@ -1,3 +1,9 @@
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.

View File

@ -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);

View File

@ -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;

View File

@ -1,3 +1,8 @@
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.

View File

@ -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. */