From d521f563333718f9dad11ab206d81989c9a8c1e8 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Fri, 8 Jan 2010 22:59:47 +0000 Subject: [PATCH] gdb/testsuite/ Workaround PR binutils/10802. * lib/gdb.exp (gdb_gnu_strip_debug): Preserve the file attributes (twice). --- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/lib/gdb.exp | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 9c36efb..bf2c0ff 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-01-08 Jan Kratochvil + + Workaround PR binutils/10802. + * lib/gdb.exp (gdb_gnu_strip_debug): Preserve the file attributes + (twice). + 2010-01-08 Daniel Jacobowitz * gdb.cp/gdb2495.exp: Skip if gdb,nosignals. diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index fcaaf3c..2604b9f 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -2845,6 +2845,11 @@ proc gdb_gnu_strip_debug { dest args } { return 1 } + # Workaround PR binutils/10802: + # Preserve the 'x' bit also for PIEs (Position Independent Executables). + set perm [file attributes ${dest} -permissions] + file attributes ${stripped_file} -permissions $perm + # Get rid of everything but the debug info, and store result in debug_file # This will be in the .debug subdirectory, see above. set result [catch "exec $strip_to_file_program --only-keep-debug ${dest} -o ${debug_file}" output] @@ -2881,7 +2886,12 @@ proc gdb_gnu_strip_debug { dest args } { return 1 } - return 0 + # Workaround PR binutils/10802: + # Preserve the 'x' bit also for PIEs (Position Independent Executables). + set perm [file attributes ${stripped_file} -permissions] + file attributes ${dest} -permissions $perm + + return 0 } # Test the output of GDB_COMMAND matches the pattern obtained -- 2.7.4