From 8b5b2228f8261121aeb52ca57af40318a65f1e9d Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Fri, 3 Aug 2012 22:28:41 +0000 Subject: [PATCH] * lib/ld-lib.exp (at_least_gcc_version): Accept more version number formats; avoid throwing exceptions in any case. --- ld/testsuite/ChangeLog | 5 +++++ ld/testsuite/lib/ld-lib.exp | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 3811b14eb23..5a63a948a9a 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-08-03 Maciej W. Rozycki + + * lib/ld-lib.exp (at_least_gcc_version): Accept more version + number formats; avoid throwing exceptions in any case. + 2012-08-03 Maciej W. Rozycki * ld-mips-elf/mode-change-error-1.d: Update the error message. diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index a481ce72199..de0f7add89a 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -41,14 +41,19 @@ proc at_least_gcc_version { major minor } { set state [remote_exec host $CC --version] set tmp "[lindex $state 1]\n" # Look for (eg) 4.6.1 in the version output. - regexp " .* (\[1-9\])\\.(\[0-9\])\\.\[0-9\]* .*" "$tmp" fred maj min + set ver_re "\[^\\.0-9\]+(\[1-9\]\[0-9\]*)\\.(\[0-9\]+)(?:\\.\[0-9\]+)?" + regexp $ver_re $tmp fred maj min verbose "gcc version: $tmp" + if { ![info exists maj] || ![info exists min] } then { + perror "can't decipher gcc version number, fix the framework!" + return 0 + } verbose "major gcc version is $maj, want at least $major" if { $maj == $major } then { verbose "minor gcc version is $min, want at least $minor" - return [expr $min >= $minor ] + return [expr $min >= $minor] } else { - return [expr $maj > $major ] + return [expr $maj > $major] } } -- 2.30.2