diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2019-09-20 23:06:57 +0200 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2019-09-20 23:06:57 +0200 |
commit | abf516c6931af1683d1e51203de1ca01467f9f85 (patch) | |
tree | f2d4e09a3840ac22f5af5584348fbdf97e0c8aca /gdb/testsuite/lib/cell.exp | |
parent | 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a (diff) | |
download | gdb-abf516c6931af1683d1e51203de1ca01467f9f85.zip gdb-abf516c6931af1683d1e51203de1ca01467f9f85.tar.gz gdb-abf516c6931af1683d1e51203de1ca01467f9f85.tar.bz2 |
Remove Cell Broadband Engine debugging support
This patch implements removal of Cell/B.E. support, including
- Support for the spu-*-* target
- Support for native stand-alone SPU debugging
- Support for integrated debugging of combined PPU/SPU applications
- Remote debugging (gdbserver) support for all the above.
The patch also removes the TARGET_OBJECT_SPU target object type,
as this is available only on Cell/B.E. targets, including
- Native Linux support
- Core file support (including core file generation)
- Remote target support, including removal of the qXfer:spu:read
and qXfer:spu:write remote protocal packets and associated
support in gdbserver.
gdb/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* NEWS: Mention that Cell/B.E. debugging support was removed.
* MAINTAINERS: Remove spu target.
* config/djgpp/fnchange.lst: Remove entries for removed files.
* Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o,
spu-multiarch.o, and spu-tdep.o.
(HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h.
(ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c,
spu-multiarch.c, and spu-tdep.c.
* spu-linux-nat.c: Remove file.
* spu-multiarch.c: Remove file.
* spu-tdep.c: Remove file.
* spu-tdep.h: Remove file.
* solib-spu.c: Remove file.
* solib-spu.h: Remove file.
* configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support.
* configure.nat (spu-linux): Remove.
* configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and
solib-multiarch.o from gdb_target_obs.
(spu*-*-*): Remove.
* arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell"
feature flag.
(ppc_linux_no_features): Update.
* arch/ppc-linux-common.c (ppc_linux_match_description): Remove
Cell/B.E. support.
* arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration.
(tdesc_powerpc_cell64l): Likewise.
* nat/ppc-linux.h (PPC_FEATURE_CELL): Remove.
* ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove
Cell/B.E. support.
* ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h".
Do not include "features/rs6000/powerpc-cell32l.c" or
"features/rs6000/powerpc-cell64l.c".
(ppc_linux_spu_section): Remove.
(ppc_linux_core_read_description): Remove Cell/B.E. support.
(spe_context_objfile, spe_context_lm_addr, spe_context_offset,
spe_context_cache_ptid, spe_context_cache_ptid): Remove.
(ppc_linux_spe_context_lookup): Remove.
(ppc_linux_spe_context_inferior_created): Remove.
(ppc_linux_spe_context_solib_loaded): Remove.
(ppc_linux_spe_context_solib_unloaded): Remove.
(ppc_linux_spe_context): Remove.
(struct ppu2spu_cache): Remove.
(ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove.
(struct ppu2spu_data): Remove.
(ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache,
ppu2spu_unwind): Remove.
(ppc_linux_init_abi): Remove Cell/B.E. support.
* rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support.
* features/Makefile (rs6000/powerpc-cell32l-expedite): Remove.
(rs6000/powerpc-cell64l-expedite): Likewise
(WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
(XMLTOC): Remove rs6000/powerpc-cell32l.xml and
rs6000/powerpc-cell64l.xml.
* features/rs6000/powerpc-cell32l.xml: Remove.
* features/rs6000/powerpc-cell64l.xml: Likewise.
* features/rs6000/powerpc-cell32l.c: Remove generated file.
* features/rs6000/powerpc-cell64l.c: Likewise.
* regformats/rs6000/powerpc-cell32l.dat: Remove generated file.
* regformats/rs6000/powerpc-cell64l.dat: Likewise.
* regformats/reg-spu.dat: Remove.
* target.h (enum target_object): Remove TARGET_OBJECT_SPU.
* corelow.c (struct spuid_list): Remove.
(add_to_spuid_list): Remove.
(core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove.
(remote_protocol_features): Remove associated entries.
(_initialize_remote): No longer initialize them.
(remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* linux-nat.c (SPUFS_MAGIC): Remove.
(linux_proc_xfer_spu): Remove.
(spu_enumerate_spu_ids): Remove.
(linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* linux-tdep.c (-linux_spu_make_corefile_notes): Remove.
(linux_make_corefile_notes): No longer call it.
* regcache.c (cooked_read_test): Remove bfd_arch_spu special case.
(cooked_write_test): Likewise.
gdb/doc/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* doc/gdb.texinfo (Remote Configuration): Remove documentation for
qXfer:spu:read and qXfer:spu:write.
(General Query Packets): Likewise.
(Cell Broadband Engine SPU architecture): Remove subsection.
gdb/gdbserver/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
and powerpc-cell64l-ipa.o.
(powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o
from srv_regobj. Remove rs6000/powerpc-cell32l.xml and
rs6000/powerpc-cell64l.xml from srv_xmlfiles.
(spu*-*-*): Remove.
* spu-low.c: Remove file.
* linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove.
(parse_spufs_run): Remove.
(ppc_get_pc): Remove Cell/B.E. support.
(ppc_set_pc): Likewise.
(ppc_breakpoint_at): Likewise.
(ppc_arch_setup): Likewise.
(ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or
tdesc_powerpc_cell32l.
(initialize_low_arch): Do not call init_registers_powerpc_cell64l
or init_registers_powerpc_cell32l.
* linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL.
(initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l
or init_registers_powerpc_cell32l.
* linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused.
(init_registers_powerpc_cell32l): Remove prototype.
(init_registers_powerpc_cell64l): Likewise.
* target.h (struct target_ops): Remove qxfer_spu member.
* server.c (handle_qxfer_spu): Remove.
(qxfer_packets): Remove entry for "spu".
(handle_query): No longer support qXfer:spu:read or qXfer:spu:write.
* linux-low.c (SPUFS_MAGIC): Remove.
(spu_enumerate_spu_ids): Remove.
(linux_qxfer_spu): Remove.
(linux_target_ops): Remove qxfer_spu member.
* lynx-low.c (lynx_target_ops): Remove qxfer_spu member.
* nto-low.c (nto_target_ops): Remove qxfer_spu member.
* win32-low.c (win32_target_ops): Remove qxfer_spu member.
gdb/testsuite/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.arch/spu-info.exp: Remove file.
* gdb.arch/spu-info.c: Remove file.
* gdb.arch/spu-ls.exp: Remove file.
* gdb.arch/spu-ls.c: Remove file.
* gdb.asm/asm-source.exp: Remove support for spu*-*-*.
* gdb.asm/spu.inc: Remove file.
* gdb.base/dump.exp: Remove support for spu*-*-*.
* gdb.base/stack-checking.exp: Likewise.
* gdb.base/overlays.exp: Likewise.
* gdb.base/ovlymgr.c: Likewise.
* gdb.base/spu.ld: Remove file.
* gdb.cp/bs15503.exp: Remove support for spu*-*-*.
* gdb.cp/cpexprs.exp: Likewise.
* gdb.cp/exception.exp: Likewise.
* gdb.cp/gdb2495.exp: Likewise.
* gdb.cp/mb-templates.exp: Likewise.
* gdb.cp/pr9167.exp: Likewise.
* gdb.cp/userdef.exp: Likewise.
* gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*.
* gdb.cell: Remove directory.
* lib/cell.exp: Remove file.
Diffstat (limited to 'gdb/testsuite/lib/cell.exp')
-rw-r--r-- | gdb/testsuite/lib/cell.exp | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/gdb/testsuite/lib/cell.exp b/gdb/testsuite/lib/cell.exp deleted file mode 100644 index 4a32805..0000000 --- a/gdb/testsuite/lib/cell.exp +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright 2009-2019 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -# Contributed by Markus Deuling <deuling@de.ibm.com>. -# -# Support library for testing the combined debugger for Linux -# on the Cell Broadband Engine. - -# Compile SPU objects. -proc gdb_compile_cell_spu {source dest type options} { - global board - - # Save and unset multilib flags; these are not appropriate - # for the SPU compiler. - set board [target_info name] - set save_multilib_flag [board_info $board multilib_flags] - unset_board_info "multilib_flags" - - set options_spu [concat $options [list compiler=spu-gcc]] - set ccout [gdb_compile $source $dest $type $options_spu] - - set_board_info multilib_flags $save_multilib_flag - return $ccout -} - -# Compile PPU objects. This is just like gdb_compile_pthreads, except that we -# always add the libspe2 library for compiling Cell/B.E. programs. -proc gdb_compile_cell_ppu {source dest type options} { - # We do not need to try multiple names for the pthread library - # -lpthread works on all Cell/B.E. systems - set lib "-lspe2 -lpthread" - set options_ppu [concat $options [list libs=$lib]] - return [gdb_compile $source $dest $type $options_ppu] -} - -# Embed SPU executable into a PPU object. -proc gdb_cell_embedspu {source dest options} { - global CC_FOR_TARGET - - if [info exists CC_FOR_TARGET] { - set compiler $CC_FOR_TARGET - } else { - set compiler [board_info [target_info name] compiler] - } - - # We assume the PPU compiler is called gcc or ppu-gcc, - # and find the appropriate embedspu based on that. - regsub gcc "$compiler" embedspu embedspu - - # Determine default embedded symbol name from source filename. - set path [split "$source" /] - set filename [lindex $path [expr [llength $path] - 1]] - regsub -all -- "\[-\.\]" "$filename" "_" symbol - - set options_embed [concat $options [list compiler=$embedspu]] - return [gdb_compile "$symbol $source $dest" "" none $options_embed] -} - -# Run a test on the target to see if it supports Cell/B.E. hardware. -# Return 0 if so, 1 if it does not. -gdb_caching_proc skip_cell_tests { - global srcdir subdir gdb_prompt inferior_exited_re - - set me "skip_cell_tests" - - # Set up, compile, and execute a combined Cell/B.E. test program. - # Include the current process ID in the file names to prevent conflicts - # with invocations for multiple testsuites. - set src [standard_temp_file cell[pid].c] - set exe [standard_temp_file cell[pid].x] - set src_spu [standard_temp_file cell[pid]-spu.c] - set exe_spu [standard_temp_file cell[pid]-spu.x] - - set f [open $src "w"] - puts $f "#include <libspe2.h>" - puts $f "extern spe_program_handle_t cell[pid]_spu_x;" - puts $f "int main (void) {" - puts $f "unsigned int entry = SPE_DEFAULT_ENTRY;" - puts $f "spe_context_ptr_t ctx = spe_context_create (0, NULL);" - puts $f "spe_program_load (ctx, &cell[pid]_spu_x);" - puts $f "return spe_context_run (ctx, &entry, 0, NULL, NULL, NULL); }" - close $f - - set f [open $src_spu "w"] - puts $f "int main (void) { return 0; }" - close $f - - verbose "$me: compiling testfile $src" 2 - set compile_flags {debug nowarnings quiet} - - set skip 0 - if { [gdb_compile_cell_spu $src_spu $exe_spu executable $compile_flags] != "" } { - verbose "$me: compiling spu binary failed, returning 1" 2 - set skip 1 - } - if { ! $skip && [gdb_cell_embedspu $exe_spu $exe_spu-embed.o $compile_flags] != "" } { - verbose "$me: embedding spu binary failed, returning 1" 2 - set skip 1 - } - if { ! $skip && [gdb_compile_cell_ppu [list $src $exe_spu-embed.o] $exe executable $compile_flags] != "" } { - verbose "$me: compiling ppu binary failed, returning 1" 2 - set skip 1 - } - file delete $src - file delete $src_spu - file delete $exe_spu - file delete $exe_spu-embed.o - - if { $skip } { - return 1 - } - - # Compilation succeeded so now run it via gdb. - - gdb_exit - gdb_start - gdb_reinitialize_dir $srcdir/$subdir - gdb_load "$exe" - gdb_run_cmd - gdb_expect { - -re ".*$inferior_exited_re normally.*${gdb_prompt} $" { - verbose -log "\n$me: Cell/B.E. hardware detected" - set result 0 - } - -re ".*$inferior_exited_re with code.*${gdb_prompt} $" { - verbose -log "\n$me: Cell/B.E. hardware not detected" - set result 1 - } - default { - unresolved "$me: unexpected failure" - set result 1 - } - } - gdb_exit - remote_file build delete $exe - - verbose "$me: returning $result" 2 - return $result -} - -# Delete all breakpoints and stop on the next new SPU thread -proc cont_spu_main { } { - delete_breakpoints - gdb_test "set spu stop-on-load on" - gdb_test "continue" \ - "Continuing.*Temporary breakpoint .*main .*" \ - "continue to SPU main" -} - -# Continue to MARKER -proc c_to { marker srcfile } { - set line [gdb_get_line_number $marker $srcfile] - gdb_test "break $line" \ - "Breakpoint.*at.*file.*$srcfile.*line $line.*" \ - "break $line" - gdb_test "continue" \ - "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \ - "continue to $line" -} - -# Check if the current thread has SPU architecture -proc check_spu_arch { msg } { - if { $msg == "" } { - set msg "spu architecture is spu256K" - } - gdb_test "show architecture" \ - "The target architecture is set automatically.*currently spu:256K.*" \ - $msg -} |