Fix handling of BUILD_SUFFIX in remote-gdb script
[openwrt/openwrt.git] / scripts / remote-gdb
index 98ec768f4bdc4a55d19818622556a47dbf755902..d8e2336d0e98aee171fdff1ccffd4b71141633b4 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 
 use strict;
 use warnings;
@@ -14,9 +14,9 @@ if( opendir SD, "$Bin/../staging_dir" )
 {
        my ( $tid, $arch, $libc, @arches );
 
-       if( $ARGV[1] =~ m!\btarget-(.+?)_(([^_]+libc|musl)[^/]+)\b!i )
+       if( $ARGV[1] =~ m!\btarget-(.+?)_([^/_]+libc|musl)_?([^/]*).*\b!i )
        {
-               print("Using target $1 ($2)\n");
+               print("Using target $1 ($2, $3)\n");
                ($arch, $libc) = ($1, $2);
        }
        else
@@ -26,10 +26,10 @@ if( opendir SD, "$Bin/../staging_dir" )
 
                while( defined( my $e = readdir SD ) )
                {
-                       if( -d "$Bin/../staging_dir/$e" && $e =~ /^target-(.+?)_(([^_]+.libc|musl)+)/i )
+                       if( -d "$Bin/../staging_dir/$e" && $e =~ /^target-(.+?)_([^\/_]+libc|musl)_?([^\/]*).*/i )
                        {
                                push @arches, [ $1, $2 ];
-                               printf(" %2d) %s (%s)\n", @arches + 0, $1, $2);
+                               printf(" %2d) %s (%s %s)\n", @arches + 0, $1, $2, $3);
                        }
                }
 
@@ -58,10 +58,10 @@ if( opendir SD, "$Bin/../staging_dir" )
                my ( $fh, $fp ) = tempfile();
 
                # Find sysroot
-               my ($sysroot) = glob("$Bin/../staging_dir/target-${arch}_${libc}/root-*/");
+               my ($sysroot) = glob("$Bin/../staging_dir/target-${arch}_${libc}*/root-*/");
 
                print $fh "set sysroot $sysroot\n" if $sysroot;
-               my $cmd = "target remote";
+               my $cmd = "target extended-remote";
                -f $ARGV[0] and $cmd = "core-file";
                print $fh "$cmd $ARGV[0]\n";