This commit is contained in:
commit
783af9b5d3
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal 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
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
3
gdb-6.5.90.tar.bz2
Normal file
3
gdb-6.5.90.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9d91c33d75efff84aae332f1f6aff0683f8fa0eae4a81638084eeef542f31a2d
|
||||
size 14533897
|
14
gdb-misc.patch
Normal file
14
gdb-misc.patch
Normal 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
791
gdb.changes
Normal 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
504
gdb.spec
Normal 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
89
gstack.patch
Normal 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
86
loader_break.diff
Normal 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
49
lr-frame-offset.diff
Normal 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
11
mst-solib-trampoline.diff
Normal 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
670
pie-relocate.diff
Normal 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 (¤t_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 (¤t_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*/, ¤t_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
73
ppc-dwarf2-cfi.patch
Normal 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
18
ppc-long-double.diff
Normal 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
16
ppc64-fdesc.diff
Normal 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
14
readline-5.1-random.patch
Normal 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
62
readnever.patch
Normal 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 *);
|
28
solib-extract-address.diff
Normal file
28
solib-extract-address.diff
Normal 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
633
warn.patch
Normal 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);
|
Loading…
x
Reference in New Issue
Block a user