bfd ASSOCIATED_VECS

Tidy code setting ASSOCIATED_VECS, which could be fooled by unusual
configure options such as --enable-targets="srec,all".

	* targets.c (_bfd_associated_vector): Remove comma after
	ASSOCIATED_VECS.
	* configure.ac: Set assocvecs from targ_defvec and
	targ_selvecs when handling the target, rather than assuming
	those variables are still set for the target when handling
	--enable-targets=all.  Move code making assocvecs unique
	later.  Do so in a way that need not run sed afterwards, and
	leave a trailing comma.
	* configure: Regenerate.
This commit is contained in:
Alan Modra
2025-12-20 14:12:31 +10:30
parent 12b471a000
commit f4e835a40c
3 changed files with 22 additions and 33 deletions

24
bfd/configure vendored
View File

@@ -15785,11 +15785,11 @@ for targ in $target $canon_targets
do
if test $targ = all; then
all_targets=true
assocvecs="$assocvecs $targ_defvec $targ_selvecs"
elif test $targ != plugin; then
. $srcdir/config.bfd
if test $targ = $target; then
defvec=$targ_defvec
assocvecs="$targ_defvec $targ_selvecs"
fi
selvecs="$selvecs $targ_defvec $targ_selvecs"
selarchs="$selarchs $targ_archs"
@@ -15815,18 +15815,6 @@ for i in $selvecs ; do
done
selvecs="$f"
# uniq the associated vectors in all the configured targets.
f=""
for i in $assocvecs ; do
case " $f " in
*" $i "*) ;;
*) f="$f $i" ;;
esac
done
assocvecs="$f"
# uniq the architectures in all the configured targets.
f=""
for i in $selarchs ; do
@@ -16180,8 +16168,14 @@ if test x${all_targets} = xtrue ; then
selvecs=
havevecs=-DHAVE_all_vecs
selarchs=
test -n "$assocvecs" &&
assocvecs=`echo $assocvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
f=
for i in $assocvecs ; do
case "&${f}," in
*"&${i},"*) ;;
*) f="${f}&${i}," ;;
esac
done
assocvecs=$f
else # all_targets is true
# Only set these if they will be nonempty, for the clever echo.
havevecs=

View File

@@ -326,11 +326,11 @@ for targ in $target $canon_targets
do
if test $targ = all; then
all_targets=true
assocvecs="$assocvecs $targ_defvec $targ_selvecs"
elif test $targ != plugin; then
. $srcdir/config.bfd
if test $targ = $target; then
defvec=$targ_defvec
assocvecs="$targ_defvec $targ_selvecs"
fi
selvecs="$selvecs $targ_defvec $targ_selvecs"
selarchs="$selarchs $targ_archs"
@@ -356,18 +356,6 @@ for i in $selvecs ; do
done
selvecs="$f"
# uniq the associated vectors in all the configured targets.
f=""
for i in $assocvecs ; do
case " $f " in
*" $i "*) ;;
*) f="$f $i" ;;
esac
done
assocvecs="$f"
# uniq the architectures in all the configured targets.
f=""
for i in $selarchs ; do
@@ -721,8 +709,14 @@ if test x${all_targets} = xtrue ; then
selvecs=
havevecs=-DHAVE_all_vecs
selarchs=
test -n "$assocvecs" &&
assocvecs=`echo $assocvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
f=
for i in $assocvecs ; do
case "&${f}," in
*"&${i},"*) ;;
*) f="${f}&${i}," ;;
esac
done
assocvecs=$f
else # all_targets is true
# Only set these if they will be nonempty, for the clever echo.
havevecs=

View File

@@ -1429,12 +1429,13 @@ const bfd_target *bfd_default_vector[] = {
NULL
};
/* bfd_associated_vector[] contains the associated target vectors used
to reduce the ambiguity in bfd_check_format_matches. */
/* bfd_associated_vector[] contains the main target vectors when
configuring with --enable-targets=all, to match those
preferentially over others that might match. */
static const bfd_target *const _bfd_associated_vector[] = {
#ifdef ASSOCIATED_VECS
ASSOCIATED_VECS,
ASSOCIATED_VECS
#endif
NULL
};