Thread View: gnu.gdb.bug
1 messages
1 total messages
Started by Erik Forsberg
Sat, 02 Jan 1993 13:44
(none)
Author: Erik Forsberg
Date: Sat, 02 Jan 1993 13:44
Date: Sat, 02 Jan 1993 13:44
460 lines
15659 bytes
15659 bytes
Hello.
These are changes to GDB 4.7 in order to support it for
BSD/386 from BSDI. Unfortunately, because BSDI uses a new
a.out format (magic number 0314) it is kind of difficult to
merge it into the 386BSD support without pain. So these
changes adds the configuration option 'i386-unknown-bsdi'
First are a set of context diffs, followed by a set of
new files in a shell archive.
diff -c -r gdb-4.7/bfd/Makefile.in gdb/bfd/Makefile.in
*** gdb-4.7/bfd/Makefile.in Fri Oct 9 09:43:48 1992
--- gdb/bfd/Makefile.in Sat Jan 2 15:06:49 1993
***************
*** 81,87 ****
aout-adobe.o \
coff-i960.o coff-a29k.o coff-m68k.o coff-i386.o coff-m88k.o \
coff-mips.o coff-rs6000.o coff-h8300.o coff-msym.o hppa.o i386linux.o \
! coff-z8k.o coff-we32k.o i386bsd.o
OPTIONAL_BACKENDS = trad-core.o
--- 81,87 ----
aout-adobe.o \
coff-i960.o coff-a29k.o coff-m68k.o coff-i386.o coff-m88k.o \
coff-mips.o coff-rs6000.o coff-h8300.o coff-msym.o hppa.o i386linux.o \
! coff-z8k.o coff-we32k.o i386bsd.o i386bsdi.o
OPTIONAL_BACKENDS = trad-core.o
***************
*** 112,118 ****
oasys.c ieee.c coff-m68k.c coff-a29k.c coff-rs6000.c coff-msym.c \
format.c section.c core.c syms.c stab-syms.c reloc.c init.c ctor.c \
seclet.c coff-m88k.c coff-mips.c trad-core.c newsos3.c i386aout.c \
! i386linux.c bout.c elf.c aout-adobe.c coff-we32k.c i386bsd.c \
cpu-h8300.c cpu-i960.c cpu-sparc.c cpu-m68k.c cpu-m88k.c cpu-vax.c \
cpu-mips.c cpu-a29k.c cpu-i386.c cpu-rs6000.c coff-h8300.c hppa.c \
cpu-hppa.c cpu-we32k.c
--- 112,118 ----
oasys.c ieee.c coff-m68k.c coff-a29k.c coff-rs6000.c coff-msym.c \
format.c section.c core.c syms.c stab-syms.c reloc.c init.c ctor.c \
seclet.c coff-m88k.c coff-mips.c trad-core.c newsos3.c i386aout.c \
! i386linux.c bout.c elf.c aout-adobe.c coff-we32k.c i386bsd.c i386bsdi.c \
cpu-h8300.c cpu-i960.c cpu-sparc.c cpu-m68k.c cpu-m88k.c cpu-vax.c \
cpu-mips.c cpu-a29k.c cpu-i386.c cpu-rs6000.c coff-h8300.c hppa.c \
cpu-hppa.c cpu-we32k.c
***************
*** 365,370 ****
--- 365,373 ----
$(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
$(INCDIR)/aout/ar.h libaout.h
i386bsd.o : i386bsd.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
+ $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
+ $(INCDIR)/aout/ar.h libaout.h
+ i386bsdi.o : i386bsdi.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
$(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
$(INCDIR)/aout/ar.h libaout.h
bout.o : bout.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
Only in gdb/bfd/config: i386-bsdi.mt
Only in gdb/bfd/config: i386bsdi.mh
diff -c -r gdb-4.7/bfd/configure.host gdb/bfd/configure.host
*** gdb-4.7/bfd/configure.host Fri Oct 9 04:38:25 1992
--- gdb/bfd/configure.host Sat Jan 2 14:57:11 1993
***************
*** 22,27 ****
--- 22,28 ----
hppa*-hp-hpux) my_host=hppahpux ;;
hppa*-hp-bsd) my_host=hppabsd ;;
+ i[34]86-*-bsdi) my_host=i386bsdi ;;
i[34]86-*-bsd) my_host=i386bsd ;;
i[34]86-ncr*-sysv4*) my_host=ncr3000 ;;
i[34]86-*-go32) my_host=go32 ;;
diff -c -r gdb-4.7/bfd/configure.in gdb/bfd/configure.in
*** gdb-4.7/bfd/configure.in Fri Oct 23 01:39:13 1992
--- gdb/bfd/configure.in Sat Jan 2 15:42:18 1993
***************
*** 48,53 ****
--- 48,54 ----
i[34]86-*-sysv4*) bfd_target=i386-elf ;;
i[34]86-*-sysv*) bfd_target=i386-coff ;;
i[34]86-*-sco*) bfd_target=i386-coff ;;
+ i[34]86-*-bsdi*) bfd_target=i386-bsdi ;;
i[34]86-*-bsd*) bfd_target=i386-bsd ;;
i[34]86-none-*) bfd_target=i386-coff ;;
i960-*-vxworks) bfd_target=i960-bout ;;
Only in gdb/bfd/hosts: i386bsdi.h
Only in gdb/bfd: i386bsdi.c
diff -c -r gdb-4.7/bfd/targets.c gdb/bfd/targets.c
*** gdb-4.7/bfd/targets.c Thu Oct 8 13:18:08 1992
--- gdb/bfd/targets.c Sat Jan 2 15:09:49 1993
***************
*** 398,403 ****
--- 398,404 ----
extern bfd_target i386coff_vec;
extern bfd_target i386aout_vec;
extern bfd_target i386linux_vec;
+ extern bfd_target i386bsdi_vec;
extern bfd_target a29kcoff_big_vec;
extern bfd_target trad_core_vec;
extern bfd_target rs6000coff_vec;
diff -c -r gdb-4.7/bfd/trad-core.c gdb/bfd/trad-core.c
*** gdb-4.7/bfd/trad-core.c Thu Oct 8 13:18:09 1992
--- gdb/bfd/trad-core.c Sat Jan 2 20:54:07 1993
***************
*** 189,195 ****
--- 189,199 ----
trad_unix_core_file_failing_signal (ignore_abfd)
bfd *ignore_abfd;
{
+ #ifdef TRAD_UNIX_CORE_FILE_FAILING_SIGNAL
+ return(TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(ignore_abfd));
+ #else
return -1; /* FIXME, where is it? */
+ #endif
}
/* ARGSUSED */
diff -c -r gdb-4.7/config.sub gdb/config.sub
*** gdb-4.7/config.sub Fri Oct 23 04:06:24 1992
--- gdb/config.sub Sat Jan 2 19:04:50 1993
***************
*** 165,170 ****
--- 165,174 ----
basic_machine=i386-unknown
os=-bsd
;;
+ i386-bsdi* | bsd386 | 386bsdi | bsdi)
+ basic_machine=i386-unknown
+ os=-bsdi
+ ;;
spur)
basic_machine=spur-unknown
;;
Only in gdb/gdb/config: i386bsdi.mt
diff -c -r gdb-4.7/gdb/configure.in gdb/gdb/configure.in
*** gdb-4.7/gdb/configure.in Wed Oct 14 15:50:18 1992
--- gdb/gdb/configure.in Sat Jan 2 18:59:55 1993
***************
*** 124,129 ****
--- 124,130 ----
i[34]86-*-coff) gdb_target=i386v ;;
i[34]86-*-elf) gdb_target=i386v ;;
+ i[34]86-*-bsdi*) gdb_target=i386bsdi ;;
i[34]86-*-bsd*) gdb_target=i386bsd ;;
i[34]86-*-solaris*) gdb_target=i386sol2 ;;
i[34]86-*-sunos*) gdb_target=sun386 ;;
***************
*** 237,243 ****
files="${files} ${targetfile}"
links="${links} tm.h"
fi
! rm -f nat.h
if [ "${nativefile}" != "" ]; then
files="${files} ${nativefile}"
links="${links} nm.h"
--- 238,244 ----
files="${files} ${targetfile}"
links="${links} tm.h"
fi
! rm -f nm.h
if [ "${nativefile}" != "" ]; then
files="${files} ${nativefile}"
links="${links} nm.h"
diff -c -r gdb-4.7/gdb/coredep.c gdb/gdb/coredep.c
*** gdb-4.7/gdb/coredep.c Wed Oct 21 19:07:09 1992
--- gdb/gdb/coredep.c Sat Jan 2 13:19:42 1993
***************
*** 23,30 ****
#include "defs.h"
#include <sys/types.h>
#include <sys/param.h>
- #include "gdbcore.h"
#include "nm.h"
/* These are needed on various systems to expand REGISTER_U_ADDR. */
#ifndef USG
--- 23,30 ----
#include "defs.h"
#include <sys/types.h>
#include <sys/param.h>
#include "nm.h"
+ #include "gdbcore.h"
/* These are needed on various systems to expand REGISTER_U_ADDR. */
#ifndef USG
diff -c -r gdb-4.7/gdb/i386b-nat.c gdb/gdb/i386b-nat.c
*** gdb-4.7/gdb/i386b-nat.c Fri Oct 16 12:16:49 1992
--- gdb/gdb/i386b-nat.c Sat Jan 2 20:32:45 1993
***************
*** 26,38 ****
{
tEAX, tECX, tEDX, tEBX,
tESP, tEBP, tESI, tEDI,
! tEIP, tEFLAGS, tCS, tSS
};
static int sregmap[] =
{
sEAX, sECX, sEDX, sEBX,
sESP, sEBP, sESI, sEDI,
! sEIP, sEFLAGS, sCS, sSS
};
/* blockend is the value of u.u_ar0, and points to the
--- 26,40 ----
{
tEAX, tECX, tEDX, tEBX,
tESP, tEBP, tESI, tEDI,
! tEIP, tEFLAGS, tCS, tSS,
! tDS, tES
};
static int sregmap[] =
{
sEAX, sECX, sEDX, sEBX,
sESP, sEBP, sESI, sEDI,
! sEIP, sEFLAGS, sCS, sSS,
! sSS, sSS
};
/* blockend is the value of u.u_ar0, and points to the
diff -c -r gdb-4.7/gdb/infptrace.c gdb/gdb/infptrace.c
*** gdb-4.7/gdb/infptrace.c Thu Oct 22 01:06:43 1992
--- gdb/gdb/infptrace.c Sat Jan 2 13:18:37 1993
***************
*** 19,28 ****
#include "defs.h"
#include "frame.h"
- #include "inferior.h"
#include "target.h"
#include "nm.h"
#ifdef USG
#include <sys/types.h>
--- 19,28 ----
#include "defs.h"
#include "frame.h"
#include "target.h"
#include "nm.h"
+ #include "inferior.h"
#ifdef USG
#include <sys/types.h>
Only in gdb/gdb: tm-i386bsdi.h
diff -c -r gdb-4.7/include/aout/aout64.h gdb/include/aout/aout64.h
*** gdb-4.7/include/aout/aout64.h Fri Oct 23 04:05:33 1992
--- gdb/include/aout/aout64.h Sat Jan 2 15:35:15 1993
***************
*** 31,39 ****
--- 31,41 ----
#define ZMAGIC 0413 /* Code indicating demand-paged executable. */
#endif
+ #ifndef N_BADMAG
#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
&& N_MAGIC(x) != NMAGIC \
&& N_MAGIC(x) != ZMAGIC)
+ #endif
/* By default, segment size is constant. But some machines override this
to be a function of the a.out header (e.g. machine type). */
***************
*** 129,135 ****
--- 131,139 ----
/* Offsets of the various portions of the file after the text segment. */
+ #ifndef N_DATOFF
#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) )
+ #endif
#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data )
#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize )
------------CUT HERE-----------------------------------------------------------
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# bfd/config/i386-bsdi.mt
# bfd/config/i386bsdi.mh
# bfd/hosts/i386bsdi.h
# bfd/i386bsdi.c
# gdb/config/i386bsdi.mt
# gdb/tm-i386bsdi.h
#
echo x - bfd/config/i386-bsdi.mt
sed 's/^X//' >bfd/config/i386-bsdi.mt << 'END-of-bfd/config/i386-bsdi.mt'
X# Target: Intel 386 running bsdi, using a.out
XTDEFAULTS = -DDEFAULT_VECTOR=i386bsdi_vec
END-of-bfd/config/i386-bsdi.mt
echo x - bfd/config/i386bsdi.mh
sed 's/^X//' >bfd/config/i386bsdi.mh << 'END-of-bfd/config/i386bsdi.mh'
XHDEFINES=-DTRAD_CORE
XHDEPFILES=trad-core.o
END-of-bfd/config/i386bsdi.mh
echo x - bfd/hosts/i386bsdi.h
sed 's/^X//' >bfd/hosts/i386bsdi.h << 'END-of-bfd/hosts/i386bsdi.h'
X/* Intel 386 running BSD/386 Unix )from BSD Inc. */
X#include <fcntl.h>
X#include <errno.h>
X#include <stdio.h>
X#include <stdlib.h>
X#include <sys/types.h>
X#include <sys/stat.h>
X#include <ctype.h>
X#include <string.h>
X#include <sys/file.h>
X#include <machine/param.h>
X#include <machine/vmparam.h>
X
X#ifndef O_ACCMODE
X#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
X#endif
X
X#define SEEK_SET 0
X#define SEEK_CUR 1
X
X#define HOST_PAGE_SIZE NBPG
X#define HOST_MACHINE_ARCH bfd_arch_i386
X#define HOST_TEXT_START_ADDR USRTEXT
X#define HOST_STACK_END_ADDR USRSTACK
X
X#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(core_bfd) \
X ((core_bfd)->tdata.trad_core_data->u.u_sig)
X
X#define u_comm u_kproc.kp_proc.p_comm
X
X/* EXACT TYPES */
Xtypedef char int8e_type;
Xtypedef unsigned char uint8e_type;
Xtypedef short int16e_type;
Xtypedef unsigned short uint16e_type;
Xtypedef int int32e_type;
Xtypedef unsigned int uint32e_type;
X
X/* CORRECT SIZE OR GREATER */
Xtypedef char int8_type;
Xtypedef unsigned char uint8_type;
Xtypedef short int16_type;
Xtypedef unsigned short uint16_type;
Xtypedef int int32_type;
Xtypedef unsigned int uint32_type;
X
X#include "fopen-same.h"
END-of-bfd/hosts/i386bsdi.h
echo x - bfd/i386bsdi.c
sed 's/^X//' >bfd/i386bsdi.c << 'END-of-bfd/i386bsdi.c'
X/* BFD back-end for i386 a.out binaries under BSDI.
X Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
X
XThis file is part of BFD, the Binary File Descriptor library.
X
XThis program is free software; you can redistribute it and/or modify
Xit under the terms of the GNU General Public License as published by
Xthe Free Software Foundation; either version 2 of the License, or
X(at your option) any later version.
X
XThis program is distributed in the hope that it will be useful,
Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
XGNU General Public License for more details.
X
XYou should have received a copy of the GNU General Public License
Xalong with this program; if not, write to the Free Software
XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
X
X#define QMAGIC 0314 /* Compact demand-load format */
X
X#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
X && N_MAGIC(x) != NMAGIC \
X && N_MAGIC(x) != ZMAGIC \
X && N_MAGIC(x) != QMAGIC)
X
X#define PAGE_SIZE 4096
X#define SEGMENT_SIZE PAGE_SIZE
X#define DEFAULT_ARCH bfd_arch_i386
X#define BYTES_IN_WORD 4
X#define ARCH 32
X
X#define _NO_PAGE0(x) (N_MAGIC(x) == QMAGIC)
X#define _HOLE_IN_FILE(x) (N_MAGIC(x) == ZMAGIC || N_MAGIC(x) == QMAGIC)
X#define _HOLE_IN_ADDR(x) (_HOLE_IN_FILE(x) || N_MAGIC(x) == NMAGIC)
X
X#define N_HEADER_IN_TEXT(x) _NO_PAGE0(x)
X#define N_SHARED_LIB 0
X
X#define N_TXTSIZE(x) ((x).a_text)
X#define N_TXTADDR(x) (_NO_PAGE0(x) ? PAGE_SIZE : 0)
X#define N_TXTOFF(x) (_NO_PAGE0(x) ? 0 : (N_MAGIC(x) == ZMAGIC ? \
X PAGE_SIZE : EXEC_BYTES_SIZE))
X
X#define N_DATADDR(x) (N_TXTADDR(x) + (_HOLE_IN_ADDR(x) ? \
X (PAGE_SIZE + (x).a_text - 1 & ~(PAGE_SIZE-1)) : \
X (x).a_text))
X#define N_DATOFF(x) (N_TXTOFF(x) + (_HOLE_IN_FILE(x) ? \
X (PAGE_SIZE + (x).a_text - 1 & ~(PAGE_SIZE-1)) : \
X (x).a_text))
X
X#define MY(OP) CAT(i386bsdi_,OP)
X#define TARGETNAME "a.out-i386(bsdi)"
X
X#include "bfd.h"
X#include "sysdep.h"
X#include "libbfd.h"
X#include "libaout.h"
X
X#include "aout-target.h"
END-of-bfd/i386bsdi.c
echo x - gdb/config/i386bsdi.mt
sed 's/^X//' >gdb/config/i386bsdi.mt << 'END-of-gdb/config/i386bsdi.mt'
X# Target: Intel 386 running BSD
XTDEPFILES= i386-tdep.o i386-pinsn.o
XTM_FILE= tm-i386bsdi.h
END-of-gdb/config/i386bsdi.mt
echo x - gdb/tm-i386bsdi.h
sed 's/^X//' >gdb/tm-i386bsdi.h << 'END-of-gdb/tm-i386bsdi.h'
X/* Macro definitions for i386 running under BSDI Unix.
X Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
X
XThis file is part of GDB.
X
XThis program is free software; you can redistribute it and/or modify
Xit under the terms of the GNU General Public License as published by
Xthe Free Software Foundation; either version 2 of the License, or
X(at your option) any later version.
X
XThis program is distributed in the hope that it will be useful,
Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
XGNU General Public License for more details.
X
XYou should have received a copy of the GNU General Public License
Xalong with this program; if not, write to the Free Software
XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
X
X/* Override number of expected traps from sysv. */
X#define START_INFERIOR_TRAPS_EXPECTED 2
X
X/* Most definitions from sysv could be used. */
X#include "tm-i386v.h"
X
X/* Define this if the C compiler puts an underscore at the front
X of external names before giving them to the linker. */
X#define NAMES_HAVE_UNDERSCORE
X
X/* BSD/386 cannot handle all segment registers. */
X#undef NUM_REGS
X#define NUM_REGS 14
END-of-gdb/tm-i386bsdi.h
exit
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads