* [U-Boot] [PATCH 0/3] Fix bugs of MAKEALL
@ 2013-10-17 7:37 Masahiro Yamada
2013-10-17 7:37 ` [U-Boot] [PATCH 1/3] MAKEALL: fix awk warning message Masahiro Yamada
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Masahiro Yamada @ 2013-10-17 7:37 UTC (permalink / raw)
To: u-boot
Commit 27af930e9a5c91365ca639ada580b338eabe4989
changed the boards.cfg format and introduced
some bugs to MAKEALL.
This series fixes them.
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Masahiro Yamada (3):
MAKEALL: fix awk warning message
MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH>
MAKEALL: fix boards_by_cpu function
MAKEALL | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--
1.8.1.2
^ permalink raw reply [flat|nested] 15+ messages in thread* [U-Boot] [PATCH 1/3] MAKEALL: fix awk warning message 2013-10-17 7:37 [U-Boot] [PATCH 0/3] Fix bugs of MAKEALL Masahiro Yamada @ 2013-10-17 7:37 ` Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function Masahiro Yamada 2 siblings, 0 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 7:37 UTC (permalink / raw) To: u-boot If you do `./MAKEALL -M ` or `./MAKEALL -m` GNU awk would display warnings like follows: awk: warning: escape sequence `\ ' treated as plain ` ' In the first place, we do not explicitly set the field separator. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> --- See line 163 of ./MAKEALL SELECTED=$(awk '('"$FILTER"') { print $7 }' boards.cfg) We already use awk without specifiying FS. MAKEALL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MAKEALL b/MAKEALL index 93c0b3f..0d7893b 100755 --- a/MAKEALL +++ b/MAKEALL @@ -518,7 +518,7 @@ get_target_location() { local vendor="" # Automatic mode - local line=`awk -F '\ +' '\$7 == "'"$target"'" { print \$0 }' boards.cfg` + local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg` if [ -z "${line}" ] ; then echo "" ; return ; fi set ${line} @@ -556,7 +556,7 @@ get_target_location() { get_target_maintainers() { local name=`echo $1 | cut -d : -f 3` - local line=`awk -F '\ +' '\$7 == "'"$target"'" { print \$0 }' boards.cfg` + local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg` if [ -z "${line}" ]; then echo "" return ; -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> 2013-10-17 7:37 [U-Boot] [PATCH 0/3] Fix bugs of MAKEALL Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 1/3] MAKEALL: fix awk warning message Masahiro Yamada @ 2013-10-17 7:37 ` Masahiro Yamada 2013-10-17 8:33 ` Albert ARIBAUD 2013-10-17 7:37 ` [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function Masahiro Yamada 2 siblings, 1 reply; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 7:37 UTC (permalink / raw) To: u-boot Commit 27af930e changed the boards.cfg format but missed to change get_target_arch() fuction. This commit adjusts it for CROSS_COMPILE_<ARCH> to work correctly. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> --- MAKEALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAKEALL b/MAKEALL index 0d7893b..4f685e1 100755 --- a/MAKEALL +++ b/MAKEALL @@ -571,7 +571,7 @@ get_target_arch() { local target=$1 # Automatic mode - local line=`egrep -i "^[[:space:]]*${target}[[:space:]]" boards.cfg` + local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg` if [ -z "${line}" ] ; then echo "" ; return ; fi -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> 2013-10-17 7:37 ` [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> Masahiro Yamada @ 2013-10-17 8:33 ` Albert ARIBAUD 2013-10-17 8:48 ` Masahiro Yamada 0 siblings, 1 reply; 15+ messages in thread From: Albert ARIBAUD @ 2013-10-17 8:33 UTC (permalink / raw) To: u-boot Hi Masahiro, On Thu, 17 Oct 2013 16:37:41 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > Commit 27af930e changed the boards.cfg format but > missed to change get_target_arch() fuction. > This commit adjusts it for CROSS_COMPILE_<ARCH> > to work correctly. > > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> > --- > MAKEALL | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/MAKEALL b/MAKEALL > index 0d7893b..4f685e1 100755 > --- a/MAKEALL > +++ b/MAKEALL > @@ -571,7 +571,7 @@ get_target_arch() { > local target=$1 > > # Automatic mode > - local line=`egrep -i "^[[:space:]]*${target}[[:space:]]" boards.cfg` > + local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg` > > if [ -z "${line}" ] ; then echo "" ; return ; fi > What issue does this change fix? Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> 2013-10-17 8:33 ` Albert ARIBAUD @ 2013-10-17 8:48 ` Masahiro Yamada 2013-10-17 9:27 ` Albert ARIBAUD 0 siblings, 1 reply; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 8:48 UTC (permalink / raw) To: u-boot Hello Albert. > What issue does this change fix? MAKEALL supports the environment variable CROSS_COMPILE_<ARCH>. MAKEALL --help says like follows: CROSS_COMPILE_<ARCH> cross-compiler toolchain prefix for architecture "ARCH". Substitute "ARCH" for any This feature is useful when you want to build various architectures at a time. For example, you can use it like this: CROSS_COMPILE_ARM=arm-linux-gnueabi- \ CROSS_COMPILE_POWERPC=powerpc-linux-gnu- \ CROSS_COMPILE_SH=sh4-linux- \ ./MAKEALL -a arm -a powerpc -a sh Commit 27af930e broke this feature, so I want to fix this. Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> 2013-10-17 8:48 ` Masahiro Yamada @ 2013-10-17 9:27 ` Albert ARIBAUD 2013-10-17 10:09 ` Masahiro Yamada 0 siblings, 1 reply; 15+ messages in thread From: Albert ARIBAUD @ 2013-10-17 9:27 UTC (permalink / raw) To: u-boot Hi Masahiro, On Thu, 17 Oct 2013 17:48:50 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > Hello Albert. > > > > > What issue does this change fix? > > > MAKEALL supports the environment variable CROSS_COMPILE_<ARCH>. > Commit 27af930e broke this feature, > so I want to fix this. Sorry, I have been unclear. How exactly does the commit break this feature? What worked before it which does not work after? > Best Regards > Masahiro Yamada Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> 2013-10-17 9:27 ` Albert ARIBAUD @ 2013-10-17 10:09 ` Masahiro Yamada 0 siblings, 0 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 10:09 UTC (permalink / raw) To: u-boot Hello Albert > > Commit 27af930e broke this feature, > > so I want to fix this. > > Sorry, I have been unclear. How exactly does the commit break this > feature? What worked before it which does not work after? A quite simple test. $ git checkout 27af930e^ $ CROSS_COMPILE_ARM=arm-linux-gnueabi- ./MAKEALL -a arm Configuring for integratorcp_cm1136 - Board: integratorcp, Options: CM1136 text data bss dec hex filename 160402 6164 16156 182722 2c9c2 ./u-boot Configuring for imx31_phycore board... text data bss dec hex filename 144449 5162 21016 170627 29a83 ./u-boot ... $ git checkout 27af930e $ CROSS_COMPILE_ARM=arm-linux-gnueabi- ./MAKEALL -a arm Configuring for integratorcp_cm1136 - Board: integratorcp, Options: CM1136 make: *** [lib/asm-offsets.s] Error 127 size: './u-boot': No such file /bin/bash: arm-linux-gcc: command not found /bin/bash: arm-linux-gcc: command not found dirname: missing operand Try 'dirname --help' for more information. /bin/bash: line 3: arm-linux-gcc: command not found /bin/bash: line 3: arm-linux-gcc: command not found /bin/bash: arm-linux-gcc: command not found /bin/bash: arm-linux-gcc: command not found ... Note: I am using arm-linux-gnueabi-gcc, not arm-linux-gcc Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 7:37 [U-Boot] [PATCH 0/3] Fix bugs of MAKEALL Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 1/3] MAKEALL: fix awk warning message Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> Masahiro Yamada @ 2013-10-17 7:37 ` Masahiro Yamada 2013-10-17 8:52 ` Albert ARIBAUD 2013-10-17 9:41 ` Albert ARIBAUD 2 siblings, 2 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 7:37 UTC (permalink / raw) To: u-boot 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. Fortunately, Board Name field and Target filed are the same for all Tegra LSIs. But we should not expect it. MAKEALL | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MAKEALL b/MAKEALL index 4f685e1..485721e 100755 --- a/MAKEALL +++ b/MAKEALL @@ -226,17 +226,17 @@ RC=0 # Helper funcs for parsing boards.cfg boards_by_field() { - FS="[ \t]+" - [ -n "$3" ] && FS="$3" awk \ -v field="$1" \ -v select="$2" \ - -F "$FS" \ - '($1 !~ /^#/ && $field == select) { print $7 }' \ + -v cut="$3" \ + '{sub(cut,"",$field)} + ($1 !~ /^#/ && $field == select) { print $7 }' \ boards.cfg } + boards_by_arch() { boards_by_field 2 "$@" ; } -boards_by_cpu() { boards_by_field 3 "$@" "[: \t]+" ; } +boards_by_cpu() { boards_by_field 3 "$@" ":.*" ; } boards_by_soc() { boards_by_field 4 "$@" ; } ######################################################################### -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 7:37 ` [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function Masahiro Yamada @ 2013-10-17 8:52 ` Albert ARIBAUD 2013-10-17 8:58 ` Masahiro Yamada 2013-10-17 9:41 ` Albert ARIBAUD 1 sibling, 1 reply; 15+ messages in thread From: Albert ARIBAUD @ 2013-10-17 8:52 UTC (permalink / raw) To: u-boot 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. > > Fortunately, Board Name field and Target filed are the same > for all Tegra LSIs. > But we should not expect it. Not sure I am following here, as the commit you mention does not change how tabs are processed. Besides, the system should *not* be sensitive to tabs. If it is, this must be fixed and tabs removed. Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 8:52 ` Albert ARIBAUD @ 2013-10-17 8:58 ` Masahiro Yamada 0 siblings, 0 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 8:58 UTC (permalink / raw) To: u-boot Hello Albert. > > 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. > > > > Fortunately, Board Name field and Target filed are the same > > for all Tegra LSIs. > > But we should not expect it. > > Not sure I am following here, as the commit you mention does not > change how tabs are processed. > > Besides, the system should *not* be sensitive to tabs. If it is, this > must be fixed and tabs removed. Sorry, my mistake. s/TAB/colon/ The comment should be: Colon 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. Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 7:37 ` [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function Masahiro Yamada 2013-10-17 8:52 ` Albert ARIBAUD @ 2013-10-17 9:41 ` Albert ARIBAUD 2013-10-17 10:32 ` Masahiro Yamada 1 sibling, 1 reply; 15+ messages in thread From: Albert ARIBAUD @ 2013-10-17 9:41 UTC (permalink / raw) To: u-boot 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. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 9:41 ` Albert ARIBAUD @ 2013-10-17 10:32 ` Masahiro Yamada 2013-10-17 11:41 ` Albert ARIBAUD 0 siblings, 1 reply; 15+ messages in thread From: Masahiro Yamada @ 2013-10-17 10:32 UTC (permalink / raw) To: u-boot Hello Albert > > -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') Yes, I answerd so in my previous reply. > 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. Yes. I think I already did this in my v1 patch. + -v cut="$3" \ + '{sub(cut,"",$field)} These lines split the pair into cpu and spl_cpu. I simply cut down spl_cpu because it is the same behaviour as before Commit 27af930e. > 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? Sorry, I cannot understand what you mean. Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 10:32 ` Masahiro Yamada @ 2013-10-17 11:41 ` Albert ARIBAUD 2013-10-18 6:37 ` Masahiro Yamada 2013-10-21 10:09 ` Masahiro Yamada 0 siblings, 2 replies; 15+ messages in thread From: Albert ARIBAUD @ 2013-10-17 11:41 UTC (permalink / raw) To: u-boot Hi Masahiro, On Thu, 17 Oct 2013 19:32:31 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > Hello Albert > > > > > > > -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') > > Yes, I answerd so in my previous reply. > > > > 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. > > Yes. I think I already did this in my v1 patch. > > > + -v cut="$3" \ > + '{sub(cut,"",$field)} > > These lines split the pair into cpu and spl_cpu. > I simply cut down spl_cpu because it is the same behaviour > as before Commit 27af930e. > > > > > 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? > > > Sorry, I cannot understand what you mean. I do understand that your patch wants to restore the behavior prior to 27af930e. My problem is, while things worked prior to 27af930e, they were not done the right way, because boards_by_<field>() functions should not depend on the fact that a field contains a colon or not; they should only depend on the fact that fields are space-separated. IOW, target integratorcp_cm1136 on line 46 in boards.cfg has 9 fields, and its CPU field is "arm1136"; and line 348, dalmore, *also* has 9 fields even though its CPU field is "armv7:arm720t". The way the code is written now, board_by_field() has to do the job of board_by_cpu() and has to know the CPU field has colon-separated subfields. What should be done is, board_by_field should not even worry about colons at all, and it is board_by_cpu() which should know about CPU dubfields and treat them properly. Is this clearer? > Best Regards > Masahiro Yamada > Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 11:41 ` Albert ARIBAUD @ 2013-10-18 6:37 ` Masahiro Yamada 2013-10-21 10:09 ` Masahiro Yamada 1 sibling, 0 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-18 6:37 UTC (permalink / raw) To: u-boot Hello Albert. > The way the code is written now, board_by_field() has to do the job of > board_by_cpu() and has to know the CPU field has colon-separated > subfields. What should be done is, board_by_field should not even worry > about colons at all, and it is board_by_cpu() which should know about > CPU dubfields and treat them properly. > > Is this clearer? OK. It's clear now. I re-wrote like follows: boards_by_field() { field=$1 regexp=$2 awk '($1 !~ /^#/ && $'"$field"' ~ /^'"$regexp"'$/) { print $7 }' \ boards.cfg } boards_by_arch() { boards_by_field 2 "$@" ; } boards_by_cpu() { boards_by_field 3 "$@" ; boards_by_field 3 "$@:.*" ; } boards_by_soc() { boards_by_field 4 "$@" ; } Is this good enough? BTW, I think these function names are misleading. We want to get the 7th field (Target), not 6th field (Board Name) of boards.cfg by these functions. So I think we should rename s/boards_by_field/targets_by_field/ s/boards_by_arch/targets_by_arch/ s/boards_by_cpu/targets_by_cpu/ s/boards_by_soc/targets_by_soc/ Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function 2013-10-17 11:41 ` Albert ARIBAUD 2013-10-18 6:37 ` Masahiro Yamada @ 2013-10-21 10:09 ` Masahiro Yamada 1 sibling, 0 replies; 15+ messages in thread From: Masahiro Yamada @ 2013-10-21 10:09 UTC (permalink / raw) To: u-boot Hello Albert. > > The way the code is written now, board_by_field() has to do the job of > board_by_cpu() and has to know the CPU field has colon-separated > subfields. What should be done is, board_by_field should not even worry > about colons at all, and it is board_by_cpu() which should know about > CPU dubfields and treat them properly. > > Is this clearer? > I posted v2. Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2013-10-21 10:09 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-17 7:37 [U-Boot] [PATCH 0/3] Fix bugs of MAKEALL Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 1/3] MAKEALL: fix awk warning message Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 2/3] MAKEALL: fix a bug to use CROSS_COMPILE_<ARCH> Masahiro Yamada 2013-10-17 8:33 ` Albert ARIBAUD 2013-10-17 8:48 ` Masahiro Yamada 2013-10-17 9:27 ` Albert ARIBAUD 2013-10-17 10:09 ` Masahiro Yamada 2013-10-17 7:37 ` [U-Boot] [PATCH 3/3] MAKEALL: fix boards_by_field function Masahiro Yamada 2013-10-17 8:52 ` Albert ARIBAUD 2013-10-17 8:58 ` Masahiro Yamada 2013-10-17 9:41 ` Albert ARIBAUD 2013-10-17 10:32 ` Masahiro Yamada 2013-10-17 11:41 ` Albert ARIBAUD 2013-10-18 6:37 ` Masahiro Yamada 2013-10-21 10:09 ` Masahiro Yamada
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox