gdb: Add modifications required for version 7.6.1
authorJohn Marino <draco@marino.st>
Sat, 5 Oct 2013 17:29:29 +0000 (19:29 +0200)
committerJohn Marino <draco@marino.st>
Sat, 5 Oct 2013 22:52:54 +0000 (00:52 +0200)
THe majority of these modifications (the 4 "dfly" files and osabi.c)
are needed just to get the stock gdb to build.  The modification to
inferior.c was reintroduced so kgdb can handle the 0 PID swapper
process, but the modication is much less than with version 7.4.1.
The change to the ptid_t structure (ptid.h) was necessary because
kgdb uses the thread address as the thread id, so the type has to
cover the entire address space.

The DragonFly README files were also updated.

contrib/gdb-7/README.DELETED
contrib/gdb-7/README.DRAGONFLY
contrib/gdb-7/gdb/amd64dfly-nat.c
contrib/gdb-7/gdb/amd64dfly-tdep.c
contrib/gdb-7/gdb/common/ptid.h
contrib/gdb-7/gdb/i386dfly-nat.c
contrib/gdb-7/gdb/i386dfly-tdep.c
contrib/gdb-7/gdb/inferior.c
contrib/gdb-7/gdb/osabi.c

index 3591c91..3d28cb1 100644 (file)
@@ -15,6 +15,8 @@ bfd/ChangeLog-2007
 bfd/ChangeLog-2008
 bfd/ChangeLog-2009
 bfd/ChangeLog-2010
+bfd/ChangeLog-2011
+bfd/ChangeLog-2012
 bfd/ChangeLog-9193
 bfd/ChangeLog-9495
 bfd/ChangeLog-9697
@@ -87,6 +89,7 @@ bfd/configure
 bfd/configure.com
 bfd/configure.host
 bfd/configure.in
+bfd/cpu-aarch64.c
 bfd/cpu-alpha.c
 bfd/cpu-arc.c
 bfd/cpu-arm.c
@@ -122,14 +125,18 @@ bfd/cpu-m68hc11.c
 bfd/cpu-m68hc12.c
 bfd/cpu-m68k.c
 bfd/cpu-m88k.c
+bfd/cpu-m9s12x.c
+bfd/cpu-m9s12xg.c
 bfd/cpu-mcore.c
 bfd/cpu-mep.c
+bfd/cpu-metag.c
 bfd/cpu-microblaze.c
 bfd/cpu-mips.c
 bfd/cpu-mmix.c
 bfd/cpu-moxie.c
 bfd/cpu-msp430.c
 bfd/cpu-mt.c
+bfd/cpu-nios2.c
 bfd/cpu-ns32k.c
 bfd/cpu-openrisc.c
 bfd/cpu-or32.c
@@ -153,10 +160,12 @@ bfd/cpu-tic80.c
 bfd/cpu-tilegx.c
 bfd/cpu-tilepro.c
 bfd/cpu-v850.c
+bfd/cpu-v850_rh850.c
 bfd/cpu-vax.c
 bfd/cpu-w65.c
 bfd/cpu-we32k.c
 bfd/cpu-xc16x.c
+bfd/cpu-xgate.c
 bfd/cpu-xstormy16.c
 bfd/cpu-xtensa.c
 bfd/cpu-z80.c
@@ -170,6 +179,7 @@ bfd/ecoffswap.h
 bfd/elf-hppa.h
 bfd/elf-m10200.c
 bfd/elf-m10300.c
+bfd/elf-s390-common.c
 bfd/elf32-am33lin.c
 bfd/elf32-arc.c
 bfd/elf32-arm.c
@@ -205,11 +215,14 @@ bfd/elf32-m68k.c
 bfd/elf32-m88k.c
 bfd/elf32-mcore.c
 bfd/elf32-mep.c
+bfd/elf32-metag.c
+bfd/elf32-metag.h
 bfd/elf32-microblaze.c
 bfd/elf32-mips.c
 bfd/elf32-moxie.c
 bfd/elf32-msp430.c
 bfd/elf32-mt.c
+bfd/elf32-nios2.c
 bfd/elf32-openrisc.c
 bfd/elf32-or32.c
 bfd/elf32-pj.c
@@ -239,11 +252,15 @@ bfd/elf32-tilepro.h
 bfd/elf32-v850.c
 bfd/elf32-vax.c
 bfd/elf32-xc16x.c
+bfd/elf32-xgate.c
+bfd/elf32-xgate.h
 bfd/elf32-xstormy16.c
 bfd/elf32-xtensa.c
+bfd/elf64-aarch64.c
 bfd/elf64-alpha.c
 bfd/elf64-hppa.c
 bfd/elf64-hppa.h
+bfd/elf64-ia64-vms.c
 bfd/elf64-mips.c
 bfd/elf64-mmix.c
 bfd/elf64-ppc.c
@@ -253,8 +270,8 @@ bfd/elf64-sh64.c
 bfd/elf64-sparc.c
 bfd/elf64-tilegx.c
 bfd/elf64-tilegx.h
-bfd/elfnn-ia64.c
 bfd/elfn32-mips.c
+bfd/elfnn-ia64.c
 bfd/elfxx-ia64.c
 bfd/elfxx-ia64.h
 bfd/elfxx-mips.c
@@ -394,6 +411,7 @@ cpu/
 depcomp
 djunpack.bat
 etc/
+gdb/.dir-locals.el
 gdb/.gitignore
 gdb/CONTRIBUTE
 gdb/ChangeLog
@@ -418,14 +436,22 @@ gdb/ChangeLog-2007
 gdb/ChangeLog-2008
 gdb/ChangeLog-2009
 gdb/ChangeLog-2010
+gdb/ChangeLog-2011
+gdb/ChangeLog-2012
 gdb/ChangeLog-3.x
 gdb/MAINTAINERS
 gdb/Makefile.in
 gdb/NEWS
+gdb/aarch64-linux-nat.c
+gdb/aarch64-linux-tdep.c
+gdb/aarch64-linux-tdep.h
+gdb/aarch64-newlib-tdep.c
+gdb/aarch64-tdep.c
+gdb/aarch64-tdep.h
 gdb/acinclude.m4
 gdb/aclocal.m4
-gdb/ada-exp.c
 gdb/ada-lex.l
+gdb/acx_configure_dir.m4
 gdb/aix-thread.c
 gdb/alpha-linux-nat.c
 gdb/alpha-linux-tdep.c
@@ -511,8 +537,8 @@ gdb/config/sparc/
 gdb/config/vax/
 gdb/config/xtensa/
 gdb/configure
+gdb/contrib
 gdb/copying.awk
-gdb/copyright.sh
 gdb/core-regset.c
 gdb/cp-name-parser.c
 gdb/cris-tdep.c
@@ -534,6 +560,7 @@ gdb/doc/gdb.info-3
 gdb/doc/gdb.info-4
 gdb/doc/gdb.info-5
 gdb/doc/gdb.info-6
+gdb/doc/gdb.info-7
 gdb/doc/gdbint.info
 gdb/doc/gdbint.info-1
 gdb/doc/gdbint.info-2
@@ -549,6 +576,12 @@ gdb/dsrec.c
 gdb/exc_request.defs
 gdb/f-exp.c
 gdb/features/Makefile
+gdb/features/aarch64-core.xml
+gdb/features/aarch64-fpu.xml
+gdb/features/aarch64-without-fpu.c
+gdb/features/aarch64-without-fpu.xml
+gdb/features/aarch64.c
+gdb/features/aarch64.xml
 gdb/features/arm-core.xml
 gdb/features/arm-fpa.xml
 gdb/features/arm-m-profile.xml
@@ -556,6 +589,10 @@ gdb/features/arm-vfpv2.xml
 gdb/features/arm-vfpv3.xml
 gdb/features/arm-with-iwmmxt.c
 gdb/features/arm-with-iwmmxt.xml
+gdb/features/arm-with-m-fpa-layout.c
+gdb/features/arm-with-m-fpa-layout.xml
+gdb/features/arm-with-m-vfp-d16.c
+gdb/features/arm-with-m-vfp-d16.xml
 gdb/features/arm-with-m.c
 gdb/features/arm-with-m.xml
 gdb/features/arm-with-neon.c
@@ -568,11 +605,17 @@ gdb/features/gdbserver-regs.xsl
 gdb/features/m68k-core.xml
 gdb/features/mips-cp0.xml
 gdb/features/mips-cpu.xml
+gdb/features/mips-dsp-linux.c
+gdb/features/mips-dsp-linux.xml
+gdb/features/mips-dsp.xml
 gdb/features/mips-fpu.xml
 gdb/features/mips-linux.c
 gdb/features/mips-linux.xml
 gdb/features/mips64-cp0.xml
 gdb/features/mips64-cpu.xml
+gdb/features/mips64-dsp-linux.c
+gdb/features/mips64-dsp-linux.xml
+gdb/features/mips64-dsp.xml
 gdb/features/mips64-fpu.xml
 gdb/features/mips64-linux.c
 gdb/features/mips64-linux.xml
@@ -633,9 +676,80 @@ gdb/glibc-tdep.c
 gdb/glibc-tdep.h
 gdb/gnu-nat.c
 gdb/gnu-nat.h
-gdb/gnulib/
+gdb/gnulib/Makefile.in
+gdb/gnulib/aclocal.m4
+gdb/gnulib/config.in
+gdb/gnulib/configure
+gdb/gnulib/configure.ac
+gdb/gnulib/import/Makefile.am
+gdb/gnulib/import/Makefile.in
+gdb/gnulib/import/alloca.c
+gdb/gnulib/import/alloca.in.h
+gdb/gnulib/import/config.charset
+gdb/gnulib/import/extra/snippet/arg-nonnull.h
+gdb/gnulib/import/extra/snippet/c++defs.h
+gdb/gnulib/import/extra/snippet/warn-on-use.h
+gdb/gnulib/import/extra/update-copyright
+gdb/gnulib/import/fnmatch.in.h
+gdb/gnulib/import/inttypes.in.h
+gdb/gnulib/import/m4/00gnulib.m4
+gdb/gnulib/import/m4/alloca.m4
+gdb/gnulib/import/m4/codeset.m4
+gdb/gnulib/import/m4/configmake.m4
+gdb/gnulib/import/m4/extensions.m4
+gdb/gnulib/import/m4/extern-inline.m4
+gdb/gnulib/import/m4/fcntl-o.m4
+gdb/gnulib/import/m4/fnmatch.m4
+gdb/gnulib/import/m4/glibc21.m4
+gdb/gnulib/import/m4/gnulib-cache.m4
+gdb/gnulib/import/m4/gnulib-common.m4
+gdb/gnulib/import/m4/gnulib-comp.m4
+gdb/gnulib/import/m4/gnulib-tool.m4
+gdb/gnulib/import/m4/include_next.m4
+gdb/gnulib/import/m4/inttypes-pri.m4
+gdb/gnulib/import/m4/inttypes.m4
+gdb/gnulib/import/m4/localcharset.m4
+gdb/gnulib/import/m4/locale-fr.m4
+gdb/gnulib/import/m4/locale-ja.m4
+gdb/gnulib/import/m4/locale-zh.m4
+gdb/gnulib/import/m4/longlong.m4
+gdb/gnulib/import/m4/mbrtowc.m4
+gdb/gnulib/import/m4/mbsinit.m4
+gdb/gnulib/import/m4/mbsrtowcs.m4
+gdb/gnulib/import/m4/mbstate_t.m4
+gdb/gnulib/import/m4/memchr.m4
+gdb/gnulib/import/m4/memmem.m4
+gdb/gnulib/import/m4/mmap-anon.m4
+gdb/gnulib/import/m4/multiarch.m4
+gdb/gnulib/import/m4/onceonly.m4
+gdb/gnulib/import/m4/stdbool.m4
+gdb/gnulib/import/m4/stddef_h.m4
+gdb/gnulib/import/m4/stdint.m4
+gdb/gnulib/import/m4/string_h.m4
+gdb/gnulib/import/m4/warn-on-use.m4
+gdb/gnulib/import/m4/wchar_h.m4
+gdb/gnulib/import/m4/wchar_t.m4
+gdb/gnulib/import/m4/wctype_h.m4
+gdb/gnulib/import/m4/wint_t.m4
+gdb/gnulib/import/mbrtowc.c
+gdb/gnulib/import/mbsinit.c
+gdb/gnulib/import/mbsrtowcs-impl.h
+gdb/gnulib/import/mbsrtowcs-state.c
+gdb/gnulib/import/mbsrtowcs.c
+gdb/gnulib/import/memchr.c
+gdb/gnulib/import/memchr.valgrind
+gdb/gnulib/import/ref-add.sin
+gdb/gnulib/import/ref-del.sin
+gdb/gnulib/import/stdbool.in.h
+gdb/gnulib/import/stddef.in.h
+gdb/gnulib/import/stdint.in.h
+gdb/gnulib/import/streq.h
+gdb/gnulib/import/string.in.h
+gdb/gnulib/import/verify.h
+gdb/gnulib/import/wchar.in.h
+gdb/gnulib/import/wctype.in.h
+gdb/gnulib/update-gnulib.sh
 gdb/go32-nat.c
-gdb/gregset.h
 gdb/h8300-tdep.c
 gdb/hppa-hpux-nat.c
 gdb/hppa-hpux-tdep.c
@@ -661,7 +775,6 @@ gdb/i386-linux-tdep.h
 gdb/i386-nto-tdep.c
 gdb/i386-sol2-nat.c
 gdb/i386-sol2-tdep.c
-gdb/i386-stub.c
 gdb/i386-windows-nat.c
 gdb/i386fbsd-nat.c
 gdb/i386gnu-nat.c
@@ -674,17 +787,18 @@ gdb/i386v4-nat.c
 gdb/ia64-hpux-nat.c
 gdb/ia64-hpux-tdep.c
 gdb/ia64-hpux-tdep.h
+gdb/ia64-libunwind-tdep.c
+gdb/ia64-libunwind-tdep.h
 gdb/ia64-linux-nat.c
 gdb/ia64-linux-tdep.c
 gdb/ia64-tdep.c
 gdb/ia64-tdep.h
+gdb/ia64-vms-tdep.c
 gdb/inf-ttrace.c
 gdb/inf-ttrace.h
 gdb/iq2000-tdep.c
 gdb/irix5-nat.c
 gdb/jv-exp.c
-gdb/libunwind-frame.c
-gdb/libunwind-frame.h
 gdb/linux-fork.c
 gdb/linux-fork.h
 gdb/linux-nat.c
@@ -700,11 +814,9 @@ gdb/m32c-tdep.c
 gdb/m32r-linux-nat.c
 gdb/m32r-linux-tdep.c
 gdb/m32r-rom.c
-gdb/m32r-stub.c
 gdb/m32r-tdep.c
 gdb/m32r-tdep.h
 gdb/m68hc11-tdep.c
-gdb/m68k-stub.c
 gdb/m68k-tdep.c
 gdb/m68k-tdep.h
 gdb/m68kbsd-nat.c
@@ -714,7 +826,6 @@ gdb/m68klinux-tdep.c
 gdb/m88k-tdep.c
 gdb/m88k-tdep.h
 gdb/m88kbsd-nat.c
-gdb/machoread.c
 gdb/mep-tdep.c
 gdb/mi/ChangeLog-1999-2003
 gdb/microblaze-linux-tdep.c
@@ -751,10 +862,8 @@ gdb/notify.defs
 gdb/nto-procfs.c
 gdb/nto-tdep.c
 gdb/nto-tdep.h
-gdb/objc-exp.c
 gdb/obsd-tdep.c
 gdb/obsd-tdep.h
-gdb/osf-share/
 gdb/p-exp.c
 gdb/po/
 gdb/ppc-linux-nat.c
@@ -762,7 +871,12 @@ gdb/ppc-linux-tdep.c
 gdb/ppc-linux-tdep.h
 gdb/ppc-sysv-tdep.c
 gdb/ppc-tdep.h
+gdb/ppc64-tdep.c
+gdb/ppc64-tdep.h
 gdb/ppcbug-rom.c
+gdb/ppcfbsd-nat.c
+gdb/ppcfbsd-tdep.c
+gdb/ppcfbsd-tdep.h
 gdb/ppcnbsd-nat.c
 gdb/ppcnbsd-tdep.c
 gdb/ppcnbsd-tdep.h
@@ -778,11 +892,15 @@ gdb/proc-why.c
 gdb/process_reply.defs
 gdb/procfs.c
 gdb/procfs.h
+gdb/regformats/aarch64-without-fpu.dat
+gdb/regformats/aarch64.dat
 gdb/regformats/arm-with-iwmmxt.dat
 gdb/regformats/arm-with-neon.dat
 gdb/regformats/arm-with-vfpv2.dat
 gdb/regformats/arm-with-vfpv3.dat
+gdb/regformats/mips-dsp-linux.dat
 gdb/regformats/mips-linux.dat
+gdb/regformats/mips64-dsp-linux.dat
 gdb/regformats/mips64-linux.dat
 gdb/regformats/reg-arm.dat
 gdb/regformats/reg-cf.dat
@@ -794,6 +912,8 @@ gdb/regformats/reg-m68k.dat
 gdb/regformats/reg-sh.dat
 gdb/regformats/reg-sparc64.dat
 gdb/regformats/reg-spu.dat
+gdb/regformats/reg-tilegx.dat
+gdb/regformats/reg-tilegx32.dat
 gdb/regformats/reg-xtensa.dat
 gdb/regformats/rs6000/
 gdb/regformats/s390-linux32.dat
@@ -815,7 +935,9 @@ gdb/remote-m32r-sdi.c
 gdb/remote-mips.c
 gdb/remote-sim.c
 gdb/reply_mig_hack.awk
+gdb/rl78-tdep.c
 gdb/rs6000-aix-tdep.c
+gdb/rs6000-lynx178-tdep.c
 gdb/rs6000-nat.c
 gdb/rs6000-tdep.c
 gdb/rs6000-tdep.h
@@ -828,10 +950,10 @@ gdb/score-tdep.h
 gdb/ser-go32.c
 gdb/ser-mingw.c
 gdb/sh-linux-tdep.c
-gdb/sh-stub.c
 gdb/sh-tdep.c
 gdb/sh-tdep.h
 gdb/sh64-tdep.c
+gdb/sh64-tdep.h
 gdb/shnbsd-nat.c
 gdb/shnbsd-tdep.c
 gdb/sol-thread.c
@@ -853,14 +975,12 @@ gdb/solib-som.h
 gdb/solib-spu.c
 gdb/solib-spu.h
 gdb/solib-sunos.c
-gdb/somread.c
 gdb/sparc-linux-nat.c
 gdb/sparc-linux-tdep.c
 gdb/sparc-nat.c
 gdb/sparc-nat.h
 gdb/sparc-sol2-nat.c
 gdb/sparc-sol2-tdep.c
-gdb/sparc-stub.c
 gdb/sparc-tdep.c
 gdb/sparc-tdep.h
 gdb/sparc64-linux-nat.c
@@ -882,7 +1002,6 @@ gdb/spu-multiarch.c
 gdb/spu-tdep.c
 gdb/spu-tdep.h
 gdb/srec.h
-gdb/stamp-h1
 gdb/symfile-mem.c
 gdb/syscalls/amd64-linux.xml
 gdb/syscalls/bfin-linux.xml
@@ -898,6 +1017,10 @@ gdb/testsuite/
 gdb/tic6x-linux-tdep.c
 gdb/tic6x-tdep.c
 gdb/tic6x-tdep.h
+gdb/tilegx-linux-nat.c
+gdb/tilegx-linux-tdep.c
+gdb/tilegx-tdep.c
+gdb/tilegx-tdep.h
 gdb/tui/ChangeLog-1998-2003
 gdb/v850-tdep.c
 gdb/vax-nat.c
@@ -977,6 +1100,7 @@ include/coff/z80.h
 include/coff/z8k.h
 include/elf/ChangeLog
 include/elf/ChangeLog-9103
+include/elf/aarch64.h
 include/elf/alpha.h
 include/elf/arc.h
 include/elf/arm.h
@@ -1007,6 +1131,7 @@ include/elf/m68hc11.h
 include/elf/m68k.h
 include/elf/mcore.h
 include/elf/mep.h
+include/elf/metag.h
 include/elf/microblaze.h
 include/elf/mmix.h
 include/elf/mn10200.h
@@ -1014,6 +1139,7 @@ include/elf/mn10300.h
 include/elf/moxie.h
 include/elf/msp430.h
 include/elf/mt.h
+include/elf/nios2.h
 include/elf/openrisc.h
 include/elf/or32.h
 include/elf/pj.h
@@ -1033,6 +1159,7 @@ include/elf/tilepro.h
 include/elf/v850.h
 include/elf/vax.h
 include/elf/xc16x.h
+include/elf/xgate.h
 include/elf/xstormy16.h
 include/elf/xtensa.h
 include/fibheap.h
@@ -1048,16 +1175,20 @@ include/gdb/sim-h8300.h
 include/gdb/sim-lm32.h
 include/gdb/sim-m32c.h
 include/gdb/sim-ppc.h
+include/gdb/sim-rl78.h
 include/gdb/sim-rx.h
 include/gdb/sim-sh.h
 include/gdbm.h
 include/hp-symtab.h
 include/ieee.h
+include/mach-o/arm.h
+include/mach-o/codesign.h
 include/md5.h
 include/nlm/
 include/oasys.h
 include/opcode/ChangeLog
 include/opcode/ChangeLog-9103
+include/opcode/aarch64.h
 include/opcode/alpha.h
 include/opcode/arc.h
 include/opcode/arm.h
@@ -1080,12 +1211,14 @@ include/opcode/ia64.h
 include/opcode/m68hc11.h
 include/opcode/m68k.h
 include/opcode/m88k.h
+include/opcode/metag.h
 include/opcode/mips.h
 include/opcode/mmix.h
 include/opcode/mn10200.h
 include/opcode/mn10300.h
 include/opcode/moxie.h
 include/opcode/msp430.h
+include/opcode/nios2.h
 include/opcode/np1.h
 include/opcode/ns32k.h
 include/opcode/or32.h
@@ -1115,6 +1248,7 @@ include/opcode/tilegx.h
 include/opcode/tilepro.h
 include/opcode/v850.h
 include/opcode/vax.h
+include/opcode/xgate.h
 include/os9k.h
 include/partition.h
 include/plugin-api.h
@@ -1275,11 +1409,24 @@ opcodes/ChangeLog-2007
 opcodes/ChangeLog-2008
 opcodes/ChangeLog-2009
 opcodes/ChangeLog-2010
+opcodes/ChangeLog-2011
+opcodes/ChangeLog-2012
 opcodes/ChangeLog-9297
 opcodes/ChangeLog-9899
 opcodes/MAINTAINERS
 opcodes/Makefile.am
 opcodes/Makefile.in
+opcodes/aarch64-asm-2.c
+opcodes/aarch64-asm.c
+opcodes/aarch64-asm.h
+opcodes/aarch64-dis-2.c
+opcodes/aarch64-dis.c
+opcodes/aarch64-dis.h
+opcodes/aarch64-gen.c
+opcodes/aarch64-opc-2.c
+opcodes/aarch64-opc.c
+opcodes/aarch64-opc.h
+opcodes/aarch64-tbl.h
 opcodes/aclocal.m4
 opcodes/alpha-dis.c
 opcodes/alpha-opc.c
@@ -1421,6 +1568,7 @@ opcodes/mep-dis.c
 opcodes/mep-ibld.c
 opcodes/mep-opc.c
 opcodes/mep-opc.h
+opcodes/metag-dis.c
 opcodes/microblaze-dis.c
 opcodes/microblaze-dis.h
 opcodes/microblaze-opc.h
@@ -1441,6 +1589,8 @@ opcodes/mt-dis.c
 opcodes/mt-ibld.c
 opcodes/mt-opc.c
 opcodes/mt-opc.h
+opcodes/nios2-dis.c
+opcodes/nios2-opc.c
 opcodes/ns32k-dis.c
 opcodes/opc2c.c
 opcodes/openrisc-asm.c
@@ -1505,6 +1655,8 @@ opcodes/xc16x-dis.c
 opcodes/xc16x-ibld.c
 opcodes/xc16x-opc.c
 opcodes/xc16x-opc.h
+opcodes/xgate-dis.c
+opcodes/xgate-opc.c
 opcodes/xstormy16-asm.c
 opcodes/xstormy16-desc.c
 opcodes/xstormy16-desc.h
index 9ccba16..8a441b1 100644 (file)
@@ -1,13 +1,13 @@
-GNU GDB 7.4.1
+GNU GDB 7.6.1
 =============
 
 Original source can be downloaded from:
 http://ftp.gnu.org/gnu/gdb
 
-file = gdb-7.4.1.tar.bz2
-date = 26 April 2012
-size = 20619200
-sha1 = 1b0f8c3778d4b10c8d2be6922ac01a9900e8116c
+file = gdb-7.6.1.tar.bz2
+date = 30 August 2013
+size = 24338919
+sha1 = 0e38633b3902070d9c6755e4c54602148a094361
 
 A list of files and directories removed is in README.DELETED
 
@@ -19,6 +19,7 @@ The following files were added:
 
 Local modifications applied to following files:
        gdb/amd64-tdep.h
+       gdb/common/ptid.h
        gdb/configure.host
        gdb/configure.tgt
        gdb/defs.h
@@ -26,6 +27,7 @@ Local modifications applied to following files:
        gdb/i386-tdep.h
        gdb/i386bsd-nat.c
        gdb/i386fbsd-tdep.c
+       gdb/inferiors.c
        gdb/main.c
        gdb/osabi.c
        include/elf/common.h
index 5d5d3d4..a6a8db1 100644 (file)
@@ -1,6 +1,6 @@
 /* Native-dependent code for DragonFly/amd64.
 
-   Copyright (C) 2003, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2003-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "inferior.h"
 #include "regcache.h"
 #include "target.h"
+#include "gregset.h"
 
 #include "gdb_assert.h"
 #include <signal.h>
 #include <stddef.h>
 #include <sys/types.h>
+#include <sys/procfs.h>
 #include <sys/ptrace.h>
 #include <sys/sysctl.h>
 #include <machine/reg.h>
@@ -33,6 +35,8 @@
 #include "fbsd-nat.h"
 #include "amd64-tdep.h"
 #include "amd64-nat.h"
+#include "amd64bsd-nat.h"
+#include "i386-nat.h"
 \f
 
 /* Offset in `struct reg' where MEMBER is stored.  */
@@ -91,6 +95,108 @@ static int amd64dfly32_r_reg_offset[I386_NUM_GREGS] =
 };
 \f
 
+#ifdef DFLY_PCB_SUPPLY
+/* Transfering the registers between GDB, inferiors and core files.  */
+
+/* Fill GDB's register array with the general-purpose register values
+   in *GREGSETP.  */
+
+void
+supply_gregset (struct regcache *regcache, const gregset_t *gregsetp)
+{
+  amd64_supply_native_gregset (regcache, gregsetp, -1);
+}
+
+/* Fill register REGNUM (if it is a general-purpose register) in
+   *GREGSETPS with the value in GDB's register array.  If REGNUM is -1,
+   do this for all registers.  */
+
+void
+fill_gregset (const struct regcache *regcache, gdb_gregset_t *gregsetp, int regnum)
+{
+  amd64_collect_native_gregset (regcache, gregsetp, regnum);
+}
+
+/* Fill GDB's register array with the floating-point register values
+   in *FPREGSETP.  */
+
+void
+supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
+{
+  amd64_supply_fxsave (regcache, -1, fpregsetp);
+}
+
+/* Fill register REGNUM (if it is a floating-point register) in
+   *FPREGSETP with the value in GDB's register array.  If REGNUM is -1,
+   do this for all registers.  */
+
+void
+fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regnum)
+{
+  amd64_collect_fxsave (regcache, regnum, fpregsetp);
+}
+\f
+/* Support for debugging kernel virtual memory images.  */
+
+#include <sys/types.h>
+#include <machine/pcb.h>
+#include <osreldate.h>
+
+#include "bsd-kvm.h"
+
+static int
+amd64dfly_supply_pcb (struct regcache *regcache, struct pcb *pcb)
+{
+  /* The following is true for FreeBSD 5.2:
+
+     The pcb contains %rip, %rbx, %rsp, %rbp, %r12, %r13, %r14, %r15,
+     %ds, %es, %fs and %gs.  This accounts for all callee-saved
+     registers specified by the psABI and then some.  Here %esp
+     contains the stack pointer at the point just after the call to
+     cpu_switch().  From this information we reconstruct the register
+     state as it would like when we just returned from cpu_switch().  */
+
+  /* The stack pointer shouldn't be zero.  */
+  if (pcb->pcb_rsp == 0)
+    return 0;
+
+  pcb->pcb_rsp += 8;
+  regcache_raw_supply (regcache, AMD64_RIP_REGNUM, &pcb->pcb_rip);
+  regcache_raw_supply (regcache, AMD64_RBX_REGNUM, &pcb->pcb_rbx);
+  regcache_raw_supply (regcache, AMD64_RSP_REGNUM, &pcb->pcb_rsp);
+  regcache_raw_supply (regcache, AMD64_RBP_REGNUM, &pcb->pcb_rbp);
+  regcache_raw_supply (regcache, 12, &pcb->pcb_r12);
+  regcache_raw_supply (regcache, 13, &pcb->pcb_r13);
+  regcache_raw_supply (regcache, 14, &pcb->pcb_r14);
+  regcache_raw_supply (regcache, 15, &pcb->pcb_r15);
+#if (__FreeBSD_version < 800075) && (__FreeBSD_kernel_version < 800075)
+  /* struct pcb provides the pcb_ds/pcb_es/pcb_fs/pcb_gs fields only
+     up until __FreeBSD_version 800074: The removal of these fields
+     occurred on 2009-04-01 while the __FreeBSD_version number was
+     bumped to 800075 on 2009-04-06.  So 800075 is the closest version
+     number where we should not try to access these fields.  */
+  regcache_raw_supply (regcache, AMD64_DS_REGNUM, &pcb->pcb_ds);
+  regcache_raw_supply (regcache, AMD64_ES_REGNUM, &pcb->pcb_es);
+  regcache_raw_supply (regcache, AMD64_FS_REGNUM, &pcb->pcb_fs);
+  regcache_raw_supply (regcache, AMD64_GS_REGNUM, &pcb->pcb_gs);
+#endif
+
+  return 1;
+}
+#endif /* DFLY_PCB_SUPPLY */
+\f
+
+static void (*super_mourn_inferior) (struct target_ops *ops);
+
+static void
+amd64dfly_mourn_inferior (struct target_ops *ops)
+{
+#ifdef HAVE_PT_GETDBREGS
+  i386_cleanup_dregs ();
+#endif
+  super_mourn_inferior (ops);
+}
+
 /* Provide a prototype to silence -Wmissing-prototypes.  */
 void _initialize_amd64dfly_nat (void);
 
@@ -105,11 +211,33 @@ _initialize_amd64dfly_nat (void)
 
   /* Add some extra features to the common *BSD/i386 target.  */
   t = amd64bsd_target ();
+
+#ifdef HAVE_PT_GETDBREGS
+
+  i386_use_watchpoints (t);
+
+  i386_dr_low.set_control = amd64bsd_dr_set_control;
+  i386_dr_low.set_addr = amd64bsd_dr_set_addr;
+  i386_dr_low.get_addr = amd64bsd_dr_get_addr;
+  i386_dr_low.get_status = amd64bsd_dr_get_status;
+  i386_dr_low.get_control = amd64bsd_dr_get_control;
+  i386_set_debug_register_length (8);
+
+#endif /* HAVE_PT_GETDBREGS */
+
+  super_mourn_inferior = t->to_mourn_inferior;
+  t->to_mourn_inferior = amd64dfly_mourn_inferior;
+
   t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
   t->to_find_memory_regions = fbsd_find_memory_regions;
   t->to_make_corefile_notes = fbsd_make_corefile_notes;
   add_target (t);
 
+#ifdef DFLY_PCB_SUPPLY
+  /* Support debugging kernel virtual memory images.  */
+  bsd_kvm_add_target (amd64dfly_supply_pcb);
+#endif
+
   /* To support the recognition of signal handlers, i386bsd-tdep.c
      hardcodes some constants.  Inclusion of this file means that we
      are compiling a native debugger, which means that we can use the
index a9c91c0..1f59876 100644 (file)
@@ -1,7 +1,6 @@
 /* Target-dependent code for DragonFly/amd64.
 
-   Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   Copyright (C) 2003-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,7 +28,6 @@
 #include "gdb_string.h"
 
 #include "amd64-tdep.h"
-#include "bsd-uthread.h"
 #include "solib-svr4.h"
 
 /* Support for signal handlers.  */
 static CORE_ADDR
 amd64dfly_sigcontext_addr (struct frame_info *this_frame)
 {
+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp;
+  gdb_byte buf[8];
 
   /* The `struct sigcontext' (which really is an `ucontext_t' on
      DragonFly/amd64) lives at a fixed offset in the signal frame.  See
      <machine/sigframe.h>.  */
-  sp = frame_unwind_register_unsigned (this_frame, AMD64_RSP_REGNUM);
+  get_frame_register (this_frame, AMD64_RSP_REGNUM, buf);
+  sp = extract_unsigned_integer (buf, 8, byte_order);
   return sp + 16;
 }
 \f
-/* DragonFly 5.1-RELEASE or later.  */
-
 /* Mapping between the general-purpose registers in `struct reg'
    format and GDB's register cache layout.
 
@@ -141,52 +141,11 @@ static int amd64dfly_jmp_buf_reg_offset[] =
   0 * 8                                /* %rip */
 };
 
-static void
-amd64dfly_supply_uthread (struct regcache *regcache,
-                         int regnum, CORE_ADDR addr)
-{
-  gdb_byte buf[8];
-  int i;
-
-  gdb_assert (regnum >= -1);
-
-  for (i = 0; i < ARRAY_SIZE (amd64dfly_jmp_buf_reg_offset); i++)
-    {
-      if (amd64dfly_jmp_buf_reg_offset[i] != -1
-         && (regnum == -1 || regnum == i))
-       {
-         read_memory (addr + amd64dfly_jmp_buf_reg_offset[i], buf, 8);
-         regcache_raw_supply (regcache, i, buf);
-       }
-    }
-}
-
-static void
-amd64dfly_collect_uthread (const struct regcache *regcache,
-                          int regnum, CORE_ADDR addr)
-{
-  gdb_byte buf[8];
-  int i;
-
-  gdb_assert (regnum >= -1);
-
-  for (i = 0; i < ARRAY_SIZE (amd64dfly_jmp_buf_reg_offset); i++)
-    {
-      if (amd64dfly_jmp_buf_reg_offset[i] != -1
-         && (regnum == -1 || regnum == i))
-       {
-         regcache_raw_collect (regcache, i, buf);
-         write_memory (addr + amd64dfly_jmp_buf_reg_offset[i], buf, 8);
-       }
-    }
-}
-
 static void
 amd64dfly_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
-  /* DragonFly is BSD-based.  */
   i386bsd_init_abi (info, gdbarch);
 
   tdep->gregset_reg_offset = amd64dfly_r_reg_offset;
@@ -201,11 +160,6 @@ amd64dfly_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   tdep->sc_reg_offset = amd64dfly_sc_reg_offset;
   tdep->sc_num_regs = ARRAY_SIZE (amd64dfly_sc_reg_offset);
 
-  /* DragonFly provides a user-level threads implementation.  */
-  bsd_uthread_set_supply_uthread (gdbarch, amd64dfly_supply_uthread);
-  bsd_uthread_set_collect_uthread (gdbarch, amd64dfly_collect_uthread);
-
-  /* DragonFly uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
index 6a8dcbf..aa2aa40 100644 (file)
@@ -47,7 +47,7 @@ struct ptid
     long lwp;
 
     /* Thread id */
-    long tid;
+    unsigned long tid;
   };
 
 typedef struct ptid ptid_t;
index 2f83956..cd12d1d 100644 (file)
@@ -1,7 +1,6 @@
 /* Native-dependent code for DragonFly/i386.
 
-   Copyright (C) 2001, 2002, 2003, 2004, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   Copyright (C) 2001-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "inferior.h"
 #include "regcache.h"
 #include "target.h"
+#include "gregset.h"
 
 #include <sys/types.h>
+#include <sys/procfs.h>
 #include <sys/ptrace.h>
 #include <sys/sysctl.h>
 
 #include "i386-nat.h"
 #include "i386bsd-nat.h"
 
+#ifdef DFLY_PCB_SUPPLY
+/* Resume execution of the inferior process.  If STEP is nonzero,
+   single-step it.  If SIGNAL is nonzero, give it that signal.  */
+
+static void
+i386dfly_resume (struct target_ops *ops,
+                ptid_t ptid, int step, enum gdb_signal signal)
+{
+  pid_t pid = ptid_get_pid (ptid);
+  int request = PT_STEP;
+
+  if (pid == -1)
+    /* Resume all threads.  This only gets used in the non-threaded
+       case, where "resume all threads" and "resume inferior_ptid" are
+       the same.  */
+    pid = ptid_get_pid (inferior_ptid);
+
+  if (!step)
+    {
+      struct regcache *regcache = get_current_regcache ();
+      ULONGEST eflags;
+
+      /* Workaround for a bug in FreeBSD.  Make sure that the trace
+        flag is off when doing a continue.  There is a code path
+        through the kernel which leaves the flag set when it should
+        have been cleared.  If a process has a signal pending (such
+        as SIGALRM) and we do a PT_STEP, the process never really has
+        a chance to run because the kernel needs to notify the
+        debugger that a signal is being sent.  Therefore, the process
+        never goes through the kernel's trap() function which would
+        normally clear it.  */
+
+      regcache_cooked_read_unsigned (regcache, I386_EFLAGS_REGNUM,
+                                    &eflags);
+      if (eflags & 0x0100)
+       regcache_cooked_write_unsigned (regcache, I386_EFLAGS_REGNUM,
+                                       eflags & ~0x0100);
+
+      request = PT_CONTINUE;
+    }
+
+  /* An addres of (caddr_t) 1 tells ptrace to continue from where it
+     was.  (If GDB wanted it to start some other way, we have already
+     written a new PC value to the child.)  */
+  if (ptrace (request, pid, (caddr_t) 1,
+             gdb_signal_to_host (signal)) == -1)
+    perror_with_name (("ptrace"));
+}
+\f
+
+/* Transfering the registers between GDB, inferiors and core files.  */
+
+/* Fill GDB's register array with the general-purpose register values
+   in *GREGSETP.  */
+
+void
+supply_gregset (struct regcache *regcache, const gregset_t *gregsetp)
+{
+  i386bsd_supply_gregset (regcache, gregsetp);
+}
+
+/* Fill register REGNUM (if it is a general-purpose register) in
+   *GREGSETPS with the value in GDB's register array.  If REGNUM is -1,
+   do this for all registers.  */
+
+void
+fill_gregset (const struct regcache *regcache, gdb_gregset_t *gregsetp, int regnum)
+{
+  i386bsd_collect_gregset (regcache, gregsetp, regnum);
+}
+
+#include "i387-tdep.h"
+
+/* Fill GDB's register array with the floating-point register values
+   in *FPREGSETP.  */
+
+void
+supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
+{
+  i387_supply_fsave (regcache, -1, fpregsetp);
+}
+
+/* Fill register REGNUM (if it is a floating-point register) in
+   *FPREGSETP with the value in GDB's register array.  If REGNUM is -1,
+   do this for all registers.  */
+
+void
+fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regnum)
+{
+  i387_collect_fsave (regcache, regnum, fpregsetp);
+}
+\f
+
+/* Support for debugging kernel virtual memory images.  */
+
+#include <sys/types.h>
+#include <machine/pcb.h>
+
+#include "bsd-kvm.h"
+
+static int
+i386dfly_supply_pcb (struct regcache *regcache, struct pcb *pcb)
+{
+  /* The following is true for FreeBSD 4.7:
+
+     The pcb contains %eip, %ebx, %esp, %ebp, %esi, %edi and %gs.
+     This accounts for all callee-saved registers specified by the
+     psABI and then some.  Here %esp contains the stack pointer at the
+     point just after the call to cpu_switch().  From this information
+     we reconstruct the register state as it would look when we just
+     returned from cpu_switch().  */
+
+  /* The stack pointer shouldn't be zero.  */
+  if (pcb->pcb_esp == 0)
+    return 0;
+
+  pcb->pcb_esp += 4;
+  regcache_raw_supply (regcache, I386_EDI_REGNUM, &pcb->pcb_edi);
+  regcache_raw_supply (regcache, I386_ESI_REGNUM, &pcb->pcb_esi);
+  regcache_raw_supply (regcache, I386_EBP_REGNUM, &pcb->pcb_ebp);
+  regcache_raw_supply (regcache, I386_ESP_REGNUM, &pcb->pcb_esp);
+  regcache_raw_supply (regcache, I386_EBX_REGNUM, &pcb->pcb_ebx);
+  regcache_raw_supply (regcache, I386_EIP_REGNUM, &pcb->pcb_eip);
+  regcache_raw_supply (regcache, I386_GS_REGNUM, &pcb->pcb_gs);
+
+  return 1;
+}
+#endif /* DFLY_PCB_SUPPLY */
+\f
+
 /* Prevent warning from -Wmissing-prototypes.  */
 void _initialize_i386dfly_nat (void);
 
@@ -49,8 +180,9 @@ _initialize_i386dfly_nat (void)
 
   i386_dr_low.set_control = i386bsd_dr_set_control;
   i386_dr_low.set_addr = i386bsd_dr_set_addr;
-  i386_dr_low.reset_addr = i386bsd_dr_reset_addr;
+  i386_dr_low.get_addr = i386bsd_dr_get_addr;
   i386_dr_low.get_status = i386bsd_dr_get_status;
+  i386_dr_low.get_control = i386bsd_dr_get_control;
   i386_set_debug_register_length (4);
 
 #endif /* HAVE_PT_GETDBREGS */
@@ -61,6 +193,11 @@ _initialize_i386dfly_nat (void)
   t->to_make_corefile_notes = fbsd_make_corefile_notes;
   add_target (t);
 
+#ifdef DFLY_PCB_SUPPLY
+  /* Support debugging kernel virtual memory images.  */
+  bsd_kvm_add_target (i386dfly_supply_pcb);
+#endif
+
   /* DragonFly provides a kern.ps_strings sysctl that we can use to
      locate the sigtramp.  That way we can still recognize a sigtramp
      if its location is changed in a new kernel.  Of course this is
index 92134d1..0830c60 100644 (file)
@@ -1,7 +1,6 @@
 /* Target-dependent code for DragonFly/i386.
 
-   Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   Copyright (C) 2003-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +27,6 @@
 
 #include "i386-tdep.h"
 #include "i387-tdep.h"
-#include "bsd-uthread.h"
 #include "solib-svr4.h"
 
 static int i386dfly_r_reg_offset[] =
@@ -80,7 +78,7 @@ i386dfly_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
-  i386fbsd4_init_abi(info, gdbarch);
+  i386_elf_init_abi(info, gdbarch);
 
   tdep->gregset_reg_offset = i386dfly_r_reg_offset;
   tdep->gregset_num_regs = ARRAY_SIZE (i386dfly_r_reg_offset);
@@ -88,6 +86,9 @@ i386dfly_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   tdep->sc_reg_offset = i386dfly_sc_reg_offset;
   tdep->sc_num_regs = ARRAY_SIZE (i386dfly_sc_reg_offset);
+
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
 
 \f
index eb8629c..9a61251 100644 (file)
@@ -358,7 +358,7 @@ find_inferior_pid (int pid)
   /* Looking for inferior pid == 0 is always wrong, and indicative of
      a bug somewhere else.  There may be more than one with pid == 0,
      for instance.  */
-  gdb_assert (pid != 0);
+  gdb_assert (kernel_debugger || pid != 0);
 
   for (inf = inferior_list; inf; inf = inf->next)
     if (inf->pid == pid)
@@ -525,7 +525,7 @@ number_of_inferiors (void)
 static char *
 inferior_pid_to_str (int pid)
 {
-  if (pid != 0)
+  if (kernel_debugger || pid != 0)
     return target_pid_to_str (pid_to_ptid (pid));
   else
     return _("<null>");
index a37a9a5..c6ad974 100644 (file)
@@ -492,7 +492,8 @@ generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, void *obj)
        }
 
       /* DragonFly.  */
-      if (check_note (abfd, sect, note, "DragonFly", 4, NT_DRAGONFLY_ABI_TAG))
+      if (check_note (abfd, sect, note, &sectsize, "DragonFly", 4,
+                     NT_DRAGONFLY_ABI_TAG))
        {
          /* There is no need to check the version yet.  */
          *osabi = GDB_OSABI_DRAGONFLY;