[U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function

Albert ARIBAUD
2013-10-17T09:41:39Z

Hi Masahiro,

On Thu, 17 Oct 2013 16:37:42 +0900, Masahiro Yamada
<yamada.m@jp.panasonic.com> wrote:

> Commit 27af930e changed the boards.cfg format
> and it changed boards_by_field() function incorrectly.
> For tegra cpus it returned Board Name field,
> not Target field.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
> ---
>
> Commit 27af930e adjusted this part like follows:
>
>
> -v field="$1" \
> -v select="$2" \
> -F "$FS" \
> - '($1 !~ /^#/ && $field == select) { print $1 }' \
> + '($1 !~ /^#/ && $field == select) { print $7 }' \
> boards.cfg
> }
> boards_by_arch() { boards_by_field 2 "$@" ; }
> boards_by_cpu() { boards_by_field 3 "$@" "[: \t]+" ; }
> -boards_by_soc() { boards_by_field 6 "$@" ; }
> +boards_by_soc() { boards_by_field 4 "$@" ; }
>
>
> TAB is also treated as a field speparator, so
> we should have taken the 8th field for Tegra
> whereas the 7th field for the other cpus.

(As per our discussion, 'tab' here should be 'colon')

Not sure I am getting the logic here. Colon is *not* a field separator,
precisely because it is not present on all lines; it is a sub-field
separator. At this low level, the only field separator should be spaces.

Therefore, I would prefer boards_by_field() and board_by_cpu() to *not*
handle colons and thus consider the CPU field as a whole even when it
consists in a cpu:splcpu pair.

Splitting that pair and using either cpu or splcpu depending on
whether building SPL or not should only happen when the CPU field is
actually used, not fetched.

Can you try and provide a v2 patch (set) along these lines?

Amicalement,
--
Albert.