aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib/cell.exp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2019-09-20 23:06:57 +0200
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2019-09-20 23:06:57 +0200
commitabf516c6931af1683d1e51203de1ca01467f9f85 (patch)
treef2d4e09a3840ac22f5af5584348fbdf97e0c8aca /gdb/testsuite/lib/cell.exp
parent78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a (diff)
downloadgdb-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.exp181
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
-}