1 # This testcase is part of GDB
, the GNU debugger.
3 # Copyright
2010-2022 Free Software Foundation
, Inc.
5 # This
program is free software
; you can redistribute it and
/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation
; either version
3 of the License
, or
8 #
(at your option
) any later version.
10 # This
program is distributed in the hope that it will be useful
,
11 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License
for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
18 # Test inappropriate offseting of multiple sections with the same
name.
19 # When kept in object file
(before final executable link
) it still works.
20 # When separate debug
info file is not used it still works.
21 # When the ELF symbol table is kept in the main binary it still works.
22 # Used .S file as in .c file we would need __attriute__
((section
)) which is
25 # This test can only be run
on targets which support ELF and use gas.
26 #
For now pick a sampling of likely targets.
27 if {![istarget
*-*-linux
*]
28 && ![istarget
*-*-gnu
*]
29 && ![istarget
*-*-elf
*]
30 && ![istarget arm
*-*-eabi
*]
31 && ![istarget powerpc
-*-eabi
*]} {
36 set srcmainfile start.c
37 set executable $
{testfile
}
39 if {[build_executable $
{testfile
}.exp $executable
[list $
{srcfile
} $
{srcmainfile
}] {}] == -1} {
43 set test
"rename section"
44 set objcopy_program
[gdb_find_objcopy
]
45 set result
[catch
"exec $objcopy_program --rename-section sect2=sect1 $binfile" output]
46 verbose
"result is $result"
47 verbose
"output is $output"
55 if {[gdb_gnu_strip_debug $binfile
] != 0} {
61 # gdb_gnu_strip_debug uses only
--strip-debug and keeps the ELF symbol table
64 set strip_program
[transform
strip]
65 set result
[catch
"exec $strip_program $binfile" output]
66 verbose
"result is $result"
67 verbose
"output is $output"
74 clean_restart $executable
76 gdb_test
"p/d *(const char *) &var1" " = 1" "var1 after strip"
77 gdb_test
"p/d *(const char *) &var2" " = 2" "var2 after strip"