* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
/* Target-dependent code for FreeBSD/i386.
|
|
|
|
|
2019-01-01 07:01:51 +01:00
|
|
|
Copyright (C) 2003-2019 Free Software Foundation, Inc.
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2007-08-23 20:08:50 +02:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-23 20:08:50 +02:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
|
|
|
|
#include "defs.h"
|
|
|
|
#include "arch-utils.h"
|
2005-01-12 22:54:13 +01:00
|
|
|
#include "gdbcore.h"
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
#include "osabi.h"
|
2005-01-12 22:54:13 +01:00
|
|
|
#include "regcache.h"
|
2015-02-21 22:43:30 +01:00
|
|
|
#include "regset.h"
|
Normalize names of some source files
Most tdep/nat files are named:
<cpu>-<os>-tdep.c
<cpu>-<os>-nat.c
A few files do not respect this scheme. This patch renames them so that
they are consistent with the rest of the files. It builds fine with
--enable-targets=all, but that doesn't test the nat files. I can only
hope that my grep skill is good enough.
gdb/ChangeLog:
* Makefile.in (ALL_64_TARGET_OBS, ALL_TARGET_OBS,
HFILES_NO_SRCDIR, ALLDEPFILES): Rename files.
* alphabsd-nat.c: Rename to ...
* alpha-bsd-nat.c: ... this, adjust include.
* alphabsd-tdep.c: Rename to ...
* alpha-bsd-tdep.c: ... this, adjust include.
* alphabsd-tdep.h: Rename to ...
* alpha-bsd-tdep.h: ... this, adjust include barrier and comment.
* alphafbsd-tdep.c: Rename to ...
* alpha-fbsd-tdep.c: ... this.
* alphanbsd-tdep.c: Rename to ...
* alpha-nbsd-tdep.c: ... this, adjust include.
* alphaobsd-tdep.c: Rename to ...
* alpha-obsd-tdep.c: ... this, adjust include.
* amd64bsd-nat.c: Rename to ...
* amd64-bsd-nat.c: ... this, adjust include.
* amd64fbsd-nat.c: Rename to ...
* amd64-fbsd-nat.c: ... this, adjust include.
* amd64fbsd-tdep.c: Rename to ...
* amd64-fbsd-tdep.c: ... this, adjust include.
* amd64nbsd-nat.c: Rename to ...
* amd64-nbsd-nat.c: ... this.
* amd64nbsd-tdep.c: Rename to ...
* amd64-nbsd-tdep.c: ... this.
* amd64obsd-nat.c: Rename to ...
* amd64-obsd-nat.c: ... this.
* amd64obsd-tdep.c: Rename to ...
* amd64-obsd-tdep.c: ... this.
* amd64-tdep.h: Update comments.
* armbsd-tdep.c: Rename to ...
* arm-bsd-tdep.c: ... this.
* armnbsd-nat.c: Rename to ...
* arm-nbsd-nat.c: ... this.
* armnbsd-tdep.c: Rename to ...
* arm-nbsd-tdep.c: ... this.
* armobsd-tdep.c: Rename to ...
* arm-obsd-tdep.c: ... this.
* arm-tdep.h: Update comments.
* hppabsd-tdep.c: Rename to ...
* hppa-bsd-tdep.c: ... this, adjust include.
* hppabsd-tdep.h: Rename to ...
* hppa-bsd-tdep.h: ... this, adjust include barrier and comment.
* hppanbsd-nat.c: Rename to ...
* hppa-nbsd-nat.c: ... this.
* hppanbsd-tdep.c: Rename to ...
* hppa-nbsd-tdep.c: ... this, adjust include.
* hppaobsd-nat.c: Rename to ...
* hppa-obsd-nat.c: ... this.
* hppaobsd-tdep.c: Rename to ...
* hppa-obsd-tdep.c: ... this, adjust include.
* i386bsd-nat.c: Rename to ...
* i386-bsd-nat.c: ... this, adjust include.
* i386bsd-nat.h: Rename to ...
* i386-bsd-nat.h: ... this, adjust include barrier and comment.
* i386bsd-tdep.c: Rename to ...
* i386-bsd-tdep.c: ... this.
* i386fbsd-nat.c: Rename to ...
* i386-fbsd-nat.c: ... this, adjust include.
* i386fbsd-tdep.c: Rename to ...
* i386-fbsd-tdep.c: ... this, adjust include.
* i386fbsd-tdep.h: Rename to ...
* i386-fbsd-tdep.h: ... this, adjust include barrier and comment.
* i386gnu-nat.c: Rename to ...
* i386-gnu-nat.c: ... this.
* i386gnu-tdep.c: Rename to ...
* i386-gnu-tdep.c: ... this.
* i386nbsd-nat.c: Rename to ...
* i386-nbsd-nat.c: ... this, adjust include.
* i386nbsd-tdep.c: Rename to ...
* i386-nbsd-tdep.c: ... this.
* i386obsd-nat.c: Rename to ...
* i386-obsd-nat.c: ... this, adjust include.
* i386obsd-tdep.c: Rename to ...
* i386-obsd-tdep.c: ... this.
* i386v4-nat.c: Rename to ...
* i386-v4-nat.c: ... this.
* i386-tdep.h: Update comments.
* m68k-tdep.h: Update comments.
* m68kbsd-nat.c: Rename to ...
* m68k-bsd-nat.c: ... this.
* m68kbsd-tdep.c: Rename to ...
* m68k-bsd-tdep.c: ... this.
* m68klinux-nat.c: Rename to ...
* m68k-linux-nat.c: ... this.
* m68klinux-tdep.c: Rename to ...
* m68k-linux-tdep.c: ... this.
* m88kbsd-nat.c: Rename to ...
* m88k-bsd-nat.c: ... this.
* mipsnbsd-nat.c: Rename to ...
* mips-nbsd-nat.c: ... this, adjust include.
* mipsnbsd-tdep.c: Rename to ...
* mips-nbsd-tdep.c: ... this, adjust include.
* mipsnbsd-tdep.h: Rename to ...
* mips-nbsd-tdep.h: ... this, adjust include barrier and comment.
* mips64obsd-nat.c: Rename to ...
* mips64-obsd-nat.c: ... this.
* mips64obsd-tdep.c: Rename to ...
* mips64-obsd-tdep.c: ... this.
* ppcfbsd-nat.c: Rename to ...
* ppc-fbsd-nat.c: ... this, adjust include.
* ppcfbsd-tdep.c: Rename to ...
* ppc-fbsd-tdep.c: ... this, adjust include.
* ppcfbsd-tdep.h: Rename to ...
* ppc-fbsd-tdep.h: ... this, adjust include barrier and comment.
* ppcnbsd-nat.c: Rename to ...
* ppc-nbsd-nat.c: ... this, adjust include.
* ppcnbsd-tdep.c: Rename to ...
* ppc-nbsd-tdep.c: ... this, adjust include.
* ppcnbsd-tdep.h: Rename to ...
* ppc-nbsd-tdep.h: ... this, adjust include barrier and comment.
* ppcobsd-nat.c: Rename to ...
* ppc-obsd-nat.c: ... this, adjust include.
* ppcobsd-tdep.c: Rename to ...
* ppc-obsd-tdep.c: ... this, adjust include.
* ppcobsd-tdep.h: Rename to ...
* ppc-obsd-tdep.h: ... this, adjust include barrier and comment.
* shnbsd-nat.c: Rename to ...
* sh-nbsd-nat.c: ... this.
* shnbsd-tdep.c: Rename to ...
* sh-nbsd-tdep.c: ... this.
* sparcnbsd-nat.c: Rename to ...
* sparc-nbsd-nat.c: ... this.
* sparcnbsd-tdep.c: Rename to ...
* sparc-nbsd-tdep.c: ... this.
* sparcobsd-tdep.c: Rename to ...
* sparc-obsd-tdep.c: ... this.
* sparc64fbsd-nat.c: Rename to ...
* sparc64-fbsd-nat.c: ... this.
* sparc64fbsd-tdep.c: Rename to ...
* sparc64-fbsd-tdep.c: ... this.
* sparc64nbsd-nat.c: Rename to ...
* sparc64-nbsd-nat.c: ... this.
* sparc64nbsd-tdep.c: Rename to ...
* sparc64-nbsd-tdep.c: ... this.
* sparc64obsd-nat.c: Rename to ...
* sparc64-obsd-nat.c: ... this.
* sparc64obsd-tdep.c: Rename to ...
* sparc64-obsd-tdep.c: ... this.
* sparc64-tdep.h: Update comments.
* vaxbsd-nat.c: Rename to ...
* vax-bsd-nat.c: ... this.
* vaxnbsd-tdep.c: Rename to ...
* vax-nbsd-tdep.c: ... this.
* vaxobsd-tdep.c: Rename to ...
* vax-obsd-tdep.c: ... this.
* x86bsd-nat.h: Rename to ...
* x86-bsd-nat.h: ... this, adjust include barrier and comment.
* x86bsd-nat.c: Rename to ...
* x86-bsd-nat.c: ... this, adjust include.
* configure.tgt: Update renamed files.
* config/alpha/fbsd.mh: Update renamed files.
* config/alpha/nbsd.mh: Update renamed files.
* config/arm/nbsdelf.mh: Update renamed files.
* config/djgpp/fnchange.lst: Update renamed files.
* config/i386/fbsd.mh: Update renamed files.
* config/i386/fbsd64.mh: Update renamed files.
* config/i386/i386gnu.mh: Update renamed files.
* config/i386/i386sol2.mh: Update renamed files.
* config/i386/nbsd64.mh: Update renamed files.
* config/i386/nbsdelf.mh: Update renamed files.
* config/i386/obsd.mh: Update renamed files.
* config/i386/obsd64.mh: Update renamed files.
* config/i386/sol2-64.mh: Update renamed files.
* config/m68k/linux.mh: Update renamed files.
* config/m68k/nbsdelf.mh: Update renamed files.
* config/m68k/obsd.mh: Update renamed files.
* config/m88k/obsd.mh: Update renamed files.
* config/mips/nbsd.mh: Update renamed files.
* config/mips/obsd64.mh: Update renamed files.
* config/pa/nbsd.mh: Update renamed files.
* config/pa/obsd.mh: Update renamed files.
* config/powerpc/fbsd.mh: Update renamed files.
* config/powerpc/nbsd.mh: Update renamed files.
* config/powerpc/obsd.mh: Update renamed files.
* config/sh/nbsd.mh: Update renamed files.
* config/sparc/fbsd.mh: Update renamed files.
* config/sparc/nbsd64.mh: Update renamed files.
* config/sparc/nbsdelf.mh: Update renamed files.
* config/sparc/obsd64.mh: Update renamed files.
* config/vax/nbsdelf.mh: Update renamed files.
* config/vax/obsd.mh: Update renamed files.
2016-11-22 22:14:24 +01:00
|
|
|
#include "i386-fbsd-tdep.h"
|
Rename common to gdbsupport
This is the next patch in the ongoing series to move gdbsever to the
top level.
This patch just renames the "common" directory. The idea is to do
this move in two parts: first rename the directory (this patch), then
move the directory to the top. This approach makes the patches a bit
more tractable.
I chose the name "gdbsupport" for the directory. However, as this
patch was largely written by sed, we could pick a new name without too
much difficulty.
Tested by the buildbot.
gdb/ChangeLog
2019-07-09 Tom Tromey <tom@tromey.com>
* contrib/ari/gdb_ari.sh: Change common to gdbsupport.
* configure: Rebuild.
* configure.ac: Change common to gdbsupport.
* gdbsupport: Rename from common.
* acinclude.m4: Change common to gdbsupport.
* Makefile.in (CONFIG_SRC_SUBDIR, COMMON_SFILES)
(HFILES_NO_SRCDIR, stamp-version, ALLDEPFILES): Change common to
gdbsupport.
* aarch64-tdep.c, ada-lang.c, ada-lang.h, agent.c, alloc.c,
amd64-darwin-tdep.c, amd64-dicos-tdep.c, amd64-fbsd-nat.c,
amd64-fbsd-tdep.c, amd64-linux-nat.c, amd64-linux-tdep.c,
amd64-nbsd-tdep.c, amd64-obsd-tdep.c, amd64-sol2-tdep.c,
amd64-tdep.c, amd64-windows-tdep.c, arch-utils.c,
arch/aarch64-insn.c, arch/aarch64.c, arch/aarch64.h, arch/amd64.c,
arch/amd64.h, arch/arm-get-next-pcs.c, arch/arm-linux.c,
arch/arm.c, arch/i386.c, arch/i386.h, arch/ppc-linux-common.c,
arch/riscv.c, arch/riscv.h, arch/tic6x.c, arm-tdep.c, auto-load.c,
auxv.c, ax-gdb.c, ax-general.c, ax.h, breakpoint.c, breakpoint.h,
btrace.c, btrace.h, build-id.c, build-id.h, c-lang.h, charset.c,
charset.h, cli/cli-cmds.c, cli/cli-cmds.h, cli/cli-decode.c,
cli/cli-dump.c, cli/cli-option.h, cli/cli-script.c,
coff-pe-read.c, command.h, compile/compile-c-support.c,
compile/compile-c.h, compile/compile-cplus-symbols.c,
compile/compile-cplus-types.c, compile/compile-cplus.h,
compile/compile-loc2c.c, compile/compile.c, completer.c,
completer.h, contrib/ari/gdb_ari.sh, corefile.c, corelow.c,
cp-support.c, cp-support.h, cp-valprint.c, csky-tdep.c, ctf.c,
darwin-nat.c, debug.c, defs.h, disasm-selftests.c, disasm.c,
disasm.h, dtrace-probe.c, dwarf-index-cache.c,
dwarf-index-cache.h, dwarf-index-write.c, dwarf2-frame.c,
dwarf2expr.c, dwarf2loc.c, dwarf2read.c, event-loop.c,
event-top.c, exceptions.c, exec.c, extension.h, fbsd-nat.c,
features/aarch64-core.c, features/aarch64-fpu.c,
features/aarch64-pauth.c, features/aarch64-sve.c,
features/i386/32bit-avx.c, features/i386/32bit-avx512.c,
features/i386/32bit-core.c, features/i386/32bit-linux.c,
features/i386/32bit-mpx.c, features/i386/32bit-pkeys.c,
features/i386/32bit-segments.c, features/i386/32bit-sse.c,
features/i386/64bit-avx.c, features/i386/64bit-avx512.c,
features/i386/64bit-core.c, features/i386/64bit-linux.c,
features/i386/64bit-mpx.c, features/i386/64bit-pkeys.c,
features/i386/64bit-segments.c, features/i386/64bit-sse.c,
features/i386/x32-core.c, features/riscv/32bit-cpu.c,
features/riscv/32bit-csr.c, features/riscv/32bit-fpu.c,
features/riscv/64bit-cpu.c, features/riscv/64bit-csr.c,
features/riscv/64bit-fpu.c, features/tic6x-c6xp.c,
features/tic6x-core.c, features/tic6x-gp.c, filename-seen-cache.h,
findcmd.c, findvar.c, fork-child.c, gcore.c, gdb_bfd.c, gdb_bfd.h,
gdb_proc_service.h, gdb_regex.c, gdb_select.h, gdb_usleep.c,
gdbarch-selftests.c, gdbthread.h, gdbtypes.h, gnu-nat.c,
go32-nat.c, guile/guile.c, guile/scm-ports.c,
guile/scm-safe-call.c, guile/scm-type.c, i386-fbsd-nat.c,
i386-fbsd-tdep.c, i386-go32-tdep.c, i386-linux-nat.c,
i386-linux-tdep.c, i386-tdep.c, i387-tdep.c,
ia64-libunwind-tdep.c, ia64-linux-nat.c, inf-child.c,
inf-ptrace.c, infcall.c, infcall.h, infcmd.c, inferior-iter.h,
inferior.c, inferior.h, inflow.c, inflow.h, infrun.c, infrun.h,
inline-frame.c, language.h, linespec.c, linux-fork.c, linux-nat.c,
linux-tdep.c, linux-thread-db.c, location.c, machoread.c,
macrotab.h, main.c, maint.c, maint.h, memattr.c, memrange.h,
mi/mi-cmd-break.h, mi/mi-cmd-env.c, mi/mi-cmd-stack.c,
mi/mi-cmd-var.c, mi/mi-interp.c, mi/mi-main.c, mi/mi-parse.h,
minsyms.c, mips-linux-tdep.c, namespace.h,
nat/aarch64-linux-hw-point.c, nat/aarch64-linux-hw-point.h,
nat/aarch64-linux.c, nat/aarch64-sve-linux-ptrace.c,
nat/amd64-linux-siginfo.c, nat/fork-inferior.c,
nat/linux-btrace.c, nat/linux-btrace.h, nat/linux-namespaces.c,
nat/linux-nat.h, nat/linux-osdata.c, nat/linux-personality.c,
nat/linux-procfs.c, nat/linux-ptrace.c, nat/linux-ptrace.h,
nat/linux-waitpid.c, nat/mips-linux-watch.c,
nat/mips-linux-watch.h, nat/ppc-linux.c, nat/x86-dregs.c,
nat/x86-dregs.h, nat/x86-linux-dregs.c, nat/x86-linux.c,
nto-procfs.c, nto-tdep.c, objfile-flags.h, objfiles.c, objfiles.h,
obsd-nat.c, observable.h, osdata.c, p-valprint.c, parse.c,
parser-defs.h, ppc-linux-nat.c, printcmd.c, probe.c, proc-api.c,
procfs.c, producer.c, progspace.h, psymtab.h,
python/py-framefilter.c, python/py-inferior.c, python/py-ref.h,
python/py-type.c, python/python.c, record-btrace.c, record-full.c,
record.c, record.h, regcache-dump.c, regcache.c, regcache.h,
remote-fileio.c, remote-fileio.h, remote-sim.c, remote.c,
riscv-tdep.c, rs6000-aix-tdep.c, rust-exp.y, s12z-tdep.c,
selftest-arch.c, ser-base.c, ser-event.c, ser-pipe.c, ser-tcp.c,
ser-unix.c, skip.c, solib-aix.c, solib-target.c, solib.c,
source-cache.c, source.c, source.h, sparc-nat.c, spu-linux-nat.c,
stack.c, stap-probe.c, symfile-add-flags.h, symfile.c, symfile.h,
symtab.c, symtab.h, target-descriptions.c, target-descriptions.h,
target-memory.c, target.c, target.h, target/waitstatus.c,
target/waitstatus.h, thread-iter.h, thread.c, tilegx-tdep.c,
top.c, top.h, tracefile-tfile.c, tracefile.c, tracepoint.c,
tracepoint.h, tui/tui-io.c, ui-file.c, ui-out.h,
unittests/array-view-selftests.c,
unittests/child-path-selftests.c, unittests/cli-utils-selftests.c,
unittests/common-utils-selftests.c,
unittests/copy_bitwise-selftests.c, unittests/environ-selftests.c,
unittests/format_pieces-selftests.c,
unittests/function-view-selftests.c,
unittests/lookup_name_info-selftests.c,
unittests/memory-map-selftests.c, unittests/memrange-selftests.c,
unittests/mkdir-recursive-selftests.c,
unittests/observable-selftests.c,
unittests/offset-type-selftests.c, unittests/optional-selftests.c,
unittests/parse-connection-spec-selftests.c,
unittests/ptid-selftests.c, unittests/rsp-low-selftests.c,
unittests/scoped_fd-selftests.c,
unittests/scoped_mmap-selftests.c,
unittests/scoped_restore-selftests.c,
unittests/string_view-selftests.c, unittests/style-selftests.c,
unittests/tracepoint-selftests.c, unittests/unpack-selftests.c,
unittests/utils-selftests.c, unittests/xml-utils-selftests.c,
utils.c, utils.h, valarith.c, valops.c, valprint.c, value.c,
value.h, varobj.c, varobj.h, windows-nat.c, x86-linux-nat.c,
xml-support.c, xml-support.h, xml-tdesc.h, xstormy16-tdep.c,
xtensa-linux-nat.c, dwarf2read.h: Change common to gdbsupport.
gdb/gdbserver/ChangeLog
2019-07-09 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
* configure.ac: Change common to gdbsupport.
* acinclude.m4: Change common to gdbsupport.
* Makefile.in (SFILES, OBS, GDBREPLAY_OBS, IPA_OBJS)
(version-generated.c, gdbsupport/%-ipa.o, gdbsupport/%.o): Change
common to gdbsupport.
* ax.c, event-loop.c, fork-child.c, gdb_proc_service.h,
gdbreplay.c, gdbthread.h, hostio-errno.c, hostio.c, i387-fp.c,
inferiors.c, inferiors.h, linux-aarch64-tdesc-selftest.c,
linux-amd64-ipa.c, linux-i386-ipa.c, linux-low.c,
linux-tic6x-low.c, linux-x86-low.c, linux-x86-tdesc-selftest.c,
linux-x86-tdesc.c, lynx-i386-low.c, lynx-low.c, mem-break.h,
nto-x86-low.c, regcache.c, regcache.h, remote-utils.c, server.c,
server.h, spu-low.c, symbol.c, target.h, tdesc.c, tdesc.h,
thread-db.c, tracepoint.c, win32-i386-low.c, win32-low.c: Change
common to gdbsupport.
2019-05-06 04:29:24 +02:00
|
|
|
#include "gdbsupport/x86-xstate.h"
|
2005-01-12 22:54:13 +01:00
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
#include "i386-tdep.h"
|
|
|
|
#include "i387-tdep.h"
|
2014-03-29 11:04:26 +01:00
|
|
|
#include "fbsd-tdep.h"
|
* amd64fbsd-tdep.c: Include "solib-svr4.h".
(amd64fbsd_init_abi): Set link map offsets.
* amd64nbsd-tdep.c: Include "slib-svr4.h".
(amd64nbsd_init_abi): Set link map offsets.
* amd64obsd-tdep.c: Include "solib-svr4.h".
(amd64obsd_init_abi): Set link map offsets.
* i386fbsd-tdep.c: Include "solib-svr4.h".
(i386fbsd_init_abi): Set link map offsets.
* i386nbsd-tdep.c: Include "solib-svr4.h".
(i386nbsdelf_init_abi): Set link map offsets.
* Makefile.in (amd64fbsd-tdep.o, amd64nbsd-tdep.o)
(amd64obsd-tdep.o, i386fbsd-tdep.o): Update dependencies.
* config/i386/fbsd.mh (NATDEPFILES): Remove solib.o, solib-svr4.o,
solib-legacy.o and core-aout.o. Reformat.
* config/i386/fbsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o. Reformat.
* config/i386/nbsdaout.mh (NATDEPFILES): Add solib.o. Reformat.
* config/i386/nbsdelf.mh: Reformat.
* config/i386/nbsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o and corelow.o.
* config/i386/obsd.mh, config/i386/obsdaout.mh: Reformat.
* config/i386/obsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o and corelow.o. Reformat.
* config/i386/fbsd.mt (TDEPFILES): Add solib.o, solib-svr4.o.
* config/i386/fbsd64.mt (TDEPFILES): Add solib.o, solib-svr4.o.
(TM_FILE): Set to tm-fbsd.h.
* config/i386/nbsd.mt (TDEPFILES): Reformat.
* config/i386/nbsd64.mt (TDEPFILES): Add corelow.o, solib.o and
solib-svr4.o.
* config/i386/obsd.mt (TDEPFILES): Add corelow.o, solib.o and
solib-svr4.o.
(TM_FILE): Set to nm-nbsd.h.
* config/i386/nm-fbsd.h: Update copyright year. Tweak comments.
Simplify shared library support. Don't include "elf/common.h".
(SVR4_SHARED_LIBS): Don't define.
* config/i386/nm-fbsd64.h: Update copyright year. Don't include
"solib.h".
* config/i386/nm-nbsd.h, config/i386/nm-nbsdaout.h,
config/i386/nm-obsd.h: Update copyright year. Tweak comments.
* config/i386/tm-fbsd.h: Update copyright tear. Tweak comments.
Don't include "i386/tm-i386.h". Include "solib.h".
* config/i386/tm-nbsd.h: Update copyright year. Tweak comments.
Don't include "i386/tm-i386.h".
* config/i386/xm-i386.h: Update copyright year. Tweak comments.
* config/i386/xm-nbsd.h: Update copyright year. Tweak comments.
Include "i386/xm-i386.h".
(HOST_LONG_DOUBLE_FORMAT): Remove.
2004-02-22 17:20:22 +01:00
|
|
|
#include "solib-svr4.h"
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
|
2015-02-25 15:51:42 +01:00
|
|
|
/* Support for signal handlers. */
|
|
|
|
|
|
|
|
/* Return whether THIS_FRAME corresponds to a FreeBSD sigtramp
|
|
|
|
routine. */
|
|
|
|
|
|
|
|
/* FreeBSD/i386 supports three different signal trampolines, one for
|
|
|
|
versions before 4.0, a second for 4.x, and a third for 5.0 and
|
|
|
|
later. To complicate matters, FreeBSD/i386 binaries running under
|
|
|
|
an amd64 kernel use a different set of trampolines. These
|
|
|
|
trampolines differ from the i386 kernel trampolines in that they
|
|
|
|
omit a middle section that conditionally restores %gs. */
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_sigtramp_start[] =
|
|
|
|
{
|
|
|
|
0x8d, 0x44, 0x24, 0x20, /* lea SIGF_UC(%esp),%eax */
|
|
|
|
0x50 /* pushl %eax */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_sigtramp_middle[] =
|
|
|
|
{
|
|
|
|
0xf7, 0x40, 0x54, 0x00, 0x00, 0x02, 0x00,
|
|
|
|
/* testl $PSL_VM,UC_EFLAGS(%eax) */
|
|
|
|
0x75, 0x03, /* jne +3 */
|
|
|
|
0x8e, 0x68, 0x14 /* mov UC_GS(%eax),%gs */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_sigtramp_end[] =
|
|
|
|
{
|
|
|
|
0xb8, 0xa1, 0x01, 0x00, 0x00, /* movl $SYS_sigreturn,%eax */
|
|
|
|
0x50, /* pushl %eax */
|
|
|
|
0xcd, 0x80 /* int $0x80 */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_freebsd4_sigtramp_start[] =
|
|
|
|
{
|
|
|
|
0x8d, 0x44, 0x24, 0x14, /* lea SIGF_UC4(%esp),%eax */
|
|
|
|
0x50 /* pushl %eax */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_freebsd4_sigtramp_middle[] =
|
|
|
|
{
|
|
|
|
0xf7, 0x40, 0x54, 0x00, 0x00, 0x02, 0x00,
|
|
|
|
/* testl $PSL_VM,UC4_EFLAGS(%eax) */
|
|
|
|
0x75, 0x03, /* jne +3 */
|
|
|
|
0x8e, 0x68, 0x14 /* mov UC4_GS(%eax),%gs */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_freebsd4_sigtramp_end[] =
|
|
|
|
{
|
|
|
|
0xb8, 0x58, 0x01, 0x00, 0x00, /* movl $344,%eax */
|
|
|
|
0x50, /* pushl %eax */
|
|
|
|
0xcd, 0x80 /* int $0x80 */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_osigtramp_start[] =
|
|
|
|
{
|
|
|
|
0x8d, 0x44, 0x24, 0x14, /* lea SIGF_SC(%esp),%eax */
|
|
|
|
0x50 /* pushl %eax */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_osigtramp_middle[] =
|
|
|
|
{
|
|
|
|
0xf7, 0x40, 0x18, 0x00, 0x00, 0x02, 0x00,
|
|
|
|
/* testl $PSL_VM,SC_PS(%eax) */
|
|
|
|
0x75, 0x03, /* jne +3 */
|
|
|
|
0x8e, 0x68, 0x44 /* mov SC_GS(%eax),%gs */
|
|
|
|
};
|
|
|
|
|
|
|
|
static const gdb_byte i386fbsd_osigtramp_end[] =
|
|
|
|
{
|
|
|
|
0xb8, 0x67, 0x00, 0x00, 0x00, /* movl $103,%eax */
|
|
|
|
0x50, /* pushl %eax */
|
|
|
|
0xcd, 0x80 /* int $0x80 */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* The three different trampolines are all the same size. */
|
2015-02-27 19:17:43 +01:00
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_start
|
|
|
|
== sizeof i386fbsd_freebsd4_sigtramp_start);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_start
|
|
|
|
== sizeof i386fbsd_osigtramp_start);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_middle
|
|
|
|
== sizeof i386fbsd_freebsd4_sigtramp_middle);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_middle
|
|
|
|
== sizeof i386fbsd_osigtramp_middle);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_end
|
|
|
|
== sizeof i386fbsd_freebsd4_sigtramp_end);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_end
|
|
|
|
== sizeof i386fbsd_osigtramp_end);
|
2015-02-25 15:51:42 +01:00
|
|
|
|
|
|
|
/* We assume that the middle is the largest chunk below. */
|
2015-02-27 19:17:43 +01:00
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_middle
|
|
|
|
> sizeof i386fbsd_sigtramp_start);
|
|
|
|
gdb_static_assert (sizeof i386fbsd_sigtramp_middle
|
|
|
|
> sizeof i386fbsd_sigtramp_end);
|
2015-02-25 15:51:42 +01:00
|
|
|
|
|
|
|
static int
|
|
|
|
i386fbsd_sigtramp_p (struct frame_info *this_frame)
|
|
|
|
{
|
|
|
|
CORE_ADDR pc = get_frame_pc (this_frame);
|
|
|
|
gdb_byte buf[sizeof i386fbsd_sigtramp_middle];
|
|
|
|
const gdb_byte *middle, *end;
|
|
|
|
|
|
|
|
/* Look for a matching start. */
|
|
|
|
if (!safe_frame_unwind_memory (this_frame, pc, buf,
|
|
|
|
sizeof i386fbsd_sigtramp_start))
|
|
|
|
return 0;
|
2015-02-27 19:17:43 +01:00
|
|
|
if (memcmp (buf, i386fbsd_sigtramp_start, sizeof i386fbsd_sigtramp_start)
|
|
|
|
== 0)
|
|
|
|
{
|
|
|
|
middle = i386fbsd_sigtramp_middle;
|
|
|
|
end = i386fbsd_sigtramp_end;
|
|
|
|
}
|
|
|
|
else if (memcmp (buf, i386fbsd_freebsd4_sigtramp_start,
|
|
|
|
sizeof i386fbsd_freebsd4_sigtramp_start) == 0)
|
|
|
|
{
|
|
|
|
middle = i386fbsd_freebsd4_sigtramp_middle;
|
|
|
|
end = i386fbsd_freebsd4_sigtramp_end;
|
|
|
|
}
|
|
|
|
else if (memcmp (buf, i386fbsd_osigtramp_start,
|
|
|
|
sizeof i386fbsd_osigtramp_start) == 0)
|
|
|
|
{
|
|
|
|
middle = i386fbsd_osigtramp_middle;
|
|
|
|
end = i386fbsd_osigtramp_end;
|
|
|
|
}
|
|
|
|
else
|
2015-02-25 15:51:42 +01:00
|
|
|
return 0;
|
|
|
|
|
|
|
|
/* Since the end is shorter than the middle, check for a matching end
|
|
|
|
next. */
|
|
|
|
pc += sizeof i386fbsd_sigtramp_start;
|
|
|
|
if (!safe_frame_unwind_memory (this_frame, pc, buf,
|
|
|
|
sizeof i386fbsd_sigtramp_end))
|
|
|
|
return 0;
|
|
|
|
if (memcmp (buf, end, sizeof i386fbsd_sigtramp_end) == 0)
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
/* If the end didn't match, check for a matching middle. */
|
|
|
|
if (!safe_frame_unwind_memory (this_frame, pc, buf,
|
|
|
|
sizeof i386fbsd_sigtramp_middle))
|
|
|
|
return 0;
|
|
|
|
if (memcmp (buf, middle, sizeof i386fbsd_sigtramp_middle) != 0)
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
/* The middle matched, check for a matching end. */
|
|
|
|
pc += sizeof i386fbsd_sigtramp_middle;
|
|
|
|
if (!safe_frame_unwind_memory (this_frame, pc, buf,
|
|
|
|
sizeof i386fbsd_sigtramp_end))
|
|
|
|
return 0;
|
|
|
|
if (memcmp (buf, end, sizeof i386fbsd_sigtramp_end) != 0)
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
/* FreeBSD 3.0-RELEASE or later. */
|
|
|
|
|
|
|
|
/* From <machine/reg.h>. */
|
|
|
|
static int i386fbsd_r_reg_offset[] =
|
|
|
|
{
|
|
|
|
9 * 4, 8 * 4, 7 * 4, 6 * 4, /* %eax, %ecx, %edx, %ebx */
|
|
|
|
15 * 4, 4 * 4, /* %esp, %ebp */
|
|
|
|
3 * 4, 2 * 4, /* %esi, %edi */
|
|
|
|
12 * 4, 14 * 4, /* %eip, %eflags */
|
|
|
|
13 * 4, 16 * 4, /* %cs, %ss */
|
|
|
|
1 * 4, 0 * 4, -1, -1 /* %ds, %es, %fs, %gs */
|
|
|
|
};
|
|
|
|
|
2004-02-22 12:19:15 +01:00
|
|
|
/* Sigtramp routine location. */
|
2015-02-25 15:51:42 +01:00
|
|
|
CORE_ADDR i386fbsd_sigtramp_start_addr;
|
|
|
|
CORE_ADDR i386fbsd_sigtramp_end_addr;
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
|
|
|
|
/* From <machine/signal.h>. */
|
2005-08-31 22:02:33 +02:00
|
|
|
int i386fbsd_sc_reg_offset[] =
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
{
|
|
|
|
8 + 14 * 4, /* %eax */
|
|
|
|
8 + 13 * 4, /* %ecx */
|
|
|
|
8 + 12 * 4, /* %edx */
|
|
|
|
8 + 11 * 4, /* %ebx */
|
|
|
|
8 + 0 * 4, /* %esp */
|
|
|
|
8 + 1 * 4, /* %ebp */
|
|
|
|
8 + 10 * 4, /* %esi */
|
|
|
|
8 + 9 * 4, /* %edi */
|
|
|
|
8 + 3 * 4, /* %eip */
|
|
|
|
8 + 4 * 4, /* %eflags */
|
|
|
|
8 + 7 * 4, /* %cs */
|
|
|
|
8 + 8 * 4, /* %ss */
|
|
|
|
8 + 6 * 4, /* %ds */
|
|
|
|
8 + 5 * 4, /* %es */
|
|
|
|
8 + 15 * 4, /* %fs */
|
|
|
|
8 + 16 * 4 /* %gs */
|
|
|
|
};
|
|
|
|
|
2015-02-21 22:43:30 +01:00
|
|
|
/* Get XSAVE extended state xcr0 from core dump. */
|
|
|
|
|
|
|
|
uint64_t
|
|
|
|
i386fbsd_core_read_xcr0 (bfd *abfd)
|
|
|
|
{
|
|
|
|
asection *xstate = bfd_get_section_by_name (abfd, ".reg-xstate");
|
|
|
|
uint64_t xcr0;
|
|
|
|
|
|
|
|
if (xstate)
|
|
|
|
{
|
|
|
|
size_t size = bfd_section_size (abfd, xstate);
|
|
|
|
|
|
|
|
/* Check extended state size. */
|
|
|
|
if (size < X86_XSTATE_AVX_SIZE)
|
|
|
|
xcr0 = X86_XSTATE_SSE_MASK;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
char contents[8];
|
|
|
|
|
|
|
|
if (! bfd_get_section_contents (abfd, xstate, contents,
|
|
|
|
I386_FBSD_XSAVE_XCR0_OFFSET,
|
|
|
|
8))
|
|
|
|
{
|
|
|
|
warning (_("Couldn't read `xcr0' bytes from "
|
|
|
|
"`.reg-xstate' section in core file."));
|
2017-09-04 12:33:56 +02:00
|
|
|
return X86_XSTATE_SSE_MASK;
|
2015-02-21 22:43:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
xcr0 = bfd_get_64 (abfd, contents);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
2017-09-04 12:33:56 +02:00
|
|
|
xcr0 = X86_XSTATE_SSE_MASK;
|
2015-02-21 22:43:30 +01:00
|
|
|
|
|
|
|
return xcr0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Implement the core_read_description gdbarch method. */
|
|
|
|
|
|
|
|
static const struct target_desc *
|
|
|
|
i386fbsd_core_read_description (struct gdbarch *gdbarch,
|
|
|
|
struct target_ops *target,
|
|
|
|
bfd *abfd)
|
|
|
|
{
|
2019-03-12 21:39:02 +01:00
|
|
|
return i386_target_description (i386fbsd_core_read_xcr0 (abfd), true);
|
2015-02-21 22:43:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Similar to i386_supply_fpregset, but use XSAVE extended state. */
|
|
|
|
|
|
|
|
static void
|
|
|
|
i386fbsd_supply_xstateregset (const struct regset *regset,
|
|
|
|
struct regcache *regcache, int regnum,
|
|
|
|
const void *xstateregs, size_t len)
|
|
|
|
{
|
|
|
|
i387_supply_xsave (regcache, regnum, xstateregs);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Similar to i386_collect_fpregset, but use XSAVE extended state. */
|
|
|
|
|
|
|
|
static void
|
|
|
|
i386fbsd_collect_xstateregset (const struct regset *regset,
|
|
|
|
const struct regcache *regcache,
|
|
|
|
int regnum, void *xstateregs, size_t len)
|
|
|
|
{
|
|
|
|
i387_collect_xsave (regcache, regnum, xstateregs, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Register set definitions. */
|
|
|
|
|
|
|
|
static const struct regset i386fbsd_xstateregset =
|
|
|
|
{
|
|
|
|
NULL,
|
|
|
|
i386fbsd_supply_xstateregset,
|
|
|
|
i386fbsd_collect_xstateregset
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Iterate over core file register note sections. */
|
|
|
|
|
|
|
|
static void
|
|
|
|
i386fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
|
|
|
|
iterate_over_regset_sections_cb *cb,
|
|
|
|
void *cb_data,
|
|
|
|
const struct regcache *regcache)
|
|
|
|
{
|
|
|
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
|
|
|
2018-08-13 11:04:11 +02:00
|
|
|
cb (".reg", tdep->sizeof_gregset, tdep->sizeof_gregset, &i386_gregset, NULL,
|
|
|
|
cb_data);
|
|
|
|
cb (".reg2", tdep->sizeof_fpregset, tdep->sizeof_fpregset, &i386_fpregset,
|
|
|
|
NULL, cb_data);
|
2015-02-21 22:43:30 +01:00
|
|
|
|
|
|
|
if (tdep->xcr0 & X86_XSTATE_AVX)
|
2018-08-13 11:04:11 +02:00
|
|
|
cb (".reg-xstate", X86_XSTATE_SIZE (tdep->xcr0),
|
|
|
|
X86_XSTATE_SIZE (tdep->xcr0), &i386fbsd_xstateregset,
|
|
|
|
"XSAVE extended state", cb_data);
|
2015-02-21 22:43:30 +01:00
|
|
|
}
|
|
|
|
|
2019-03-12 21:39:02 +01:00
|
|
|
/* Implement the get_thread_local_address gdbarch method. */
|
|
|
|
|
|
|
|
static CORE_ADDR
|
|
|
|
i386fbsd_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid,
|
|
|
|
CORE_ADDR lm_addr, CORE_ADDR offset)
|
|
|
|
{
|
|
|
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
|
|
struct regcache *regcache;
|
|
|
|
|
|
|
|
if (tdep->fsbase_regnum == -1)
|
|
|
|
error (_("Unable to fetch %%gsbase"));
|
|
|
|
|
|
|
|
regcache = get_thread_arch_regcache (ptid, gdbarch);
|
|
|
|
|
|
|
|
target_fetch_registers (regcache, tdep->fsbase_regnum + 1);
|
|
|
|
|
|
|
|
ULONGEST gsbase;
|
|
|
|
if (regcache->cooked_read (tdep->fsbase_regnum + 1, &gsbase) != REG_VALID)
|
|
|
|
error (_("Unable to fetch %%gsbase"));
|
|
|
|
|
|
|
|
CORE_ADDR dtv_addr = gsbase + gdbarch_ptr_bit (gdbarch) / 8;
|
|
|
|
return fbsd_get_thread_local_address (gdbarch, dtv_addr, lm_addr, offset);
|
|
|
|
}
|
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
static void
|
2016-12-09 17:08:49 +01:00
|
|
|
i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
{
|
|
|
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
|
|
|
|
|
|
/* Obviously FreeBSD is BSD-based. */
|
|
|
|
i386bsd_init_abi (info, gdbarch);
|
|
|
|
|
|
|
|
/* FreeBSD has a different `struct reg', and reserves some space for
|
|
|
|
its FPU emulator in `struct fpreg'. */
|
|
|
|
tdep->gregset_reg_offset = i386fbsd_r_reg_offset;
|
|
|
|
tdep->gregset_num_regs = ARRAY_SIZE (i386fbsd_r_reg_offset);
|
|
|
|
tdep->sizeof_gregset = 18 * 4;
|
|
|
|
tdep->sizeof_fpregset = 176;
|
|
|
|
|
|
|
|
/* FreeBSD uses -freg-struct-return by default. */
|
|
|
|
tdep->struct_return = reg_struct_return;
|
|
|
|
|
2015-02-25 15:51:42 +01:00
|
|
|
tdep->sigtramp_p = i386fbsd_sigtramp_p;
|
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
/* FreeBSD uses a different memory layout. */
|
2004-02-22 12:19:15 +01:00
|
|
|
tdep->sigtramp_start = i386fbsd_sigtramp_start_addr;
|
|
|
|
tdep->sigtramp_end = i386fbsd_sigtramp_end_addr;
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
|
|
|
|
/* FreeBSD has a more complete `struct sigcontext'. */
|
|
|
|
tdep->sc_reg_offset = i386fbsd_sc_reg_offset;
|
|
|
|
tdep->sc_num_regs = ARRAY_SIZE (i386fbsd_sc_reg_offset);
|
2005-01-12 22:54:13 +01:00
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
i386_elf_init_abi (info, gdbarch);
|
|
|
|
|
2016-12-09 17:08:49 +01:00
|
|
|
/* FreeBSD uses SVR4-style shared libraries. */
|
* amd64fbsd-tdep.c: Include "solib-svr4.h".
(amd64fbsd_init_abi): Set link map offsets.
* amd64nbsd-tdep.c: Include "slib-svr4.h".
(amd64nbsd_init_abi): Set link map offsets.
* amd64obsd-tdep.c: Include "solib-svr4.h".
(amd64obsd_init_abi): Set link map offsets.
* i386fbsd-tdep.c: Include "solib-svr4.h".
(i386fbsd_init_abi): Set link map offsets.
* i386nbsd-tdep.c: Include "solib-svr4.h".
(i386nbsdelf_init_abi): Set link map offsets.
* Makefile.in (amd64fbsd-tdep.o, amd64nbsd-tdep.o)
(amd64obsd-tdep.o, i386fbsd-tdep.o): Update dependencies.
* config/i386/fbsd.mh (NATDEPFILES): Remove solib.o, solib-svr4.o,
solib-legacy.o and core-aout.o. Reformat.
* config/i386/fbsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o. Reformat.
* config/i386/nbsdaout.mh (NATDEPFILES): Add solib.o. Reformat.
* config/i386/nbsdelf.mh: Reformat.
* config/i386/nbsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o and corelow.o.
* config/i386/obsd.mh, config/i386/obsdaout.mh: Reformat.
* config/i386/obsd64.mh (NATDEPFILES): Remove solib.o,
solib-svr4.o, solib-legacy.o and corelow.o. Reformat.
* config/i386/fbsd.mt (TDEPFILES): Add solib.o, solib-svr4.o.
* config/i386/fbsd64.mt (TDEPFILES): Add solib.o, solib-svr4.o.
(TM_FILE): Set to tm-fbsd.h.
* config/i386/nbsd.mt (TDEPFILES): Reformat.
* config/i386/nbsd64.mt (TDEPFILES): Add corelow.o, solib.o and
solib-svr4.o.
* config/i386/obsd.mt (TDEPFILES): Add corelow.o, solib.o and
solib-svr4.o.
(TM_FILE): Set to nm-nbsd.h.
* config/i386/nm-fbsd.h: Update copyright year. Tweak comments.
Simplify shared library support. Don't include "elf/common.h".
(SVR4_SHARED_LIBS): Don't define.
* config/i386/nm-fbsd64.h: Update copyright year. Don't include
"solib.h".
* config/i386/nm-nbsd.h, config/i386/nm-nbsdaout.h,
config/i386/nm-obsd.h: Update copyright year. Tweak comments.
* config/i386/tm-fbsd.h: Update copyright tear. Tweak comments.
Don't include "i386/tm-i386.h". Include "solib.h".
* config/i386/tm-nbsd.h: Update copyright year. Tweak comments.
Don't include "i386/tm-i386.h".
* config/i386/xm-i386.h: Update copyright year. Tweak comments.
* config/i386/xm-nbsd.h: Update copyright year. Tweak comments.
Include "i386/xm-i386.h".
(HOST_LONG_DOUBLE_FORMAT): Remove.
2004-02-22 17:20:22 +01:00
|
|
|
set_solib_svr4_fetch_link_map_offsets
|
|
|
|
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/* FreeBSD 4.0-RELEASE or later. */
|
|
|
|
|
|
|
|
/* From <machine/reg.h>. */
|
|
|
|
static int i386fbsd4_r_reg_offset[] =
|
|
|
|
{
|
|
|
|
10 * 4, 9 * 4, 8 * 4, 7 * 4, /* %eax, %ecx, %edx, %ebx */
|
|
|
|
16 * 4, 5 * 4, /* %esp, %ebp */
|
|
|
|
4 * 4, 3 * 4, /* %esi, %edi */
|
|
|
|
13 * 4, 15 * 4, /* %eip, %eflags */
|
|
|
|
14 * 4, 17 * 4, /* %cs, %ss */
|
|
|
|
2 * 4, 1 * 4, 0 * 4, 18 * 4 /* %ds, %es, %fs, %gs */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* From <machine/signal.h>. */
|
|
|
|
int i386fbsd4_sc_reg_offset[] =
|
|
|
|
{
|
|
|
|
20 + 11 * 4, /* %eax */
|
|
|
|
20 + 10 * 4, /* %ecx */
|
|
|
|
20 + 9 * 4, /* %edx */
|
|
|
|
20 + 8 * 4, /* %ebx */
|
|
|
|
20 + 17 * 4, /* %esp */
|
|
|
|
20 + 6 * 4, /* %ebp */
|
|
|
|
20 + 5 * 4, /* %esi */
|
|
|
|
20 + 4 * 4, /* %edi */
|
|
|
|
20 + 14 * 4, /* %eip */
|
|
|
|
20 + 16 * 4, /* %eflags */
|
|
|
|
20 + 15 * 4, /* %cs */
|
|
|
|
20 + 18 * 4, /* %ss */
|
|
|
|
20 + 3 * 4, /* %ds */
|
|
|
|
20 + 2 * 4, /* %es */
|
|
|
|
20 + 1 * 4, /* %fs */
|
|
|
|
20 + 0 * 4 /* %gs */
|
|
|
|
};
|
|
|
|
|
|
|
|
static void
|
|
|
|
i386fbsd4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
|
|
|
{
|
|
|
|
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
|
|
|
|
2014-03-29 11:04:26 +01:00
|
|
|
/* Generic FreeBSD support. */
|
|
|
|
fbsd_init_abi (info, gdbarch);
|
|
|
|
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
/* Inherit stuff from older releases. We assume that FreeBSD
|
|
|
|
4.0-RELEASE always uses ELF. */
|
|
|
|
i386fbsd_init_abi (info, gdbarch);
|
|
|
|
|
|
|
|
/* FreeBSD 4.0 introduced a new `struct reg'. */
|
|
|
|
tdep->gregset_reg_offset = i386fbsd4_r_reg_offset;
|
|
|
|
tdep->gregset_num_regs = ARRAY_SIZE (i386fbsd4_r_reg_offset);
|
|
|
|
tdep->sizeof_gregset = 19 * 4;
|
|
|
|
|
|
|
|
/* FreeBSD 4.0 introduced a new `struct sigcontext'. */
|
|
|
|
tdep->sc_reg_offset = i386fbsd4_sc_reg_offset;
|
|
|
|
tdep->sc_num_regs = ARRAY_SIZE (i386fbsd4_sc_reg_offset);
|
2015-02-21 22:43:30 +01:00
|
|
|
|
|
|
|
tdep->xsave_xcr0_offset = I386_FBSD_XSAVE_XCR0_OFFSET;
|
|
|
|
|
|
|
|
/* Iterate over core file register note sections. */
|
|
|
|
set_gdbarch_iterate_over_regset_sections
|
|
|
|
(gdbarch, i386fbsd_iterate_over_regset_sections);
|
|
|
|
|
|
|
|
set_gdbarch_core_read_description (gdbarch,
|
|
|
|
i386fbsd_core_read_description);
|
2019-03-12 21:39:02 +01:00
|
|
|
|
|
|
|
set_gdbarch_fetch_tls_load_module_address (gdbarch,
|
|
|
|
svr4_fetch_objfile_link_map);
|
|
|
|
set_gdbarch_get_thread_local_address (gdbarch,
|
|
|
|
i386fbsd_get_thread_local_address);
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
_initialize_i386fbsd_tdep (void)
|
|
|
|
{
|
2016-12-09 17:08:49 +01:00
|
|
|
gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_FREEBSD,
|
* i386fbsd-tdep.c: New file.
(i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
i386bsd-tdep.c.
(_initialize_i386fbsd_tdep): New function.
(i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
(i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs, TDEP->sizeof_gregset and
TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
TDEP->sc_num_regs.
(i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
to initialize TDEP->sc_num_regs.
* i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
(_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
FreeBSD ELF OS/ABI's here.
* Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
(i386fbsd-tdep.o): New target.
* config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
* config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
2003-10-11 17:22:39 +02:00
|
|
|
i386fbsd4_init_abi);
|
|
|
|
}
|