SHA256
1
0
forked from pool/gdb
OBS User unknown 2006-12-18 23:16:31 +00:00 committed by Git OBS Bridge
commit 783af9b5d3
19 changed files with 3085 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
gdb-6.5.90.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9d91c33d75efff84aae332f1f6aff0683f8fa0eae4a81638084eeef542f31a2d
size 14533897

14
gdb-misc.patch Normal file
View File

@ -0,0 +1,14 @@
--- gdb/Makefile.in
+++ gdb/Makefile.in
@@ -122,9 +122,9 @@
# Where is the READLINE library? Typically in ../readline.
READLINE_DIR = ../readline
-READLINE = $(READLINE_DIR)/libreadline.a
+READLINE = -lreadline
READLINE_SRC = $(srcdir)/$(READLINE_DIR)
-READLINE_CFLAGS = -I$(READLINE_SRC)/..
+READLINE_CFLAGS =
WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@

791
gdb.changes Normal file
View File

@ -0,0 +1,791 @@
-------------------------------------------------------------------
Sat Dec 2 21:38:33 CET 2006 - schwab@suse.de
- Update to gdb 6.5.90.
* New targets
Xtensa xtensa-elf
Cell Broadband Engine SPU spu-elf
* GDB can now be configured as a cross-debugger targeting native Windows
(mingw32) or Cygwin. It can communicate with a remote debugging stub
running on a Windows system over TCP/IP to debug Windows programs.
* The GDB remote stub, gdbserver, has been updated to support Windows and
Cygwin debugging. Both single-threaded and multi-threaded programs are
supported.
* The "set trust-readonly-sections" command works again. This command was
broken in GDB 6.3, 6.4, and 6.5.
* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no
longer requires symbolic debug information (e.g. DWARF-2).
* New commands
set substitute-path
unset substitute-path
show substitute-path
Manage a list of substitution rules that GDB uses to rewrite the name
of the directories where the sources are located. This can be useful
for instance when the sources were moved to a different location
between compilation and debugging.
set trace-commands
show trace-commands
Print each CLI command as it is executed. Each command is prefixed with
a number of `+' symbols representing the nesting depth.
The source command now has a `-v' option to enable the same feature.
* REMOVED features
The ARM Demon monitor support (RDP protocol, "target rdp").
Kernel Object Display, an embedded debugging feature which only worked with
an obsolete version of Cisco IOS.
The 'set download-write-size' and 'show download-write-size' commands.
* New remote packets
qSupported:
Tell a stub about GDB client features, and request remote target features.
The first feature implemented is PacketSize, which allows the target to
specify the size of packets it can handle - to minimize the number of
packets required and improve performance when connected to a remote
target.
qXfer:auxv:read:
Fetch an OS auxilliary vector from the remote stub. This packet is a
more efficient replacement for qPart:auxv:read.
* Removed remote packets
qPart:auxv:read:
This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5
used it, and only gdbserver implemented it.
-------------------------------------------------------------------
Sat Oct 28 00:25:25 CEST 2006 - schwab@suse.de
- Rename detach-fork to detach fork.
-------------------------------------------------------------------
Tue Oct 24 13:35:52 CEST 2006 - schwab@suse.de
- Better fix for function descriptor handling on ppc64.
-------------------------------------------------------------------
Fri Aug 25 13:40:31 CEST 2006 - schwab@suse.de
- Minimal support for .gnu.hash.
-------------------------------------------------------------------
Thu Aug 24 14:18:29 CEST 2006 - schwab@suse.de
- Fix off-by-one in add_symbol_file_command [#200831].
-------------------------------------------------------------------
Fri Aug 11 14:45:43 CEST 2006 - schwab@suse.de
- Correctly extend addresses read from link map.
-------------------------------------------------------------------
Sun Jul 16 23:22:08 CEST 2006 - schwab@suse.de
- Fix function decriptor handing on ppc64.
-------------------------------------------------------------------
Wed Jun 21 10:16:16 CEST 2006 - schwab@suse.de
- Update to final gdb 6.5.
-------------------------------------------------------------------
Sat Jun 3 10:04:56 CEST 2006 - schwab@suse.de
- Update to gdb 6.5 RC 1.
-------------------------------------------------------------------
Wed May 31 14:41:40 CEST 2006 - schwab@suse.de
- Set long double size to 16 [#180103].
-------------------------------------------------------------------
Mon May 22 14:53:53 CEST 2006 - schwab@suse.de
- Update to gdb 6.4.90 snapshot 20060522.
-------------------------------------------------------------------
Sun Apr 23 16:05:38 CEST 2006 - schwab@suse.de
- Add patch to avoid losing compilation directory.
- Fix a parallel build problem.
-------------------------------------------------------------------
Tue Apr 4 21:48:43 CEST 2006 - schwab@suse.de
- Relocate PIEs.
-------------------------------------------------------------------
Mon Mar 27 00:47:48 CEST 2006 - schwab@suse.de
- Handle .eh_frame register encoding that is different from .dwarf_frame.
- Remove obsolete patch.
-------------------------------------------------------------------
Wed Jan 25 21:30:16 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Mon Jan 23 12:01:15 CET 2006 - schwab@suse.de
- Add fix for PIC prologue analyzer on powerpc.
-------------------------------------------------------------------
Wed Dec 14 01:11:46 CET 2005 - schwab@suse.de
- Add fix for observer notify queue after attach.
-------------------------------------------------------------------
Fri Dec 2 15:13:15 CET 2005 - schwab@suse.de
- Update to gdb 6.4.
-------------------------------------------------------------------
Tue Nov 22 13:11:03 CET 2005 - schwab@suse.de
- Update to gdb 6.3.90.
-------------------------------------------------------------------
Fri Nov 4 01:06:09 CET 2005 - schwab@suse.de
- Update to gdb-6.3.50 snapshot 20051103.
-------------------------------------------------------------------
Mon Oct 3 14:47:06 CEST 2005 - schwab@suse.de
- Update to gdb 6.3.50 snapshot 20051003.
-------------------------------------------------------------------
Mon Sep 19 19:06:04 CEST 2005 - schwab@suse.de
- Fix warnings.
-------------------------------------------------------------------
Sun Aug 21 15:04:46 CEST 2005 - schwab@suse.de
- Add DWARF CFI unwinder on ppc.
-------------------------------------------------------------------
Mon Jun 20 23:33:40 CEST 2005 - schwab@suse.de
- Require libunwind-devel on ia64.
-------------------------------------------------------------------
Thu Jun 9 15:51:37 CEST 2005 - schwab@suse.de
- Add patch for ia64 vDSO support and unwinding through signals and
syscalls [#60766].
-------------------------------------------------------------------
Mon Apr 11 20:35:27 CEST 2005 - schwab@suse.de
- Fix backtrace through vsyscall [#63483].
-------------------------------------------------------------------
Mon Apr 11 01:13:30 CEST 2005 - schwab@suse.de
- Add patch to fix bugs in rs6000/powerpc register set functions.
- Fix a testsuite bug.
-------------------------------------------------------------------
Sun Mar 6 17:52:14 CET 2005 - schwab@suse.de
- Add patch to suppress fork attach/detach messages.
-------------------------------------------------------------------
Wed Mar 2 17:41:41 CET 2005 - schwab@suse.de
- Add patch to fix following vfork from a secondary thread.
-------------------------------------------------------------------
Mon Feb 28 15:26:00 CET 2005 - schwab@suse.de
- Don't ignore DW_TAG_member [#66406].
-------------------------------------------------------------------
Tue Feb 1 17:02:10 CET 2005 - schwab@suse.de
- Find separate debug symbol files in /usr/lib/debug by default.
-------------------------------------------------------------------
Thu Jan 27 17:13:46 CET 2005 - schwab@suse.de
- Add patch to handle back-to-back and nested signals.
-------------------------------------------------------------------
Thu Jan 27 13:21:20 CET 2005 - schwab@suse.de
- Add patch to implement reggroups for ppc.
-------------------------------------------------------------------
Wed Jan 26 11:14:23 CET 2005 - schwab@suse.de
- Add patch to implement PPC GNU/Linux sigtramp frame code.
-------------------------------------------------------------------
Wed Jan 12 14:26:25 CET 2005 - schwab@suse.de
- Don't error out when encountering an unavailable value.
-------------------------------------------------------------------
Fri Dec 3 15:33:47 CET 2004 - schwab@suse.de
- Downgrade errors to warnings during backtrace [#48484].
- Undocument --readnever since it may not be supported by future releases.
- Fix patches from last change.
-------------------------------------------------------------------
Fri Dec 3 14:05:13 CET 2004 - kukuk@suse.de
- Add --readnever option as workaround for [#48485]
-------------------------------------------------------------------
Sun Nov 14 21:47:53 CET 2004 - schwab@suse.de
- Add libunwind-devel to neededforbuild.
-------------------------------------------------------------------
Sat Nov 13 15:59:26 CET 2004 - schwab@suse.de
- Fix missing dependencies.
-------------------------------------------------------------------
Wed Nov 10 11:56:32 CET 2004 - schwab@suse.de
- Version 6.2.91 renamed to 6.3.
-------------------------------------------------------------------
Tue Nov 9 00:57:31 CET 2004 - schwab@suse.de
- Update to gdb 6.2.91 (6.3 release candidate).
-------------------------------------------------------------------
Mon Nov 8 15:34:08 CET 2004 - schwab@suse.de
- Revert last change.
- Fix typo.
-------------------------------------------------------------------
Mon Nov 8 15:04:27 CET 2004 - uli@suse.de
- fixed to build on s390*
-------------------------------------------------------------------
Mon Oct 25 14:51:07 CEST 2004 - schwab@suse.de
- Fix building gdbserver on x86-64.
-------------------------------------------------------------------
Mon Oct 25 11:43:37 CEST 2004 - schwab@suse.de
- Update to gdb 6.2.90.
- Use libunwind on ia64.
-------------------------------------------------------------------
Thu Sep 9 10:13:11 CEST 2004 - schwab@suse.de
- Update to gdb 6.2.1.
-------------------------------------------------------------------
Wed Aug 25 16:00:27 CEST 2004 - schwab@suse.de
- Fix deadlock in child_wait [#42796].
-------------------------------------------------------------------
Tue Aug 24 16:43:36 CEST 2004 - schwab@suse.de
- Import latest changes from 6.2 branch.
-------------------------------------------------------------------
Fri Jul 30 15:23:17 CEST 2004 - schwab@suse.de
- Update to gdb 6.2.
-------------------------------------------------------------------
Thu Jul 29 15:53:51 CEST 2004 - schwab@suse.de
- Update to gdb 6.1.92.
-------------------------------------------------------------------
Mon Jul 26 21:08:42 CEST 2004 - schwab@suse.de
- Fix handling of relative filenames in DWARF2 .debug_line.
-------------------------------------------------------------------
Mon Jul 19 13:01:27 CEST 2004 - schwab@suse.de
- Update to gdb 6.1.91.
-------------------------------------------------------------------
Thu Jun 24 14:26:28 CEST 2004 - schwab@suse.de
- Better handling of dying threads.
-------------------------------------------------------------------
Fri Jun 18 23:57:13 CEST 2004 - schwab@suse.de
- Update to gdb 6.1.1.
-------------------------------------------------------------------
Tue May 25 17:14:03 CEST 2004 - schwab@suse.de
- Fix handling of short lived threads [#40841].
-------------------------------------------------------------------
Sat May 1 15:07:32 CEST 2004 - schwab@suse.de
- Restore removed hunk.
-------------------------------------------------------------------
Fri Apr 30 21:31:35 CEST 2004 - meissner@suse.de
- applied 3 patches to fix problems on ppc64. #39394
-------------------------------------------------------------------
Sat Apr 17 15:55:23 CEST 2004 - schwab@suse.de
- Pacify autobuild.
-------------------------------------------------------------------
Mon Apr 5 11:40:31 CEST 2004 - schwab@suse.de
- Version 6.0.92 has been renamed to 6.1.
-------------------------------------------------------------------
Sat Apr 3 20:34:55 CEST 2004 - schwab@suse.de
- Update to gdb 6.0.92 (6.1 release candidate).
-------------------------------------------------------------------
Tue Mar 30 16:50:40 CEST 2004 - schwab@suse.de
- Fix invalid use of va_list.
-------------------------------------------------------------------
Mon Mar 29 23:29:09 CEST 2004 - schwab@suse.de
- Update to gdb 6.0.91.
-------------------------------------------------------------------
Mon Mar 29 15:40:16 CEST 2004 - schwab@suse.de
- Update to current CVS.
-------------------------------------------------------------------
Fri Mar 19 11:59:48 CET 2004 - schwab@suse.de
- Fix last change: don't disable testsuite.
-------------------------------------------------------------------
Wed Mar 17 10:00:43 CET 2004 - mludvig@suse.cz
- Added opcodes for VIA PadLock instructions.
-------------------------------------------------------------------
Tue Mar 2 14:28:18 CET 2004 - schwab@suse.de
- Update to gdb 6.0.90.
- Run testsuite.
-------------------------------------------------------------------
Thu Jan 8 18:37:10 CET 2004 - schwab@suse.de
- Fix gate area range.
-------------------------------------------------------------------
Wed Dec 10 18:16:55 CET 2003 - schwab@suse.de
- Support DW_TAG_subrange_type.
- Backport recent ia64 improvements from mainline.
-------------------------------------------------------------------
Tue Oct 21 14:36:49 CEST 2003 - mludvig@
- Add support for debugging both i386 and amd64 apps by a single
amd64 GDB binary.
-------------------------------------------------------------------
Mon Oct 20 16:44:00 CEST 2003 - mludvig@suse.cz
- Correctly interpret symbol tables for debugging kernel modules
(gdb6-symtab-minimal.diff)
- Fixed support for GCC variable tracking (gdb6-vartrack.diff)
- Fixed support for Fortran arrays (gdb6-fortranarray.diff)
-------------------------------------------------------------------
Tue Oct 7 14:50:24 CEST 2003 - schwab@suse.de
- Hack to build on sparc.
-------------------------------------------------------------------
Mon Oct 6 22:33:00 CEST 2003 - schwab@suse.de
- Update to gdb 6.0.
-------------------------------------------------------------------
Fri Oct 3 10:48:16 CEST 2003 - kukuk@suse.de
- Remove unused tetex from neededforbuild
-------------------------------------------------------------------
Mon Sep 29 12:00:35 CEST 2003 - schwab@suse.de
- Update to gdb 5.3.93 pre-release.
-------------------------------------------------------------------
Wed Sep 17 18:39:07 CEST 2003 - schwab@suse.de
- Remove debugging hooks.
-------------------------------------------------------------------
Wed Sep 17 17:50:23 CEST 2003 - schwab@suse.de
- Ignore more insns during i386 prologue decoding [#30288].
- Fix hash table mixup in bfd_simple interface.
-------------------------------------------------------------------
Tue Sep 16 14:50:44 CEST 2003 - schwab@suse.de
- Update to gdb 5.3.92 pre-release.
* Fixes bug 31033.
-------------------------------------------------------------------
Wed Sep 3 17:56:43 CEST 2003 - schwab@suse.de
- Update to gdb 5.3.91 pre-release.
-------------------------------------------------------------------
Tue Aug 19 14:09:44 CEST 2003 - schwab@suse.de
- Update to gdb 5.3.90 2003-08-19 cvs snapshot.
-------------------------------------------------------------------
Mon Jun 23 13:16:24 CEST 2003 - kukuk@suse.de
- Fix compiling on SPARC
-------------------------------------------------------------------
Tue Jun 10 15:54:25 CEST 2003 - schwab@suse.de
- Don't package mmalloc.info, since libmmalloc isn't included either.
-------------------------------------------------------------------
Thu May 15 12:09:51 CEST 2003 - schwab@suse.de
- Remove unwanted files.
-------------------------------------------------------------------
Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de
- fix install_info --delete call and move from preun to postun
-------------------------------------------------------------------
Fri Apr 11 10:14:30 CEST 2003 - mludvig@suse.cz
- Fix read_2u() function in dwarf2cfi.c
-------------------------------------------------------------------
Thu Apr 10 18:09:43 CEST 2003 - mludvig@suse.cz
- Add 'info cfi <address>' command.
- Fix off-by-4 bug in the CFI parser.
-------------------------------------------------------------------
Mon Apr 7 13:11:34 CEST 2003 - schwab@suse.de
- Only delete info entries when removing last version.
-------------------------------------------------------------------
Thu Mar 27 17:01:30 CET 2003 - schwab@suse.de
- Fix specfile.
-------------------------------------------------------------------
Thu Mar 6 15:46:52 CET 2003 - aj@suse.de
- Fix neededforbuild.
-------------------------------------------------------------------
Wed Feb 26 17:35:10 CET 2003 - mludvig@suse.cz
- Added loclist support
- Fixed eh_frame parsing problems
- Updated for proposed x86-64 ABI change
-------------------------------------------------------------------
Thu Feb 6 17:48:35 CET 2003 - schwab@suse.de
- Use %install_info.
-------------------------------------------------------------------
Tue Feb 4 20:22:27 CET 2003 - schwab@suse.de
- Enable TUI.
-------------------------------------------------------------------
Sun Jan 26 20:39:57 CET 2003 - olh@suse.de
- add inital native ppc64 support
-------------------------------------------------------------------
Thu Jan 09 13:51:58 CET 2003 - mludvig@suse.cz
- Fixed compilation problem with last gdb-asmbtrace.diff.
No new feature.
-------------------------------------------------------------------
Tue Jan 07 17:41:49 CET 2003 - mludvig@suse.cz
- Several Dwarf2 and x86-64 specific changes
* Added ability to do backtrace from some functions
without debug info (patch gdb-asmbtrace.diff)
* Fixed crash on re-run of a debugged program.
* Added some more verbosity to dwarf2cfi engine.
-------------------------------------------------------------------
Thu Dec 12 15:03:36 CET 2002 - schwab@suse.de
- Update to gdb 5.3.
* GNU/Linux shared library multi-threaded performance improved.
* ``gdbserver'' now supports multi-threaded applications on some targets
* GDB now supports C/C++ preprocessor macros.
-------------------------------------------------------------------
Fri Oct 11 11:44:53 CEST 2002 - aj@suse.de
- Handle gcc code generated by gcc -f-elimante-dwarf2-dups -g.
-------------------------------------------------------------------
Thu Sep 26 12:13:23 CEST 2002 - schwab@suse.de
- Avoid installing libbfd, libopcodes, libiberty and libmmalloc [#20199].
-------------------------------------------------------------------
Wed Sep 18 17:15:11 CEST 2002 - sf@suse.de
- added patch from mludvig to remove framepointer on x86_64
-------------------------------------------------------------------
Wed Sep 4 10:34:56 CEST 2002 - kukuk@suse.de
- Add Patch for reading SPARC core files
-------------------------------------------------------------------
Tue Sep 3 14:01:05 CEST 2002 - schwab@suse.de
- Remove tetex from neededforbuild.
-------------------------------------------------------------------
Wed Jul 24 10:51:03 CEST 2002 - schwab@suse.de
- Update to gdb 5.2.1.
-------------------------------------------------------------------
Thu Jul 18 12:26:11 CEST 2002 - mludvig@suse.de
- Fix PLT recognisation.
-------------------------------------------------------------------
Mon Jul 8 15:19:58 CEST 2002 - schwab@suse.de
- Add fix for memory leak.
-------------------------------------------------------------------
Tue Jul 2 16:05:09 CEST 2002 - mludvig@suse.cz
- removed my previous patches
- added a huge one suse-521-x8664.diff
-------------------------------------------------------------------
Thu Jun 6 12:38:48 CEST 2002 - sf@suse.de
- added fpregset.diff (from mludvig@suse.de)
- added dwarf2cfi.diff (from mludvig@suse.de)
-------------------------------------------------------------------
Wed May 15 12:05:22 CEST 2002 - sf@suse.de
- added some dwarf2-patches for x86_64
(from mludvig@suse.de)
-------------------------------------------------------------------
Thu May 9 19:03:27 CEST 2002 - schwab@suse.de
- Fix breakpoints on MLX bundle.
-------------------------------------------------------------------
Mon May 6 17:57:10 CEST 2002 - schwab@suse.de
- Sparc doesn't have gdbserver either.
-------------------------------------------------------------------
Sun May 5 15:57:22 CEST 2002 - schwab@suse.de
- Update to gdb 5.2.
- Gdbserver now available for all but alpha.
-------------------------------------------------------------------
Fri Jan 25 11:10:12 CET 2002 - schwab@suse.de
- Update to gdb 5.1.1.
-------------------------------------------------------------------
Thu Nov 22 15:22:51 CET 2001 - schwab@suse.de
- Update to gdb 5.1.
- Build and install gdbserver on i386 and ia64.
-------------------------------------------------------------------
Sat Aug 18 22:59:47 CEST 2001 - schwab@suse.de
- Update to gdb snapthot 20010316.
-------------------------------------------------------------------
Fri May 18 15:40:30 CEST 2001 - schwab@suse.de
- Include ia64 warning patches (from nadvornik@suse.cz).
-------------------------------------------------------------------
Thu Apr 12 15:15:53 CEST 2001 - schwab@suse.de
- Remove declaration of tilde_expand, now in readline header.
-------------------------------------------------------------------
Sun Apr 1 01:12:02 CEST 2001 - schwab@suse.de
- Fix hardware watchpoints on ia64.
-------------------------------------------------------------------
Fri Mar 30 14:45:15 CEST 2001 - schwab@suse.de
- Fix crash on info architecture (#6865).
-------------------------------------------------------------------
Wed Mar 28 10:57:09 CEST 2001 - schwab@suse.de
- Use installed readline library.
-------------------------------------------------------------------
Tue Mar 6 18:25:45 CET 2001 - schwab@suse.de
- Remove some ia64 hacks.
-------------------------------------------------------------------
Tue Dec 12 18:22:12 CET 2000 - schwab@suse.de
- Improve handling of breakpoints in shared libraries.
-------------------------------------------------------------------
Fri Nov 17 11:25:57 CET 2000 - kukuk@suse.de
- Update to working gdb snapshot
-------------------------------------------------------------------
Wed Sep 27 12:56:18 CEST 2000 - fober@suse.de
- s390: added s390-sigregs-SuSE.patch
-------------------------------------------------------------------
Thu Sep 14 14:38:38 CEST 2000 - fober@suse.de
- s390: incorporate new ibm patches for gdb 5.0
-------------------------------------------------------------------
Wed Sep 6 17:20:46 CEST 2000 - fober@suse.de
- s390: incorporate ibm patches for gdb 5.0
-------------------------------------------------------------------
Fri Jun 30 16:37:17 CEST 2000 - kukuk@suse.de
- Add gdb-5.0
-------------------------------------------------------------------
Tue Apr 4 12:43:40 MEST 2000 - bk@suse.de
- s390 team added s390 support
-------------------------------------------------------------------
Tue Mar 21 17:33:22 CET 2000 - schwab@suse.de
- Fix core dump reading (#2586).
-------------------------------------------------------------------
Fri Feb 4 14:14:20 CET 2000 - kukuk@suse.de
- Add patches for PPC
- Move /usr/info -> /usr/share/info
-------------------------------------------------------------------
Mon Dec 6 16:52:58 MET 1999 - kukuk@suse.de
- Remove gdb 4.17
- Add gdb 4.18 fixes for SPARC
-------------------------------------------------------------------
Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
-------------------------------------------------------------------
Fri Sep 3 12:00:15 MEST 1999 - kukuk@suse.de
- Use RPM values for CFLAGS and configure
-------------------------------------------------------------------
Tue Aug 24 17:05:53 MEST 1999 - uli@suse.de
- added -fsigned-char to CFLAGS (PPC)
-------------------------------------------------------------------
Mon Aug 23 18:14:32 MEST 1999 - kukuk@suse.de
- Add gdb 4.18 thread patch from RH
-------------------------------------------------------------------
Mon Jul 19 09:54:42 MEST 1999 - florian@suse.de
- add gdb-4.17.0.12 as /usr/bin/gdb-4.17
-------------------------------------------------------------------
Wed Jul 7 17:16:59 MEST 1999 - kukuk@suse.de
- update to 4.18 using diff from jurix
-------------------------------------------------------------------
Mon Feb 22 23:39:42 MET 1999 - ro@suse.de
- update to 4.17.0.11 using diff from jurix
-------------------------------------------------------------------
Thu Jan 21 14:05:35 MET 1999 - ro@suse.de
- update to 4.17.0.8
-------------------------------------------------------------------
Thu Oct 1 16:55:44 MEST 1998 - ro@suse.de
- update to 4.17.0.4 using jurix-diff
-------------------------------------------------------------------
Tue Sep 15 11:18:43 MEST 1998 - ro@suse.de
- hacked for GLIBC: include sys/ucontext and sys/ptrace where needed
- catch strup redeclarations
- cleaned up patch-sequence
----------------------------------------------------------------------
Wed Oct 29 00:00:08 MET 1997 - florian@suse.de
- fix <sys/procfs.h> in libc to correctly support core-files
- add bug-fix to read symbols from dynamic symbol tables
- apply all patches from debian gdb-4.16-11
----------------------------------------------------------------------
Tue Oct 22 15:43:38 MET DST 1996 - florian@suse.de
Neue Version 4.16.
gdb kompiliert nur mit libc 5.4.7 richtig. Mit 5.2.18 kann gdb
keine core-files lesen.
Ich waere dafuer, einfach das Binary von libc 5.4.7 zu benutzen.
Wird schon funktionieren...

504
gdb.spec Normal file
View File

@ -0,0 +1,504 @@
#
# spec file for package gdb (Version 6.5.90)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: gdb
BuildRequires: dejagnu gcc-c++ gcc-fortran gcc-java gcc-objc readline-devel
%ifarch %ix86 x86_64 ia64
BuildRequires: libunwind-devel
%endif
URL: http://www.gnu.org/software/gdb/
License: GNU General Public License (GPL)
Group: Development/Tools/Debuggers
Autoreqprov: on
PreReq: %{install_info_prereq}
Version: 6.5.90
Release: 1
Summary: The GNU Debugger
Source: gdb-%{version}.tar.bz2
Patch1: gdb-misc.patch
Patch2: warn.patch
Patch3: readline-5.1-random.patch
Patch4: readnever.patch
Patch5: gstack.patch
Patch7: ppc-dwarf2-cfi.patch
Patch8: pie-relocate.diff
Patch9: mst-solib-trampoline.diff
Patch11: loader_break.diff
Patch12: ppc-long-double.diff
Patch13: lr-frame-offset.diff
Patch14: ppc64-fdesc.diff
Patch15: solib-extract-address.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
You can use GDB to debug programs written in C, C++, Ada, and Modula-2.
GNU Fortran 77 support is also partially included.
Authors:
--------
Doug Evans <dje@cygnus.com>
Fred Fish <fnf@cygnus.com>
Ian Lance Taylor <ian@cygnus.com>
J.T. Conklin <jtc@cygnus.com>
Jason Molenda <crash@cygnus.com>
Jeffrey A. Law <law@cygnus.com>
Jim Kingdon <kingdon@cygnus.com>
Kung Hsu <kung@cygnus.com>
Michael Meissner <meissner@cygnus.com>
Per Bothner <bothner@cygnus.com>
Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
Rob Savoye <rob@cygnus.com>
Stan Shebs <shebs@cygnus.com>
Steve Chamberlain <sac@cygnus.com>
Stu Grossman <grossman@cygnus.com>
%prep
%setup -q
%patch1
%patch2
%patch3
%patch4
%patch5
%patch7
%patch8
%patch9
cd gdb
%patch11
cd ..
%patch12
%patch13 -p1
%patch14
%patch15
%build
CFLAGS="$RPM_OPT_FLAGS" \
./configure --prefix=%{_prefix} --libdir=%{_libdir} --infodir=%{_infodir} \
--mandir=%{_mandir} \
%ifarch ia64
--with-libunwind \
%else
--without-libunwind \
%endif
--with-separate-debug-dir=%{_prefix}/lib/debug \
--enable-64-bit-bfd --disable-werror \
--enable-tui %{_target_cpu}-suse-linux
make %{?jobs:-j%jobs}
make info
make -k check || :
%install
make install-gdb install-info-gdb DESTDIR="$RPM_BUILD_ROOT"
echo '#!/bin/sh
exec gdb --tui "$@"' > $RPM_BUILD_ROOT%{_bindir}/gdbtui
%clean
rm -rf $RPM_BUILD_ROOT
%post
%install_info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz
%files
%defattr(-,root,root)
%doc COPYING COPYING.LIB gdb/README gdb/NEWS
%{_bindir}/gdb
%{_bindir}/gdbtui
%{_bindir}/gstack
%{_mandir}/man1/gdb.1.gz
%{_mandir}/man1/gdbtui.1.gz
%{_infodir}/annotate.info*.gz
%{_infodir}/gdb.info*.gz
%{_infodir}/gdbint.info*.gz
%{_infodir}/stabs.info*.gz
%ifnarch alpha sparc sparc64
%{_bindir}/gdbserver
%{_mandir}/man1/gdbserver.1.gz
%endif
%changelog -n gdb
* Sat Dec 02 2006 - schwab@suse.de
- Update to gdb 6.5.90.
* New targets
Xtensa xtensa-elf
Cell Broadband Engine SPU spu-elf
* GDB can now be configured as a cross-debugger targeting native Windows
(mingw32) or Cygwin. It can communicate with a remote debugging stub
running on a Windows system over TCP/IP to debug Windows programs.
* The GDB remote stub, gdbserver, has been updated to support Windows and
Cygwin debugging. Both single-threaded and multi-threaded programs are
supported.
* The "set trust-readonly-sections" command works again. This command was
broken in GDB 6.3, 6.4, and 6.5.
* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no
longer requires symbolic debug information (e.g. DWARF-2).
* New commands
set substitute-path
unset substitute-path
show substitute-path
Manage a list of substitution rules that GDB uses to rewrite the name
of the directories where the sources are located. This can be useful
for instance when the sources were moved to a different location
between compilation and debugging.
set trace-commands
show trace-commands
Print each CLI command as it is executed. Each command is prefixed with
a number of `+' symbols representing the nesting depth.
The source command now has a `-v' option to enable the same feature.
* REMOVED features
The ARM Demon monitor support (RDP protocol, "target rdp").
Kernel Object Display, an embedded debugging feature which only worked with
an obsolete version of Cisco IOS.
The 'set download-write-size' and 'show download-write-size' commands.
* New remote packets
qSupported:
Tell a stub about GDB client features, and request remote target features.
The first feature implemented is PacketSize, which allows the target to
specify the size of packets it can handle - to minimize the number of
packets required and improve performance when connected to a remote
target.
qXfer:auxv:read:
Fetch an OS auxilliary vector from the remote stub. This packet is a
more efficient replacement for qPart:auxv:read.
* Removed remote packets
qPart:auxv:read:
This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5
used it, and only gdbserver implemented it.
* Sat Oct 28 2006 - schwab@suse.de
- Rename detach-fork to detach fork.
* Tue Oct 24 2006 - schwab@suse.de
- Better fix for function descriptor handling on ppc64.
* Fri Aug 25 2006 - schwab@suse.de
- Minimal support for .gnu.hash.
* Thu Aug 24 2006 - schwab@suse.de
- Fix off-by-one in add_symbol_file_command [#200831].
* Fri Aug 11 2006 - schwab@suse.de
- Correctly extend addresses read from link map.
* Sun Jul 16 2006 - schwab@suse.de
- Fix function decriptor handing on ppc64.
* Wed Jun 21 2006 - schwab@suse.de
- Update to final gdb 6.5.
* Sat Jun 03 2006 - schwab@suse.de
- Update to gdb 6.5 RC 1.
* Wed May 31 2006 - schwab@suse.de
- Set long double size to 16 [#180103].
* Mon May 22 2006 - schwab@suse.de
- Update to gdb 6.4.90 snapshot 20060522.
* Sun Apr 23 2006 - schwab@suse.de
- Add patch to avoid losing compilation directory.
- Fix a parallel build problem.
* Tue Apr 04 2006 - schwab@suse.de
- Relocate PIEs.
* Mon Mar 27 2006 - schwab@suse.de
- Handle .eh_frame register encoding that is different from .dwarf_frame.
- Remove obsolete patch.
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 23 2006 - schwab@suse.de
- Add fix for PIC prologue analyzer on powerpc.
* Wed Dec 14 2005 - schwab@suse.de
- Add fix for observer notify queue after attach.
* Fri Dec 02 2005 - schwab@suse.de
- Update to gdb 6.4.
* Tue Nov 22 2005 - schwab@suse.de
- Update to gdb 6.3.90.
* Fri Nov 04 2005 - schwab@suse.de
- Update to gdb-6.3.50 snapshot 20051103.
* Mon Oct 03 2005 - schwab@suse.de
- Update to gdb 6.3.50 snapshot 20051003.
* Mon Sep 19 2005 - schwab@suse.de
- Fix warnings.
* Sun Aug 21 2005 - schwab@suse.de
- Add DWARF CFI unwinder on ppc.
* Mon Jun 20 2005 - schwab@suse.de
- Require libunwind-devel on ia64.
* Thu Jun 09 2005 - schwab@suse.de
- Add patch for ia64 vDSO support and unwinding through signals and
syscalls [#60766].
* Mon Apr 11 2005 - schwab@suse.de
- Fix backtrace through vsyscall [#63483].
* Mon Apr 11 2005 - schwab@suse.de
- Add patch to fix bugs in rs6000/powerpc register set functions.
- Fix a testsuite bug.
* Sun Mar 06 2005 - schwab@suse.de
- Add patch to suppress fork attach/detach messages.
* Wed Mar 02 2005 - schwab@suse.de
- Add patch to fix following vfork from a secondary thread.
* Mon Feb 28 2005 - schwab@suse.de
- Don't ignore DW_TAG_member [#66406].
* Tue Feb 01 2005 - schwab@suse.de
- Find separate debug symbol files in /usr/lib/debug by default.
* Thu Jan 27 2005 - schwab@suse.de
- Add patch to handle back-to-back and nested signals.
* Thu Jan 27 2005 - schwab@suse.de
- Add patch to implement reggroups for ppc.
* Wed Jan 26 2005 - schwab@suse.de
- Add patch to implement PPC GNU/Linux sigtramp frame code.
* Wed Jan 12 2005 - schwab@suse.de
- Don't error out when encountering an unavailable value.
* Fri Dec 03 2004 - schwab@suse.de
- Downgrade errors to warnings during backtrace [#48484].
- Undocument --readnever since it may not be supported by future releases.
- Fix patches from last change.
* Fri Dec 03 2004 - kukuk@suse.de
- Add --readnever option as workaround for [#48485]
* Sun Nov 14 2004 - schwab@suse.de
- Add libunwind-devel to neededforbuild.
* Sat Nov 13 2004 - schwab@suse.de
- Fix missing dependencies.
* Wed Nov 10 2004 - schwab@suse.de
- Version 6.2.91 renamed to 6.3.
* Tue Nov 09 2004 - schwab@suse.de
- Update to gdb 6.2.91 (6.3 release candidate).
* Mon Nov 08 2004 - schwab@suse.de
- Revert last change.
- Fix typo.
* Mon Nov 08 2004 - uli@suse.de
- fixed to build on s390*
* Mon Oct 25 2004 - schwab@suse.de
- Fix building gdbserver on x86-64.
* Mon Oct 25 2004 - schwab@suse.de
- Update to gdb 6.2.90.
- Use libunwind on ia64.
* Thu Sep 09 2004 - schwab@suse.de
- Update to gdb 6.2.1.
* Wed Aug 25 2004 - schwab@suse.de
- Fix deadlock in child_wait [#42796].
* Tue Aug 24 2004 - schwab@suse.de
- Import latest changes from 6.2 branch.
* Fri Jul 30 2004 - schwab@suse.de
- Update to gdb 6.2.
* Thu Jul 29 2004 - schwab@suse.de
- Update to gdb 6.1.92.
* Mon Jul 26 2004 - schwab@suse.de
- Fix handling of relative filenames in DWARF2 .debug_line.
* Mon Jul 19 2004 - schwab@suse.de
- Update to gdb 6.1.91.
* Thu Jun 24 2004 - schwab@suse.de
- Better handling of dying threads.
* Fri Jun 18 2004 - schwab@suse.de
- Update to gdb 6.1.1.
* Tue May 25 2004 - schwab@suse.de
- Fix handling of short lived threads [#40841].
* Sat May 01 2004 - schwab@suse.de
- Restore removed hunk.
* Fri Apr 30 2004 - meissner@suse.de
- applied 3 patches to fix problems on ppc64. #39394
* Sat Apr 17 2004 - schwab@suse.de
- Pacify autobuild.
* Mon Apr 05 2004 - schwab@suse.de
- Version 6.0.92 has been renamed to 6.1.
* Sat Apr 03 2004 - schwab@suse.de
- Update to gdb 6.0.92 (6.1 release candidate).
* Tue Mar 30 2004 - schwab@suse.de
- Fix invalid use of va_list.
* Mon Mar 29 2004 - schwab@suse.de
- Update to gdb 6.0.91.
* Mon Mar 29 2004 - schwab@suse.de
- Update to current CVS.
* Fri Mar 19 2004 - schwab@suse.de
- Fix last change: don't disable testsuite.
* Wed Mar 17 2004 - mludvig@suse.cz
- Added opcodes for VIA PadLock instructions.
* Tue Mar 02 2004 - schwab@suse.de
- Update to gdb 6.0.90.
- Run testsuite.
* Thu Jan 08 2004 - schwab@suse.de
- Fix gate area range.
* Wed Dec 10 2003 - schwab@suse.de
- Support DW_TAG_subrange_type.
- Backport recent ia64 improvements from mainline.
* Tue Oct 21 2003 - mludvig@
- Add support for debugging both i386 and amd64 apps by a single
amd64 GDB binary.
* Mon Oct 20 2003 - mludvig@suse.cz
- Correctly interpret symbol tables for debugging kernel modules
(gdb6-symtab-minimal.diff)
- Fixed support for GCC variable tracking (gdb6-vartrack.diff)
- Fixed support for Fortran arrays (gdb6-fortranarray.diff)
* Tue Oct 07 2003 - schwab@suse.de
- Hack to build on sparc.
* Mon Oct 06 2003 - schwab@suse.de
- Update to gdb 6.0.
* Fri Oct 03 2003 - kukuk@suse.de
- Remove unused tetex from neededforbuild
* Mon Sep 29 2003 - schwab@suse.de
- Update to gdb 5.3.93 pre-release.
* Wed Sep 17 2003 - schwab@suse.de
- Remove debugging hooks.
* Wed Sep 17 2003 - schwab@suse.de
- Ignore more insns during i386 prologue decoding [#30288].
- Fix hash table mixup in bfd_simple interface.
* Tue Sep 16 2003 - schwab@suse.de
- Update to gdb 5.3.92 pre-release.
* Fixes bug 31033.
* Wed Sep 03 2003 - schwab@suse.de
- Update to gdb 5.3.91 pre-release.
* Tue Aug 19 2003 - schwab@suse.de
- Update to gdb 5.3.90 2003-08-19 cvs snapshot.
* Mon Jun 23 2003 - kukuk@suse.de
- Fix compiling on SPARC
* Tue Jun 10 2003 - schwab@suse.de
- Don't package mmalloc.info, since libmmalloc isn't included either.
* Thu May 15 2003 - schwab@suse.de
- Remove unwanted files.
* Thu Apr 24 2003 - ro@suse.de
- fix install_info --delete call and move from preun to postun
* Fri Apr 11 2003 - mludvig@suse.cz
- Fix read_2u() function in dwarf2cfi.c
* Thu Apr 10 2003 - mludvig@suse.cz
- Add 'info cfi <address>' command.
- Fix off-by-4 bug in the CFI parser.
* Mon Apr 07 2003 - schwab@suse.de
- Only delete info entries when removing last version.
* Thu Mar 27 2003 - schwab@suse.de
- Fix specfile.
* Thu Mar 06 2003 - aj@suse.de
- Fix neededforbuild.
* Wed Feb 26 2003 - mludvig@suse.cz
- Added loclist support
- Fixed eh_frame parsing problems
- Updated for proposed x86-64 ABI change
* Thu Feb 06 2003 - schwab@suse.de
- Use %%install_info.
* Tue Feb 04 2003 - schwab@suse.de
- Enable TUI.
* Sun Jan 26 2003 - olh@suse.de
- add inital native ppc64 support
* Thu Jan 09 2003 - mludvig@suse.cz
- Fixed compilation problem with last gdb-asmbtrace.diff.
No new feature.
* Tue Jan 07 2003 - mludvig@suse.cz
- Several Dwarf2 and x86-64 specific changes
* Added ability to do backtrace from some functions
without debug info (patch gdb-asmbtrace.diff)
* Fixed crash on re-run of a debugged program.
* Added some more verbosity to dwarf2cfi engine.
* Thu Dec 12 2002 - schwab@suse.de
- Update to gdb 5.3.
* GNU/Linux shared library multi-threaded performance improved.
* ``gdbserver'' now supports multi-threaded applications on some targets
* GDB now supports C/C++ preprocessor macros.
* Fri Oct 11 2002 - aj@suse.de
- Handle gcc code generated by gcc -f-elimante-dwarf2-dups -g.
* Thu Sep 26 2002 - schwab@suse.de
- Avoid installing libbfd, libopcodes, libiberty and libmmalloc [#20199].
* Wed Sep 18 2002 - sf@suse.de
- added patch from mludvig to remove framepointer on x86_64
* Wed Sep 04 2002 - kukuk@suse.de
- Add Patch for reading SPARC core files
* Tue Sep 03 2002 - schwab@suse.de
- Remove tetex from neededforbuild.
* Wed Jul 24 2002 - schwab@suse.de
- Update to gdb 5.2.1.
* Thu Jul 18 2002 - mludvig@suse.de
- Fix PLT recognisation.
* Mon Jul 08 2002 - schwab@suse.de
- Add fix for memory leak.
* Tue Jul 02 2002 - mludvig@suse.cz
- removed my previous patches
- added a huge one suse-521-x8664.diff
* Thu Jun 06 2002 - sf@suse.de
- added fpregset.diff (from mludvig@suse.de)
- added dwarf2cfi.diff (from mludvig@suse.de)
* Wed May 15 2002 - sf@suse.de
- added some dwarf2-patches for x86_64
(from mludvig@suse.de)
* Thu May 09 2002 - schwab@suse.de
- Fix breakpoints on MLX bundle.
* Mon May 06 2002 - schwab@suse.de
- Sparc doesn't have gdbserver either.
* Sun May 05 2002 - schwab@suse.de
- Update to gdb 5.2.
- Gdbserver now available for all but alpha.
* Fri Jan 25 2002 - schwab@suse.de
- Update to gdb 5.1.1.
* Thu Nov 22 2001 - schwab@suse.de
- Update to gdb 5.1.
- Build and install gdbserver on i386 and ia64.
* Sat Aug 18 2001 - schwab@suse.de
- Update to gdb snapthot 20010316.
* Fri May 18 2001 - schwab@suse.de
- Include ia64 warning patches (from nadvornik@suse.cz).
* Thu Apr 12 2001 - schwab@suse.de
- Remove declaration of tilde_expand, now in readline header.
* Sun Apr 01 2001 - schwab@suse.de
- Fix hardware watchpoints on ia64.
* Fri Mar 30 2001 - schwab@suse.de
- Fix crash on info architecture (#6865).
* Wed Mar 28 2001 - schwab@suse.de
- Use installed readline library.
* Tue Mar 06 2001 - schwab@suse.de
- Remove some ia64 hacks.
* Tue Dec 12 2000 - schwab@suse.de
- Improve handling of breakpoints in shared libraries.
* Fri Nov 17 2000 - kukuk@suse.de
- Update to working gdb snapshot
* Wed Sep 27 2000 - fober@suse.de
- s390: added s390-sigregs-SuSE.patch
* Thu Sep 14 2000 - fober@suse.de
- s390: incorporate new ibm patches for gdb 5.0
* Wed Sep 06 2000 - fober@suse.de
- s390: incorporate ibm patches for gdb 5.0
* Fri Jun 30 2000 - kukuk@suse.de
- Add gdb-5.0
* Tue Apr 04 2000 - bk@suse.de
- s390 team added s390 support
* Tue Mar 21 2000 - schwab@suse.de
- Fix core dump reading (#2586).
* Fri Feb 04 2000 - kukuk@suse.de
- Add patches for PPC
- Move /usr/info -> /usr/share/info
* Mon Dec 06 1999 - kukuk@suse.de
- Remove gdb 4.17
- Add gdb 4.18 fixes for SPARC
* Mon Sep 13 1999 - bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Fri Sep 03 1999 - kukuk@suse.de
- Use RPM values for CFLAGS and configure
* Tue Aug 24 1999 - uli@suse.de
- added -fsigned-char to CFLAGS (PPC)
* Mon Aug 23 1999 - kukuk@suse.de
- Add gdb 4.18 thread patch from RH
* Mon Jul 19 1999 - florian@suse.de
- add gdb-4.17.0.12 as /usr/bin/gdb-4.17
* Wed Jul 07 1999 - kukuk@suse.de
- update to 4.18 using diff from jurix
* Mon Feb 22 1999 - ro@suse.de
- update to 4.17.0.11 using diff from jurix
* Thu Jan 21 1999 - ro@suse.de
- update to 4.17.0.8
* Thu Oct 01 1998 - ro@suse.de
- update to 4.17.0.4 using jurix-diff
* Tue Sep 15 1998 - ro@suse.de
- hacked for GLIBC: include sys/ucontext and sys/ptrace where needed
- catch strup redeclarations
- cleaned up patch-sequence
* Wed Oct 29 1997 - florian@suse.de
- fix <sys/procfs.h> in libc to correctly support core-files
- add bug-fix to read symbols from dynamic symbol tables
- apply all patches from debian gdb-4.16-11
* Thu Jan 02 1997 - florian@suse.de
Neue Version 4.16.
gdb kompiliert nur mit libc 5.4.7 richtig. Mit 5.2.18 kann gdb
keine core-files lesen.
Ich waere dafuer, einfach das Binary von libc 5.4.7 zu benutzen.
Wird schon funktionieren...

89
gstack.patch Normal file
View File

@ -0,0 +1,89 @@
2004-11-23 Andrew Cagney <cagney@redhat.com>
* Makefile.in (uninstall-gstack, install-gstack): New rules, add
to install and uninstall.
* gstack.sh: New file.
--- gdb/gstack.sh 1969-12-31 19:00:00.000000000 -0500
+++ gdb/gstack.sh 2004-11-23 13:34:48.000000000 -0500
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+if test $# -ne 1; then
+ echo "Usage: $0 <process-id>" 1>&2
+ exit 1
+fi
+
+if test ! -r /proc/$1; then
+ echo "Process $1 not found." 1>&2
+ exit 1
+fi
+
+GDB=${GDB:-gdb}
+
+if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then
+ readnever=--readnever
+else
+ readnever=
+fi
+
+# Run GDB, strip out unwanted noise.
+$GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 |
+thread apply all bt
+EOF
+sed -n \
+ -e 's/^(gdb) //' \
+ -e '/^#/p' \
+ -e '/^Thread/p'
--- gdb/Makefile.in 2004-11-23 13:31:03.000000000 -0500
+++ gdb/Makefile.in 2004-11-23 15:06:34.623389592 -0500
@@ -970,7 +970,7 @@
# time it takes for make to check that all is up to date.
# install-only is intended to address that need.
install: all install-only
-install-only: $(CONFIG_INSTALL)
+install-only: install-gstack $(CONFIG_INSTALL)
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e "$$t"` ; \
if test "x$$transformed_name" = x; then \
@@ -1002,9 +1002,22 @@
$(DESTDIR)$(man1dir) ; \
$(INSTALL_DATA) $(srcdir)/gdb.1 \
$(DESTDIR)$(man1dir)/$$transformed_name.1
+GSTACK=gstack
+.PHONY: install-gstack
+install-gstack:
+ transformed_name=`t='$(program_transform_name)'; \
+ echo $(GSTACK) | sed -e "$$t"` ; \
+ if test "x$$transformed_name" = x; then \
+ transformed_name=$(GSTACK) ; \
+ else \
+ true ; \
+ fi ; \
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \
+ $(INSTALL_PROGRAM) $(srcdir)/$(GSTACK).sh \
+ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
-uninstall: force $(CONFIG_UNINSTALL)
+uninstall: force uninstall-gstack $(CONFIG_UNINSTALL)
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e $$t` ; \
if test "x$$transformed_name" = x; then \
@@ -1026,6 +1043,16 @@
fi ; \
rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
$(DESTDIR)$(man1dir)/$$transformed_name.1
+.PHONY: uninstall-gstack
+uninstall-gstack:
+ transformed_name=`t='$(program_transform_name)'; \
+ echo $(GSTACK) | sed -e $$t` ; \
+ if test "x$$transformed_name" = x; then \
+ transformed_name=$(GSTACK) ; \
+ else \
+ true ; \
+ fi ; \
+ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT)
# We do this by grepping through sources. If that turns out to be too slow,
# maybe we could just require every .o file to have an initialization routine

86
loader_break.diff Normal file
View File

@ -0,0 +1,86 @@
2006-05-25 Paul Gilliam <pgilliam@us.ibm.com
* solib-svr4.c: Remove "._dl_debug_state" from the list of symbols at
which to try setting a breakpoint for tracking solibs.
(enable_break): Resolve break address when the symbol is found in
the data section.
Index: solib-svr4.c
===================================================================
RCS file: /cvs/src/src/gdb/solib-svr4.c,v
retrieving revision 1.58
diff -a -u -r1.58 solib-svr4.c
--- solib-svr4.c 18 May 2006 20:38:56 -0000 1.58
+++ solib-svr4.c 25 May 2006 22:12:55 -0000
@@ -85,16 +85,6 @@
"rtld_db_dlactivity",
"_rtld_debug_state",
- /* On the 64-bit PowerPC, the linker symbol with the same name as
- the C function points to a function descriptor, not to the entry
- point. The linker symbol whose name is the C function name
- prefixed with a '.' points to the function's entry point. So
- when we look through this table, we ignore symbols that point
- into the data section (thus skipping the descriptor's symbol),
- and eventually try this one, giving us the real entry point
- address. */
- "._dl_debug_state",
-
NULL
};
@@ -1043,20 +1033,45 @@
/* Now try to set a breakpoint in the dynamic linker. */
for (bkpt_namep = solib_break_names; *bkpt_namep != NULL; bkpt_namep++)
{
- /* On ABI's that use function descriptors, there are usually
- two linker symbols associated with each C function: one
- pointing at the actual entry point of the machine code,
- and one pointing at the function's descriptor. The
- latter symbol has the same name as the C function.
-
- What we're looking for here is the machine code entry
- point, so we are only interested in symbols in code
- sections. */
+ /* What we're looking for here is the machine code entry point,
+ so we are only interested in symbols in code sections.
+
+ On ABI's that use function descriptors, the linker symbol with
+ the same name as a C funtion points to that functions descriptor.
+ when those function descriptors are in the code section, they
+ contain executable code and we can set a breakpoint there. */
sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep, SEC_CODE);
if (sym_addr != 0)
break;
}
+ if (sym_addr == 0)
+ {
+ CORE_ADDR sect_offset;
+
+ /* No symbol was found in a code section, so look in the data
+ sections. This will only happen when the linker symbol points
+ to a function descriptor that is in a data section. */
+ for (bkpt_namep = solib_break_names; *bkpt_namep!=NULL; bkpt_namep++)
+ {
+ /* On ABI's that use function descriptors that are in the data
+ section, */
+ sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep, SEC_DATA);
+ if (sym_addr != 0)
+ break;
+ }
+ if (sym_addr == 0)
+ {
+ target_close (tmp_bfd_target, 0);
+ goto bkpt_at_symbol;
+ }
+
+ /* Convert 'sym_addr' from a function pointer to an address. */
+ sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
+ sym_addr,
+ tmp_bfd_target);
+ }
+
/* We're done with both the temporary bfd and target. Remember,
closing the target closes the underlying bfd. */
target_close (tmp_bfd_target, 0);

49
lr-frame-offset.diff Normal file
View File

@ -0,0 +1,49 @@
From nobody Fri Jun 2 13:36:44 2006
From: Anton Blanchard <anton@samba.org>
Subject: [PATCH] Fix powerpc 64bit backtrace code
To: gdb-patches@sourceware.org
Date: Fri, 2 Jun 2006 12:38:24 +1000
Hi,
When backtracing a 64bit task on ppc64/Linux I notice we sometimes get
garbage for the PC:
#3 0xc00000006d337cd0 in ?? ()
#4 0x8822248200000001 in ?? ()
#5 0x4822248200000000 in ?? ()
Looking closer, it appears that gdb has missed the LR field and instead
got the CR field. On 32bit the LR is at SP + wordsize, however on 64bit
it is SP + 2*wordsize.
Knowing this I looked through the backtrace code and it looks like the
fallback is incorrect. If we fail to determine the stack layout
accurately we should make a guess based on the ABI. It turns out
tdep->lr_frame_offset was created for this purpose, but isnt used
anywhere.
Look OK?
Anton
---
2006-06-02 Anton Blanchard <anton@samba.org>
* rs6000-tdep.c (rs6000_frame_cache): Use tdep->lr_frame_offset
instead of wordsize when looking for the LR in a stack frame.
--- src/gdb/rs6000-tdep.c~ 2006-06-02 09:34:44.000000000 +1000
+++ src/gdb/rs6000-tdep.c 2006-06-02 09:33:42.000000000 +1000
@@ -2988,7 +2988,7 @@
if (make_frame)
{
fdata.frameless = 0;
- fdata.lr_offset = wordsize;
+ fdata.lr_offset = tdep->lr_frame_offset;
}
}

11
mst-solib-trampoline.diff Normal file
View File

@ -0,0 +1,11 @@
--- gdb/minsyms.c
+++ gdb/minsyms.c
@@ -490,6 +490,8 @@
don't fill the bfd_section member, so don't
throw away symbols on those platforms. */
&& SYMBOL_BFD_SECTION (&msymbol[hi]) != NULL
+ /* Don't ignore symbols for solib trampolines. */
+ && MSYMBOL_TYPE (&msymbol[hi]) != mst_solib_trampoline
&& (!matching_bfd_sections
(SYMBOL_BFD_SECTION (&msymbol[hi]), section)))
{

670
pie-relocate.diff Normal file
View File

@ -0,0 +1,670 @@
--- gdb/Makefile.in
+++ gdb/Makefile.in
@@ -2444,7 +2444,7 @@
$(objfiles_h) $(gdb_stabs_h) $(target_h) $(bcache_h) $(mdebugread_h) \
$(gdb_assert_h) $(gdb_stat_h) $(gdb_obstack_h) $(gdb_string_h) \
$(hashtab_h) $(breakpoint_h) $(block_h) $(dictionary_h) $(source_h) \
- $(parser_defs_h) $(expression_h)
+ $(parser_defs_h) $(expression_h) $(auxv_h) $(elf_common_h)
observer.o: observer.c $(defs_h) $(observer_h) $(command_h) $(gdbcmd_h) \
$(observer_inc)
obsd-tdep.o: obsd-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(obsd_tdep_h)
@@ -2663,9 +2663,9 @@
$(bcache_h) $(regcache_h)
solib-svr4.o: solib-svr4.c $(defs_h) $(elf_external_h) $(elf_common_h) \
$(elf_mips_h) $(symtab_h) $(bfd_h) $(symfile_h) $(objfiles_h) \
- $(gdbcore_h) $(target_h) $(inferior_h) $(gdb_assert_h) \
+ $(gdbcore_h) $(target_h) $(inferior_h) $(command_h) $(gdb_assert_h) \
$(solist_h) $(solib_h) $(solib_svr4_h) $(bfd_target_h) $(elf_bfd_h) \
- $(exec_h)
+ $(exec_h) $(auxv_h)
sol-thread.o: sol-thread.c $(defs_h) $(gdbthread_h) $(target_h) \
$(inferior_h) $(gdb_stat_h) $(gdbcmd_h) $(gdbcore_h) $(regcache_h) \
$(solib_h) $(symfile_h) $(gdb_string_h) $(gregset_h)
@@ -2773,7 +2773,7 @@
$(objfiles_h) $(source_h) $(gdbcmd_h) $(breakpoint_h) $(language_h) \
$(complaints_h) $(demangle_h) $(inferior_h) $(filenames_h) \
$(gdb_stabs_h) $(gdb_obstack_h) $(completer_h) $(bcache_h) \
- $(hashtab_h) $(readline_h) $(gdb_assert_h) $(block_h) \
+ $(hashtab_h) $(readline_h) $(gdb_assert_h) $(block_h) $(varobj_h) \
$(gdb_string_h) $(gdb_stat_h) $(observer_h) $(exec_h) \
$(parser_defs_h)
symfile-mem.o: symfile-mem.c $(defs_h) $(symtab_h) $(gdbcore_h) \
--- gdb/breakpoint.c
+++ gdb/breakpoint.c
@@ -3810,6 +3810,7 @@
printf_filtered ("%s%s ",
((b->enable_state == bp_disabled ||
b->enable_state == bp_shlib_disabled ||
+ b->enable_state == bp_startup_disabled ||
b->enable_state == bp_call_disabled)
? " (disabled)"
: b->enable_state == bp_permanent
@@ -4487,6 +4488,60 @@
}
}
+void
+disable_breakpoints_at_startup (int silent)
+{
+ struct breakpoint *b;
+ int disabled_startup_breaks = 0;
+
+ if (bfd_get_start_address (exec_bfd) != entry_point_address ())
+ {
+ ALL_BREAKPOINTS (b)
+ {
+ if ((b->type == bp_breakpoint
+ || b->type == bp_hardware_breakpoint)
+ && b->enable_state == bp_enabled
+ && !b->loc->duplicate)
+ {
+ b->enable_state = bp_startup_disabled;
+ if (!silent)
+ {
+ if (!disabled_startup_breaks)
+ {
+ target_terminal_ours_for_output ();
+ warning ("Temporarily disabling breakpoints:");
+ }
+ disabled_startup_breaks = 1;
+ warning ("breakpoint #%d addr 0x%s",
+ b->number, paddr_nz (b->loc->address));
+ }
+ }
+ }
+ }
+}
+
+/* Try to reenable any breakpoints after startup. */
+void
+re_enable_breakpoints_at_startup (void)
+{
+ struct breakpoint *b;
+
+ if (bfd_get_start_address (exec_bfd) != entry_point_address ())
+ {
+ ALL_BREAKPOINTS (b)
+ if (b->enable_state == bp_startup_disabled)
+ {
+ gdb_byte buf[1];
+
+ /* Do not reenable the breakpoint if the shared library
+ is still not mapped in. */
+ if (target_read_memory (b->loc->address, buf, 1) == 0)
+ b->enable_state = bp_enabled;
+ }
+ }
+}
+
+
static void
solib_load_unload_1 (char *hookname, int tempflag, char *dll_pathname,
char *cond_string, enum bptype bp_kind)
@@ -6833,6 +6888,7 @@
&& !b->loc->duplicate
&& b->enable_state != bp_disabled
&& b->enable_state != bp_shlib_disabled
+ && b->enable_state != bp_startup_disabled
&& !b->pending
&& b->enable_state != bp_call_disabled)
{
@@ -7048,7 +7104,8 @@
break;
save_enable = b->enable_state;
- if (b->enable_state != bp_shlib_disabled)
+ if (b->enable_state != bp_shlib_disabled
+ && b->enable_state != bp_startup_disabled)
b->enable_state = bp_disabled;
else
/* If resetting a shlib-disabled breakpoint, we don't want to
--- gdb/breakpoint.h
+++ gdb/breakpoint.h
@@ -159,6 +159,7 @@
automatically enabled and reset when the call
"lands" (either completes, or stops at another
eventpoint). */
+ bp_startup_disabled,
bp_permanent /* There is a breakpoint instruction hard-wired into
the target's code. Don't try to write another
breakpoint instruction on top of it, or restore
@@ -794,8 +795,12 @@
extern void disable_breakpoints_in_shlibs (int silent);
+extern void disable_breakpoints_at_startup (int silent);
+
extern void re_enable_breakpoints_in_shlibs (void);
+extern void re_enable_breakpoints_at_startup (void);
+
extern void create_solib_load_event_breakpoint (char *, int, char *, char *);
extern void create_solib_unload_event_breakpoint (char *, int,
--- gdb/dwarf2read.c
+++ gdb/dwarf2read.c
@@ -1221,7 +1221,7 @@
else
dwarf2_per_objfile->loc_buffer = NULL;
- if (mainline
+ if (mainline == 1
|| (objfile->global_psymbols.size == 0
&& objfile->static_psymbols.size == 0))
{
--- gdb/elfread.c
+++ gdb/elfread.c
@@ -556,7 +556,7 @@
/* If we are reinitializing, or if we have never loaded syms yet,
set table to empty. MAINLINE is cleared so that *_read_psymtab
functions do not all also re-initialize the psymbol table. */
- if (mainline)
+ if (mainline == 1)
{
init_psymbol_list (objfile, 0);
mainline = 0;
--- gdb/infrun.c
+++ gdb/infrun.c
@@ -2203,6 +2203,11 @@
code segments in shared libraries might be mapped in now. */
re_enable_breakpoints_in_shlibs ();
+ /* For PIE executables, we dont really know where the
+ breakpoints are going to be until we start up the
+ inferior. */
+ re_enable_breakpoints_at_startup ();
+
/* If requested, stop when the dynamic linker notifies
gdb of events. This allows the user to get control
and place breakpoints in initializer routines for
--- gdb/objfiles.c
+++ gdb/objfiles.c
@@ -49,6 +49,8 @@
#include "block.h"
#include "dictionary.h"
#include "source.h"
+#include "auxv.h"
+#include "elf/common.h"
/* Prototypes for local functions */
@@ -261,7 +263,16 @@
CORE_ADDR
entry_point_address (void)
{
- return symfile_objfile ? symfile_objfile->ei.entry_point : 0;
+ int ret;
+ CORE_ADDR entry_addr;
+
+ /* Find the address of the entry point of the program from the
+ auxv vector. */
+ ret = target_auxv_search (&current_target, AT_ENTRY, &entry_addr);
+ if (ret > 0)
+ return entry_addr;
+ else
+ return symfile_objfile ? symfile_objfile->ei.entry_point : 0;
}
/* Create the terminating entry of OBJFILE's minimal symbol table.
--- gdb/solib-svr4.c
+++ gdb/solib-svr4.c
@@ -34,6 +34,7 @@
#include "gdbcore.h"
#include "target.h"
#include "inferior.h"
+#include "command.h"
#include "gdb_assert.h"
@@ -44,6 +45,7 @@
#include "bfd-target.h"
#include "elf-bfd.h"
#include "exec.h"
+#include "auxv.h"
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
static int svr4_have_link_map_offsets (void);
@@ -278,8 +280,6 @@
/* Local function prototypes */
-static int match_main (char *);
-
static CORE_ADDR bfd_lookup_symbol (bfd *, char *, flagword);
/*
@@ -404,17 +404,29 @@
gdb_byte *buf;
gdb_byte *bufend;
int arch_size;
+ CORE_ADDR relocated_dyninfo_addr, entry_addr;
+ int ret;
+
+ /* Find the address of the entry point of the program from the
+ auxv vector. */
+ ret = target_auxv_search (&current_target, AT_ENTRY, &entry_addr);
+
+ if (ret <= 0)
+ /* No auxv info, maybe an older kernel. Fake our way through. */
+ entry_addr = bfd_get_start_address (exec_bfd);
/* Find the start address of the .dynamic section. */
dyninfo_sect = bfd_get_section_by_name (exec_bfd, ".dynamic");
if (dyninfo_sect == NULL)
return 0;
dyninfo_addr = bfd_section_vma (exec_bfd, dyninfo_sect);
+ relocated_dyninfo_addr
+ = dyninfo_addr + entry_addr - bfd_get_start_address (exec_bfd);
/* Read in .dynamic section, silently ignore errors. */
dyninfo_sect_size = bfd_section_size (exec_bfd, dyninfo_sect);
buf = alloca (dyninfo_sect_size);
- if (target_read_memory (dyninfo_addr, buf, dyninfo_sect_size))
+ if (target_read_memory (relocated_dyninfo_addr, buf, dyninfo_sect_size))
return 0;
/* Find the DT_DEBUG entry in the the .dynamic section.
@@ -763,9 +775,55 @@
does have a name, so we can no longer use a missing name to
decide when to ignore it. */
if (IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
- free_so (new);
+ {
+ /* It is the first link map entry, i.e. it is the main
+ executable. */
+ if (bfd_get_start_address (exec_bfd) == entry_point_address ())
+ {
+ /* Non-pie case, main executable has not been relocated. */
+ free_so (new);
+ }
+ else
+ {
+ /* Pie case, main executable has been relocated. */
+ struct so_list *gdb_solib;
+
+ strncpy (new->so_name, exec_bfd->filename,
+ SO_NAME_MAX_PATH_SIZE - 1);
+ new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
+ strcpy (new->so_original_name, new->so_name);
+ new->main_relocated = 0;
+
+ for (gdb_solib = master_so_list ();
+ gdb_solib != NULL;
+ gdb_solib = gdb_solib->next)
+ if (strcmp (gdb_solib->so_name, new->so_name) == 0
+ && gdb_solib->main_relocated)
+ break;
+
+ if (gdb_solib == NULL)
+ {
+ add_to_target_sections (0 /*from_tty*/, &current_target, new);
+ new->main_p = 1;
+ }
+
+ /* We need this in the list of shared libs we return because
+ solib_add_stub will loop through it and add the symbol
+ file. */
+ new->next = 0;
+ *link_ptr = new;
+ link_ptr = &new->next;
+ }
+ }
else
{
+ /* This is not the first link map entry, i.e. is not the main
+ executable. Note however that it could be the DSO supplied on
+ certain systems (i.e. Linux 2.6) containing information about
+ the vsyscall page. We must ignore such entry. This entry is
+ nameless (just like the one for the main executable,
+ sigh). */
+
int errcode;
char *buffer;
@@ -783,10 +841,8 @@
strcpy (new->so_original_name, new->so_name);
}
- /* If this entry has no name, or its name matches the name
- for the main executable, don't include it in the list. */
- if (! new->so_name[0]
- || match_main (new->so_name))
+ /* If this entry has no name, don't include it in the list. */
+ if (! new->so_name[0])
free_so (new);
else
{
@@ -882,24 +938,6 @@
return 0;
}
-/* On some systems, the only way to recognize the link map entry for
- the main executable file is by looking at its name. Return
- non-zero iff SONAME matches one of the known main executable names. */
-
-static int
-match_main (char *soname)
-{
- char **mainp;
-
- for (mainp = main_name_list; *mainp != NULL; mainp++)
- {
- if (strcmp (soname, *mainp) == 0)
- return (1);
- }
-
- return (0);
-}
-
/* Return 1 if PC lies in the dynamic symbol resolution code of the
SVR4 run time loader. */
static CORE_ADDR interp_text_sect_low;
@@ -1384,6 +1422,8 @@
while (stop_signal != TARGET_SIGNAL_TRAP);
stop_soon = NO_STOP_QUIETLY;
#endif /* defined(_SCO_DS) */
+
+ disable_breakpoints_at_startup (1);
}
static void
--- gdb/solib.c
+++ gdb/solib.c
@@ -396,15 +396,37 @@
/* Have we already loaded this shared object? */
ALL_OBJFILES (so->objfile)
{
- if (strcmp (so->objfile->name, so->so_name) == 0)
+ /* Found an already loaded shared library. */
+ if (strcmp (so->objfile->name, so->so_name) == 0
+ && !so->main_p)
return 1;
+ /* Found an already loaded main executable. This could happen in
+ two circumstances.
+ First case: the main file has already been read in as the first
+ thing that gdb does at startup, and the file hasn't been
+ relocated properly yet. Therefore we need to read it in with the
+ proper section info.
+ Second case: it has been read in with the correct relocation, and
+ therefore we need to skip it. */
+ if (strcmp (so->objfile->name, so->so_name) == 0
+ && so->main_p
+ && so->main_relocated)
+ return 1;
}
sap = build_section_addr_info_from_section_table (so->sections,
so->sections_end);
- so->objfile = symbol_file_add (so->so_name, so->from_tty,
- sap, 0, OBJF_SHARED);
+ if (so->main_p)
+ {
+ so->objfile = symbol_file_add (so->so_name, /*so->from_tty*/ 0,
+ sap, 1, 0);
+ so->main_relocated = 1;
+ }
+ else
+ so->objfile = symbol_file_add (so->so_name, so->from_tty,
+ sap, 0, OBJF_SHARED);
+
free_section_addr_info (sap);
return (1);
@@ -585,28 +607,7 @@
/* Fill in the rest of each of the `struct so_list' nodes. */
for (i = inferior; i; i = i->next)
{
- i->from_tty = from_tty;
-
- /* Fill in the rest of the `struct so_list' node. */
- catch_errors (solib_map_sections, i,
- "Error while mapping shared library sections:\n",
- RETURN_MASK_ALL);
-
- /* If requested, add the shared object's sections to the TARGET's
- section table. Do this immediately after mapping the object so
- that later nodes in the list can query this object, as is needed
- in solib-osf.c. */
- if (target)
- {
- int count = (i->sections_end - i->sections);
- if (count > 0)
- {
- int space = target_resize_to_sections (target, count);
- memcpy (target->to_sections + space,
- i->sections,
- count * sizeof (i->sections[0]));
- }
- }
+ add_to_target_sections (from_tty, target, i);
/* Notify any observer that the shared object has been
loaded now that we've added it to GDB's tables. */
@@ -702,6 +703,39 @@
}
}
+void
+add_to_target_sections (int from_tty, struct target_ops *target,
+ struct so_list *solib)
+{
+ /* If this is set, then the sections have been already added to the
+ target list. */
+ if (solib->main_p)
+ return;
+
+ solib->from_tty = from_tty;
+
+ /* Fill in the rest of the `struct so_list' node. */
+ catch_errors (solib_map_sections, solib,
+ "Error while mapping shared library sections:\n",
+ RETURN_MASK_ALL);
+
+ /* If requested, add the shared object's sections to the TARGET's
+ section table. Do this immediately after mapping the object so
+ that later nodes in the list can query this object, as is needed
+ in solib-osf.c. */
+ if (target)
+ {
+ int count = solib->sections_end - solib->sections;
+ if (count > 0)
+ {
+ int space = target_resize_to_sections (target, count);
+ memcpy (target->to_sections + space,
+ solib->sections,
+ count * sizeof (solib->sections[0]));
+ }
+ }
+}
+
/*
--- gdb/solist.h
+++ gdb/solist.h
@@ -62,6 +62,8 @@
bfd *abfd;
char symbols_loaded; /* flag: symbols read in yet? */
char from_tty; /* flag: print msgs? */
+ char main_p; /* flag: is this the main executable? */
+ char main_relocated; /* flag: has it been relocated yet? */
struct objfile *objfile; /* objfile for loaded lib */
struct section_table *sections;
struct section_table *sections_end;
@@ -116,6 +118,10 @@
/* Find solib binary file and open it. */
extern int solib_open (char *in_pathname, char **found_pathname);
+/* Add the list of sections in so_list to the target to_sections. */
+extern void add_to_target_sections (int, struct target_ops *,
+ struct so_list *);
+
/* FIXME: gdbarch needs to control this variable */
extern struct target_so_ops *current_target_so_ops;
--- gdb/symfile-mem.c
+++ gdb/symfile-mem.c
@@ -110,7 +110,7 @@
}
objf = symbol_file_add_from_bfd (nbfd, from_tty,
- sai, 0, OBJF_SHARED);
+ sai, 2, OBJF_SHARED);
/* This might change our ideas about frames already looked at. */
reinit_frame_cache ();
--- gdb/symfile.c
+++ gdb/symfile.c
@@ -49,6 +49,7 @@
#include "readline/readline.h"
#include "gdb_assert.h"
#include "block.h"
+#include "varobj.h"
#include "observer.h"
#include "exec.h"
#include "parser-defs.h"
@@ -660,7 +661,7 @@
/* Now either addrs or offsets is non-zero. */
- if (mainline)
+ if (mainline == 1)
{
/* We will modify the main symbol table, make sure that all its users
will be cleaned up if an error occurs during symbol reading. */
@@ -688,7 +689,7 @@
We no longer warn if the lowest section is not a text segment (as
happens for the PA64 port. */
- if (!mainline && addrs && addrs->other[0].name)
+ if (addrs && addrs->other[0].name)
{
asection *lower_sect;
asection *sect;
@@ -857,14 +858,14 @@
/* If this is the main symbol file we have to clean up all users of the
old main symbol file. Otherwise it is sufficient to fixup all the
breakpoints that may have been redefined by this symbol file. */
- if (mainline)
+ if (mainline == 1)
{
/* OK, make it the "real" symbol file. */
symfile_objfile = objfile;
clear_symtab_users ();
}
- else
+ else if (mainline == 0)
{
breakpoint_re_set ();
}
@@ -910,7 +911,7 @@
interactively wiping out any existing symbols. */
if ((have_full_symbols () || have_partial_symbols ())
- && mainline
+ && mainline == 1
&& from_tty
&& !query ("Load new symbol table from \"%s\"? ", name))
error (_("Not confirmed."));
@@ -1091,6 +1092,11 @@
symfile_objfile->name)
: !query (_("Discard symbol table? "))))
error (_("Not confirmed."));
+
+#ifdef CLEAR_SOLIB
+ CLEAR_SOLIB ();
+#endif
+
free_all_objfiles ();
/* solib descriptors may have handles to objfiles. Since their
@@ -2205,6 +2211,8 @@
/* Discard cleanups as symbol reading was successful. */
discard_cleanups (old_cleanups);
+ init_entry_point_info (objfile);
+
/* If the mtime has changed between the time we set new_modtime
and now, we *want* this to be out of date, so don't call stat
again now. */
@@ -2580,6 +2588,7 @@
clear_pc_function_cache ();
if (deprecated_target_new_objfile_hook)
deprecated_target_new_objfile_hook (NULL);
+ varobj_refresh ();
/* Clear globals which might have pointed into a removed objfile.
FIXME: It's not clear which of these are supposed to persist
--- gdb/varobj.c
+++ gdb/varobj.c
@@ -870,6 +870,58 @@
return rootcount;
}
+void
+varobj_refresh (void)
+{
+ struct varobj *var;
+ struct varobj_root *croot;
+ int mycount = rootcount;
+ char * name;
+
+ croot = rootlist;
+ while (croot != NULL && mycount > 0)
+ {
+ var = croot->rootvar;
+
+ /* Get rid of the memory for the old expression. This also leaves
+ var->root->exp == NULL, which is ok for the parsing below. */
+ free_current_contents (&var->root->exp);
+
+ value_free (var->value);
+ var->type = NULL;
+
+ name = xstrdup (var->name);
+
+ /* Reparse the expression. Wrap the call to parse expression, so we
+ can return a sensible error. */
+ if (!gdb_parse_exp_1 (&name, var->root->valid_block, 0, &var->root->exp))
+ return;
+
+ /* We definitively need to catch errors here. If
+ evaluate_expression succeeds we got the value we wanted. But if
+ it fails, we still go on with a call to evaluate_type. */
+ if (gdb_evaluate_expression (var->root->exp, &var->value))
+ {
+ /* no error */
+ release_value (var->value);
+ if (value_lazy (var->value))
+ gdb_value_fetch_lazy (var->value);
+ }
+ else
+ var->value = evaluate_type (var->root->exp);
+
+ var->type = value_type (var->value);
+
+ mycount--;
+ croot = croot->next;
+ }
+
+ if (mycount || croot != NULL)
+ warning
+ ("varobj_refresh: assertion failed - wrong tally of root vars (%d:%d)",
+ rootcount, mycount);
+}
+
/* Update the values for a variable and its children. This is a
two-pronged attack. First, re-parse the value for the root's
expression to see if it's changed. Then go all the way
--- gdb/varobj.h
+++ gdb/varobj.h
@@ -99,4 +99,6 @@
extern int varobj_update (struct varobj **varp, struct varobj ***changelist);
+extern void varobj_refresh (void);
+
#endif /* VAROBJ_H */

73
ppc-dwarf2-cfi.patch Normal file
View File

@ -0,0 +1,73 @@
--- gdb/Makefile.in
+++ gdb/Makefile.in
@@ -2538,7 +2538,7 @@
$(reggroups_h) $(libbfd_h) $(coff_internal_h) $(libcoff_h) \
$(coff_xcoff_h) $(libxcoff_h) $(elf_bfd_h) $(solib_svr4_h) \
$(ppc_tdep_h) $(gdb_assert_h) $(dis_asm_h) $(trad_frame_h) \
- $(frame_unwind_h) $(frame_base_h) $(rs6000_tdep_h)
+ $(frame_unwind_h) $(frame_base_h) $(rs6000_tdep_h) $(dwarf2_frame_h)
rs6000-aix-tdep.o: rs6000-aix-tdep.c $(defs_h) $(osabi_h) $(rs6000_tdep_h)
s390-nat.o: s390-nat.c $(defs_h) $(tm_h) $(regcache_h) $(inferior_h) \
$(s390_tdep_h) $(target_h) $(linux_nat_h)
--- gdb/rs6000-tdep.c
+++ gdb/rs6000-tdep.c
@@ -40,6 +40,7 @@
#include "sim-regno.h"
#include "gdb/sim-ppc.h"
#include "reggroups.h"
+#include "dwarf2-frame.h"
#include "libbfd.h" /* for bfd_default_set_arch_mach */
#include "coff/internal.h" /* for libcoff.h */
@@ -2243,6 +2244,40 @@
}
+/* Convert a .eh_frame register number to a Dwarf 2 register number. */
+static int
+rs6000_eh_frame_regnum (struct gdbarch *gdbarch, int num)
+{
+ if (0 <= num && num <= 63) /* r0-r31,fp0-fp31 */
+ return num;
+ else if (68 <= num && num <= 75) /* cr0-cr8 */
+ return num - 68 + 86;
+ else if (77 <= num && num <= 108) /* vr0-vr31 */
+ return num - 77 + 1124;
+ else
+ switch (num)
+ {
+ case 64: /* mq */
+ return 100;
+ case 65: /* lr */
+ return 108;
+ case 66: /* ctr */
+ return 109;
+ case 76: /* xer */
+ return 101;
+ case 109: /* vrsave */
+ return 356;
+ case 110: /* vscr */
+ return 67;
+ case 111: /* spe_acc */
+ return 99;
+ case 112: /* spefscr */
+ return 612;
+ default:
+ return num;
+ }
+}
+
static void
rs6000_store_return_value (struct type *type,
struct regcache *regcache,
@@ -3461,6 +3496,10 @@
/* Helpers for function argument information. */
set_gdbarch_fetch_pointer_argument (gdbarch, rs6000_fetch_pointer_argument);
+ /* Hook in the DWARF CFI frame unwinder. */
+ frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
+ dwarf2_frame_set_eh_frame_regnum (gdbarch, rs6000_eh_frame_regnum);
+
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);

18
ppc-long-double.diff Normal file
View File

@ -0,0 +1,18 @@
--- gdb/ppc-linux-tdep.c
+++ gdb/ppc-linux-tdep.c
@@ -1065,6 +1065,7 @@
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+#if 0
/* NOTE: jimb/2004-03-26: The System V ABI PowerPC Processor
Supplement says that long doubles are sixteen bytes long.
However, as one of the known warts of its ABI, PPC GNU/Linux uses
@@ -1074,6 +1075,7 @@
double' on PPC GNU/Linux are non-conformant. */
/* NOTE: cagney/2005-01-25: True for both 32- and 64-bit. */
set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
+#endif
if (tdep->wordsize == 4)
{

16
ppc64-fdesc.diff Normal file
View File

@ -0,0 +1,16 @@
--- gdb/ppc-linux-tdep.c
+++ gdb/ppc-linux-tdep.c
@@ -757,7 +757,12 @@
/* Check if ADDR points to a function descriptor. */
if (s && strcmp (s->the_bfd_section->name, ".opd") == 0)
- return get_target_memory_unsigned (targ, addr, 8);
+ {
+ gdb_byte buf[8];
+
+ if (target_read_memory (addr, buf, 8) == 0)
+ return extract_unsigned_integer (buf, 8);
+ }
return addr;
}

14
readline-5.1-random.patch Normal file
View File

@ -0,0 +1,14 @@
--- readline/misc.c
+++ readline/misc.c 2005-12-09 18:12:24.000000000 +0100
@@ -210,8 +210,10 @@
r = _rl_arg_dispatch (_rl_argcxt, c);
if (r <= 0 || (RL_ISSTATE (RL_STATE_NUMERICARG) == 0))
- break;
+ return r;
}
+
+ return 1;
}
/* Create a default argument. */

62
readnever.patch Normal file
View File

@ -0,0 +1,62 @@
2004-11-18 Andrew Cagney <cagney@gnu.org>
* dwarf2read.c: Include "top.c".
(dwarf2_has_info): Check for readnever_symbol_files.
* symfile.c (readnever_symbol_files): Define.
* top.h (readnever_symbol_files): Declare.
* main.c (captured_main): Add --readnever option.
diff -ur ../gdb+dejagnu-20040607/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- ../gdb+dejagnu-20040607/gdb/dwarf2read.c 2004-11-18 18:38:25.841030736 -0500
+++ ./gdb/dwarf2read.c 2004-11-18 13:39:45.516334184 -0500
@@ -45,6 +45,7 @@
#include "hashtab.h"
#include "command.h"
#include "gdbcmd.h"
+#include "top.h"
#include <fcntl.h>
#include "gdb_string.h"
@@ -984,7 +985,8 @@
dwarf_loc_section = 0;
bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, NULL);
- return (dwarf_info_section != NULL && dwarf_abbrev_section != NULL);
+ return (!readnever_symbol_files
+ && dwarf_info_section != NULL && dwarf_abbrev_section != NULL);
}
/* This function is mapped across the sections and remembers the
diff -ur ../gdb+dejagnu-20040607/gdb/main.c ./gdb/main.c
--- ../gdb+dejagnu-20040607/gdb/main.c 2004-04-21 19:52:20.000000000 -0400
+++ ./gdb/main.c 2004-11-18 13:07:30.000000000 -0500
@@ -261,6 +261,7 @@
{"xdb", no_argument, &xdb_commands, 1},
{"dbx", no_argument, &dbx_commands, 1},
{"readnow", no_argument, &readnow_symbol_files, 1},
+ {"readnever", no_argument, &readnever_symbol_files, 1},
{"r", no_argument, &readnow_symbol_files, 1},
{"quiet", no_argument, &quiet, 1},
{"q", no_argument, &quiet, 1},
diff -ur ../gdb+dejagnu-20040607/gdb/symfile.c ./gdb/symfile.c
--- ../gdb+dejagnu-20040607/gdb/symfile.c 2004-11-18 18:38:25.352105064 -0500
+++ ./gdb/symfile.c 2004-11-18 13:19:05.000000000 -0500
@@ -87,6 +87,7 @@
/* Global variables owned by this file */
int readnow_symbol_files; /* Read full symbols immediately */
+int readnever_symbol_files; /* Never read full symbols. */
/* External variables and functions referenced. */
diff -ur ../gdb+dejagnu-20040607/gdb/top.h ./gdb/top.h
--- ../gdb+dejagnu-20040607/gdb/top.h 2004-01-19 14:56:02.000000000 -0500
+++ ./gdb/top.h 2004-11-18 13:08:11.000000000 -0500
@@ -57,6 +57,7 @@
/* From random places. */
extern int readnow_symbol_files;
+extern int readnever_symbol_files;
/* Perform _initialize initialization */
extern void gdb_init (char *);

0
ready Normal file
View File

View File

@ -0,0 +1,28 @@
--- gdb/solib-svr4.c
+++ gdb/solib-svr4.c
@@ -131,9 +131,9 @@
{
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
- return (CORE_ADDR) extract_signed_integer (so->lm_info->lm
- + lmo->l_addr_offset,
- lmo->l_addr_size);
+ return (CORE_ADDR) extract_unsigned_integer (so->lm_info->lm
+ + lmo->l_addr_offset,
+ lmo->l_addr_size);
}
static int
@@ -151,9 +151,9 @@
gdb_assert (lmo->l_ld_size != 0);
- return (CORE_ADDR) extract_signed_integer (so->lm_info->lm
- + lmo->l_ld_offset,
- lmo->l_ld_size);
+ return (CORE_ADDR) extract_unsigned_integer (so->lm_info->lm
+ + lmo->l_ld_offset,
+ lmo->l_ld_size);
}
static CORE_ADDR

633
warn.patch Normal file
View File

@ -0,0 +1,633 @@
--- gdb/remote.c
+++ gdb/remote.c
@@ -966,8 +966,8 @@
static int use_threadextra_query;
/* Tokens for use by the asynchronous signal handlers for SIGINT. */
-static void *sigint_remote_twice_token;
-static void *sigint_remote_token;
+static struct async_signal_handler *sigint_remote_twice_token;
+static struct async_signal_handler *sigint_remote_token;
/* These are pointers to hook functions that may be set in order to
modify resume/wait behavior for a particular architecture. */
@@ -2843,11 +2843,9 @@
{
signal (SIGINT, handle_sigint);
if (sigint_remote_twice_token)
- delete_async_signal_handler ((struct async_signal_handler **)
- &sigint_remote_twice_token);
+ delete_async_signal_handler (&sigint_remote_twice_token);
if (sigint_remote_token)
- delete_async_signal_handler ((struct async_signal_handler **)
- &sigint_remote_token);
+ delete_async_signal_handler (&sigint_remote_token);
}
/* Send ^C to target to halt it. Target will respond, and send us a
--- gdb/tui/tui-layout.c
+++ gdb/tui/tui-layout.c
@@ -47,7 +47,7 @@
********************************/
static void show_layout (enum tui_layout_type);
static void init_gen_win_info (struct tui_gen_win_info *, enum tui_win_type, int, int, int, int);
-static void init_and_make_win (void **, enum tui_win_type, int, int, int, int, int);
+static void init_and_make_win (struct tui_gen_win_info **, enum tui_win_type, int, int, int, int, int);
static void show_source_or_disasm_and_command (enum tui_layout_type);
static void make_source_or_disasm_window (struct tui_win_info * *, enum tui_win_type, int, int);
static void make_command_window (struct tui_win_info * *, int, int);
@@ -640,13 +640,13 @@
static void
make_command_window (struct tui_win_info * * win_info_ptr, int height, int origin_y)
{
- init_and_make_win ((void **) win_info_ptr,
- CMD_WIN,
- height,
- tui_term_width (),
- 0,
- origin_y,
- DONT_BOX_WINDOW);
+ init_and_make_win ((struct tui_gen_win_info **) win_info_ptr,
+ CMD_WIN,
+ height,
+ tui_term_width (),
+ 0,
+ origin_y,
+ DONT_BOX_WINDOW);
(*win_info_ptr)->can_highlight = FALSE;
}
@@ -679,13 +679,13 @@
static void
make_data_window (struct tui_win_info * * win_info_ptr, int height, int origin_y)
{
- init_and_make_win ((void **) win_info_ptr,
- DATA_WIN,
- height,
- tui_term_width (),
- 0,
- origin_y,
- BOX_WINDOW);
+ init_and_make_win ((struct tui_gen_win_info **) win_info_ptr,
+ DATA_WIN,
+ height,
+ tui_term_width (),
+ 0,
+ origin_y,
+ BOX_WINDOW);
}
@@ -751,13 +751,13 @@
if (TUI_DISASM_WIN == NULL)
{
make_disasm_window (&TUI_DISASM_WIN, asm_height, src_height - 1);
- init_and_make_win ((void **) & locator,
- LOCATOR_WIN,
- 2 /* 1 */ ,
- tui_term_width (),
- 0,
- (src_height + asm_height) - 1,
- DONT_BOX_WINDOW);
+ init_and_make_win (&locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ (src_height + asm_height) - 1,
+ DONT_BOX_WINDOW);
}
else
{
@@ -844,13 +844,13 @@
make_source_window (&tui_win_list[win_type], src_height, data_height - 1);
else
make_disasm_window (&tui_win_list[win_type], src_height, data_height - 1);
- init_and_make_win ((void **) & locator,
- LOCATOR_WIN,
- 2 /* 1 */ ,
- tui_term_width (),
- 0,
- total_height - 1,
- DONT_BOX_WINDOW);
+ init_and_make_win (&locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ total_height - 1,
+ DONT_BOX_WINDOW);
}
else
{
@@ -912,37 +912,25 @@
** init_and_make_win().
*/
static void
-init_and_make_win (void ** win_info_ptr, enum tui_win_type win_type,
- int height, int width, int origin_x, int origin_y, int box_it)
+init_and_make_win (struct tui_gen_win_info **win_info_ptr,
+ enum tui_win_type win_type, int height, int width,
+ int origin_x, int origin_y, int box_it)
{
- void *opaque_win_info = *win_info_ptr;
- struct tui_gen_win_info * generic;
+ struct tui_gen_win_info *generic = *win_info_ptr;
- if (opaque_win_info == NULL)
+ if (generic == NULL)
{
if (tui_win_is_auxillary (win_type))
- opaque_win_info = (void *) tui_alloc_generic_win_info ();
+ generic = tui_alloc_generic_win_info ();
else
- opaque_win_info = (void *) tui_alloc_win_info (win_type);
- }
- if (tui_win_is_auxillary (win_type))
- generic = (struct tui_gen_win_info *) opaque_win_info;
- else
- generic = &((struct tui_win_info *) opaque_win_info)->generic;
-
- if (opaque_win_info != NULL)
- {
- init_gen_win_info (generic, win_type, height, width, origin_x, origin_y);
- if (!tui_win_is_auxillary (win_type))
- {
- if (generic->type == CMD_WIN)
- ((struct tui_win_info *) opaque_win_info)->can_highlight = FALSE;
- else
- ((struct tui_win_info *) opaque_win_info)->can_highlight = TRUE;
- }
- tui_make_window (generic, box_it);
+ generic = &tui_alloc_win_info (win_type)->generic;
+ *win_info_ptr = generic;
}
- *win_info_ptr = opaque_win_info;
+ init_gen_win_info (generic, win_type, height, width, origin_x, origin_y);
+ if (!tui_win_is_auxillary (win_type))
+ ((struct tui_win_info *) generic)->can_highlight
+ = generic->type != CMD_WIN;
+ tui_make_window (generic, box_it);
}
@@ -959,23 +947,23 @@
execution_info = tui_source_exec_info_win_ptr ();
else
execution_info = tui_disassem_exec_info_win_ptr ();
- init_and_make_win ((void **) & execution_info,
- EXEC_INFO_WIN,
- height,
- 3,
- 0,
- origin_y,
- DONT_BOX_WINDOW);
+ init_and_make_win (&execution_info,
+ EXEC_INFO_WIN,
+ height,
+ 3,
+ 0,
+ origin_y,
+ DONT_BOX_WINDOW);
/*
** Now create the source window.
*/
- init_and_make_win ((void **) win_info_ptr,
- type,
- height,
- tui_term_width () - execution_info->width,
- execution_info->width,
- origin_y,
- BOX_WINDOW);
+ init_and_make_win ((struct tui_gen_win_info **) win_info_ptr,
+ type,
+ height,
+ tui_term_width () - execution_info->width,
+ execution_info->width,
+ origin_y,
+ BOX_WINDOW);
(*win_info_ptr)->detail.source_info.execution_info = execution_info;
}
@@ -1009,13 +997,13 @@
make_source_window (win_info_ptr, src_height - 1, 0);
else
make_disasm_window (win_info_ptr, src_height - 1, 0);
- init_and_make_win ((void **) & locator,
- LOCATOR_WIN,
- 2 /* 1 */ ,
- tui_term_width (),
- 0,
- src_height - 1,
- DONT_BOX_WINDOW);
+ init_and_make_win (&locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ src_height - 1,
+ DONT_BOX_WINDOW);
}
else
{
--- sim/common/gentmap.c
+++ sim/common/gentmap.c
@@ -2,6 +2,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
struct tdefs {
char *symbol;
--- sim/ppc/debug.c
+++ sim/ppc/debug.c
@@ -29,6 +29,10 @@
#include <stdlib.h>
#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
int ppc_trace[nr_trace_options];
typedef struct _trace_option_descriptor {
--- sim/ppc/ppc-instructions
+++ sim/ppc/ppc-instructions
@@ -3958,7 +3958,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 2, 4, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- double product; /*HACK! - incorrectly loosing precision ... */
+ union { double d; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -3966,7 +3966,7 @@
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -3974,16 +3974,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.d = *(double*)frA * *(double*)frC;
}
/* compute the add */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.d, *frB,
fpscr_vxsnan | fpscr_vxisi,
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.d, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -3991,7 +3991,7 @@
}
else {
/*HACK!*/
- double s = product + *(double*)frB;
+ double s = product.d + *(double*)frB;
*(double*)frT = s;
}
FPSCR_END(Rc);
@@ -4003,7 +4003,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- float product; /*HACK! - incorrectly loosing precision ... */
+ union { float f; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4011,7 +4011,7 @@
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4019,16 +4019,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.f = *(double*)frA * *(double*)frC;
}
/* compute the add */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.f, *frB,
fpscr_vxsnan | fpscr_vxisi,
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.f, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4036,7 +4036,7 @@
}
else {
/*HACK!*/
- float s = product + *(double*)frB;
+ float s = product.f + *(double*)frB;
*(double*)frT = (double)s;
}
FPSCR_END(Rc);
@@ -4048,7 +4048,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 2, 4, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- double product; /*HACK! - incorrectly loosing precision ... */
+ union { double d; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4056,7 +4056,7 @@
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4064,16 +4064,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.d = *(double*)frA * *(double*)frC;
}
/* compute the subtract */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.d, *frB,
fpscr_vxsnan | fpscr_vxisi,
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.d, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4081,7 +4081,7 @@
}
else {
/*HACK!*/
- double s = product - *(double*)frB;
+ double s = product.d - *(double*)frB;
*(double*)frT = s;
}
FPSCR_END(Rc);
@@ -4093,7 +4093,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- float product; /*HACK! - incorrectly loosing precision ... */
+ union { float f; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4101,7 +4101,7 @@
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4109,16 +4109,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.f = *(double*)frA * *(double*)frC;
}
/* compute the subtract */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.f, *frB,
fpscr_vxsnan | fpscr_vxisi,
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.f, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4126,7 +4126,7 @@
}
else {
/*HACK!*/
- float s = product - *(double*)frB;
+ float s = product.f - *(double*)frB;
*(double*)frT = (double)s;
}
FPSCR_END(Rc);
@@ -4138,7 +4138,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 2, 4, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- double product; /*HACK! - incorrectly loosing precision ... */
+ union { double d; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4146,7 +4146,7 @@
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4154,16 +4154,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.d = *(double*)frA * *(double*)frC;
}
/* compute the add */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.d, *frB,
fpscr_vxsnan | fpscr_vxisi,
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.d, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4171,7 +4171,7 @@
}
else {
/*HACK!*/
- double s = -(product + *(double*)frB);
+ double s = -(product.d + *(double*)frB);
*(double*)frT = s;
}
FPSCR_END(Rc);
@@ -4183,7 +4183,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- float product; /*HACK! - incorrectly loosing precision ... */
+ union { float f; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4191,7 +4191,7 @@
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4199,16 +4199,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.f = *(double*)frA * *(double*)frC;
}
/* compute the add */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.f, *frB,
fpscr_vxsnan | fpscr_vxisi,
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.f, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4216,7 +4216,7 @@
}
else {
/*HACK!*/
- float s = -(product + *(double*)frB);
+ float s = -(product.f + *(double*)frB);
*(double*)frT = (double)s;
}
FPSCR_END(Rc);
@@ -4228,7 +4228,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 2, 4, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- double product; /*HACK! - incorrectly loosing precision ... */
+ union { double d; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4236,7 +4236,7 @@
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4244,16 +4244,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.d = *(double*)frA * *(double*)frC;
}
/* compute the subtract */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.d, *frB,
fpscr_vxsnan | fpscr_vxisi,
0, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.d, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4261,7 +4261,7 @@
}
else {
/*HACK!*/
- double s = -(product - *(double*)frB);
+ double s = -(product.d - *(double*)frB);
*(double*)frT = s;
}
FPSCR_END(Rc);
@@ -4273,7 +4273,7 @@
*603e:PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
*604: PPC_UNIT_FPU, PPC_UNIT_FPU, 1, 3, 0
FPSCR_BEGIN;
- float product; /*HACK! - incorrectly loosing precision ... */
+ union { float f; unsigned64 u; } product; /*HACK! - incorrectly loosing precision ... */
/* compute the multiply */
if (is_invalid_operation(processor, cia,
*frA, *frC,
@@ -4281,7 +4281,7 @@
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &product.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4289,16 +4289,16 @@
}
else {
/*HACK!*/
- product = *(double*)frA * *(double*)frC;
+ product.f = *(double*)frA * *(double*)frC;
}
/* compute the subtract */
if (is_invalid_operation(processor, cia,
- product, *frB,
+ product.f, *frB,
fpscr_vxsnan | fpscr_vxisi,
1, /*single?*/
0) /*negate?*/) {
invalid_arithemetic_operation(processor, cia,
- frT, product, *frB, 0,
+ frT, product.f, *frB, 0,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
@@ -4306,7 +4306,7 @@
}
else {
/*HACK!*/
- float s = -(product - *(double*)frB);
+ float s = -(product.f - *(double*)frB);
*(double*)frT = (double)s;
}
FPSCR_END(Rc);