[Patch] [binutils][testsuite] Allow multiple lines of "as" in testsuite.
H.J. Lu
hjl.tools@gmail.com
Fri Mar 1 16:22:00 GMT 2019
On Thu, Feb 28, 2019 at 5:46 AM Matthew Malcomson
<Matthew.Malcomson@arm.com> wrote:
>
> > On Tue, Feb 26, 2019 at 8:05 AM Nick Clifton <nickc@redhat.com> wrote:
> > >
> >
> > This breaks RHEL 7:
>
>
> > invalid command name "lmap"
>
>
> Thanks for the catch!
>
>
> My previous patch adding the ability to have multiple "as" lines in a testcase
> used a TCL feature introduced in TCL version 8.6 (the lmap procedure).
> https://www.sourceware.org/ml/binutils/2019-02/msg00097.html
>
> This doesn't work on distributions that have an older version of TCL.
> https://www.sourceware.org/ml/binutils/2019-02/msg00131.html
>
> The attached patch rewrites the sole part of the code that uses "lmap" to use
> "foreach" instead.
>
> Tested on cross compilers
> mipsel-linux-gnu mipsisa32el-linux-gnu powerpc-ibm-aix5.2.0
> aarch64-none-linux-gnu arm-none-linux-gnu aarch64-none-elf
>
> And native x86_64-none-linux-gnu, both with TCL 8.6 and 8.5.
>
> binutils/ChangeLog:
>
> 2019-02-28 Matthew Malcomson <matthew.malcomson@arm.com>
>
> * testsuite/lib/binutils-common.exp (run_dump_test): Replace a use of
> "lmap" with a "foreach" loop.
>
>
>
> ############### Attachment also inlined for ease of reply ###############
>
>
> diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
> index e01b3fb48462cbe6b5bd06ae8860a1e1a8c8e5e6..8f622ba6b4a5adcfe027ebbbdcbb6bac62829203 100644
> --- a/binutils/testsuite/lib/binutils-common.exp
> +++ b/binutils/testsuite/lib/binutils-common.exp
> @@ -829,19 +829,19 @@ proc run_dump_test { name {extra_options {}} } {
> }
> }
>
> - # Ensure there is something in $opts(as) for the lmap below.
> + # Ensure there is something in $opts(as) for the foreach loop below.
> if { [llength $opts(as)] == 0 } {
> set opts(as) [list " "]
> }
> - set as_final_flags [lmap x $opts(as) {
> + foreach x $opts(as) {
> if { [string length $x] && [string length $as_additional_flags] } {
> append x " "
> }
> append x $as_additional_flags
> regsub {\[big_or_little_endian\]} $x \
> [big_or_little_endian] x
> - expr {$x}
> - }]
> + lappend as_final_flags $x
> + }
>
> regsub {\[big_or_little_endian\]} $opts(ld) \
> [big_or_little_endian] opts(ld)
>
>
I opened:
https://sourceware.org/bugzilla/show_bug.cgi?id=24287
Would you mind mention PR binutils/24287 in your ChangeLog?
Thanks.
--
H.J.
More information about the Binutils
mailing list