This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed, PATCH] Update PR ld/21903 tests for dejagnu 1.4.4


On Thu, 24 Aug 2017, H.J. Lu wrote:

> > Add '\' before -- to workaround dejagnu 1.4.4 which complains:
> > 
> > ERROR: bad switch "--no-define-common may not be used without -shared":...
> > 
> > 	* testsuite/ld-elf/pr21903c.d: Add '\' before --.
> > 	* testsuite/ld-elf/pr21903d.d: Likewise.
> > 	* testsuite/ld-elf/pr21903e.d: Likewise.
> 
> I checked in this patch to workaround another dejagnu 1.4.4 issue.
> 
> 
> H.J.
> ---
> Subject: [PATCH] ld: Replace regexp with string match
> 
> Replace regexp with string match to workaround dejagnu 1.4.4 which
> complains:
> 
> ERROR: bad switch "-fPIE": must be -all, -about, -indices, -inline, -expanded, -line, -linestop, -lineanchor, -nocase, -start, or --

 Hmm, isn't `--' the usual way to signify any further strings are not 
options even if they start with `-'?  It's even quoted in the error 
message.  Have you tried it instead?

 If that indeed works as documented[1], then similarly I think the earlier 
problem ought to be addressed by fixing the invocation of `regexp' used to 
handle `#error' (and any similar tags) in the test framework rather than 
applying hacks like yours to individual test cases.

> diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
> index c91a8611f3..c813a80551 100644
> --- a/ld/testsuite/ld-i386/i386.exp
> +++ b/ld/testsuite/ld-i386/i386.exp
> @@ -468,8 +468,8 @@ proc undefined_weak {cflags ldflags} {
>  	set testname "$testname ($cflags $ldflags)"
>      }
>  
> -    if { [ regexp "\-fPIE" $cflags]
> -	 && ![ regexp "\-z nodynamic-undefined-weak" $ldflags] } {
> +    if { [string match "*-fPIE*" $cflags]
> +	 && ![string match "*-z nodynamic-undefined-weak*" $ldflags] } {

 So this would then become:

    if { [ regexp -- "\-fPIE" $cflags]
	 && ![ regexp -- "\-z nodynamic-undefined-weak" $ldflags] } {

(the backslashes can also be removed as there is no special meaning 
assigned to a `\-' sequence in the regular expression syntax defined by 
TCL AFAIK, so this is equivalent to plain `-' I believe).

References:

[1] <http://tmml.sourceforge.net/doc/tcl/regexp.html>

  Maciej


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]