Thread View: gnu.gdb.bug
1 messages
1 total messages
Started by Jyrki Kuoppala
Fri, 14 Jul 1989 14:47
Some diffs needed for GDB 3.2 on USG systems
Author: Jyrki Kuoppala
Date: Fri, 14 Jul 1989 14:47
Date: Fri, 14 Jul 1989 14:47
297 lines
8562 bytes
8562 bytes
There's some problems compiling GDB 3.2 on USG-based systems. This
diff gets GDB to compile and run on SVR2 systems with an add-on ndir
library.
The problems are:
- some systems need an extra libndir.a library and include ndir.h
- the special case for Altos in a.out.encap.h is actually not needed;
in the beginning I used it to get over a kernel bug, but it doesn't
quite do it so it's better removed
- coffread.c doesn't know about m68k magic
- in core.c <sys/page.h> and <sys/net.h> are needed at least for Altos
- I added definition of alloca to use builtin alloca in defs.h, so
you get along without an alloca in libc.a
- in readline.c, getpwuid() is struct passwd * instead of struct pwd *
- in readline.c, rl_prep_terminal and rl_reprep_terminal are
erraneously declared static
- in readline.c, MAX is used instead of max; MAX isn't defined on all
machines (happens to be on most Bsd machines like sun & vax, so this has
been unnoticed)
That's all folks, keep up the good work !
//Jyrki
Here's the diff:
diff -cr dist-gdb/Makefile dist-gdb.altos/Makefile
*** dist-gdb/Makefile Tue Jul 11 07:07:03 1989
--- dist-gdb.altos/Makefile Thu Jul 13 17:11:38 1989
***************
*** 93,101 ****
#MUNCH_DEFINE =
MUNCH_DEFINE = ${SYSV_DEFINE}
# Flags that describe where you can find the termcap library.
! # You may need to make other arrangements for USG.
TERMCAP = -ltermcap
# for BSD
CLIBS = ${ADD_FILES} ${TERMCAP}
--- 95,107 ----
#MUNCH_DEFINE =
MUNCH_DEFINE = ${SYSV_DEFINE}
+ #
+ # define this if you use <ndir.h>
+ NDIR_DEFINE = -DNDIR
+
# Flags that describe where you can find the termcap library.
! # You may need to make other arrangements for USG (ie. -ndir for dir library)
TERMCAP = -ltermcap
# for BSD
CLIBS = ${ADD_FILES} ${TERMCAP}
***************
*** 245,251 ****
# ${CC} -c ${CFLAGS} ${SYSV_DEFINE} history.c
readline/libreadline.a : force_update
! cd readline ; ${MAKE} "SYSV_DEFINE=${SYSV_DEFINE}" libreadline.a
force_update :
--- 251,257 ----
# ${CC} -c ${CFLAGS} ${SYSV_DEFINE} history.c
readline/libreadline.a : force_update
! cd readline ; ${MAKE} "SYSV_DEFINE=${SYSV_DEFINE}" "NDIR_DEFINE=${NDIR_DEFINE}" libreadline.a
force_update :
diff -cr dist-gdb/a.out.encap.h dist-gdb.altos/a.out.encap.h
*** dist-gdb/a.out.encap.h Thu Jun 1 00:55:21 1989
--- dist-gdb.altos/a.out.encap.h Thu Jul 13 13:39:07 1989
***************
*** 122,144 ****
#define N_TXTADDR(x) \
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
sizeof (struct coffheader) + sizeof (struct exec) : 0)
-
- #ifdef ALTOS
- #undef SEGMENT_SIZE
- #undef DEFAULT_MAGIC
- #define DEFAULT_MAGIC NMAGIC
- #define SEGMENT_SIZE 0x40000
- #define N_DATADDR(x) \
- ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
- (((N_TXTADDR(x)+(x).a_text+0x2000) / SEGMENT_SIZE + 1) * SEGMENT_SIZE + \
- (N_TXTADDR(x)+(x).a_text+0x2000) % 0x2000) : \
- (N_TXTADDR(x)+(x).a_text))
- #else /* not ALTOS */
-
#define SEGMENT_SIZE 0x400000
#define N_DATADDR(x) \
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
(SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \
(N_TXTADDR(x)+(x).a_text))
-
- #endif /* not ALTOS */
--- 124,132 ----
#define N_TXTADDR(x) \
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
sizeof (struct coffheader) + sizeof (struct exec) : 0)
#define SEGMENT_SIZE 0x400000
+
#define N_DATADDR(x) \
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
(SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \
(N_TXTADDR(x)+(x).a_text))
diff -cr dist-gdb/coffread.c dist-gdb.altos/coffread.c
*** dist-gdb/coffread.c Wed Jul 5 22:45:00 1989
--- dist-gdb.altos/coffread.c Thu Jul 13 13:40:01 1989
***************
*** 1081,1086 ****
--- 1081,1089 ----
switch (file_hdr->f_magic)
{
+ #ifdef MC68MAGIC
+ case MC68MAGIC:
+ #endif
#ifdef NS32GMAGIC
case NS32GMAGIC:
case NS32SMAGIC:
diff -cr dist-gdb/core.c dist-gdb.altos/core.c
*** dist-gdb/core.c Wed Jul 5 22:45:09 1989
--- dist-gdb.altos/core.c Thu Jul 13 13:41:10 1989
***************
*** 44,49 ****
--- 44,55 ----
#include <sys/file.h>
#include <sys/stat.h>
+ #ifdef USG
+ #include <sys/page.h>
+ #ifdef ALTOS
+ #include <sys/net.h>
+ #endif
+ #endif
#ifdef UMAX_CORE
#include <sys/ptrace.h>
#else
diff -cr dist-gdb/defs.h dist-gdb.altos/defs.h
*** dist-gdb/defs.h Mon Jul 10 03:26:33 1989
--- dist-gdb.altos/defs.h Thu Jul 13 13:41:59 1989
***************
*** 25,31 ****
--- 25,39 ----
extern char *savestring ();
extern char *concat ();
extern char *xmalloc (), *xrealloc ();
+ #ifdef __GNUC__
+ #define alloca __builtin_alloca
+ #else
+ #ifdef sparc
+ #include <alloca.h>
+ #else
extern char *alloca ();
+ #endif
+ #endif
extern int parse_escape ();
extern char *reg_names[];
***************
*** 88,95 ****
/* String containing the current directory (what getwd would return). */
char *current_directory;
-
- #ifdef sparc
- #include <alloca.h>
- #endif
-
--- 96,98 ----
diff -cr dist-gdb/readline/Makefile dist-gdb.altos/readline/Makefile
*** dist-gdb/readline/Makefile Sun Jul 9 02:03:50 1989
--- dist-gdb.altos/readline/Makefile Thu Jul 13 16:51:04 1989
***************
*** 20,26 ****
# GCC_SUNOS4_FLAG = -Bstatic
DEBUG_FLAGS = -g
# LDFLAGS = $(DEBUG_FLAGS)
! CFLAGS = $(DEBUG_FLAGS)
# If you don't have Gcc use cc.
# CC = cc
--- 20,26 ----
# GCC_SUNOS4_FLAG = -Bstatic
DEBUG_FLAGS = -g
# LDFLAGS = $(DEBUG_FLAGS)
! CFLAGS = $(DEBUG_FLAGS) $(SYSV_DEFINE) $(NDIR_DEFINE)
# If you don't have Gcc use cc.
# CC = cc
diff -cr dist-gdb/readline/history.c dist-gdb.altos/readline/history.c
*** dist-gdb/readline/history.c Sat Jul 8 00:31:15 1989
--- dist-gdb.altos/readline/history.c Thu Jul 13 13:42:39 1989
***************
*** 35,40 ****
--- 35,42 ----
#else
#if defined (sparc) && defined (sun)
#include <alloca.h>
+ #else
+ extern char *alloca ();
#endif
#endif
diff -cr dist-gdb/readline/readline.c dist-gdb.altos/readline/readline.c
*** dist-gdb/readline/readline.c Sat Jul 8 00:45:35 1989
--- dist-gdb.altos/readline/readline.c Thu Jul 13 16:58:14 1989
***************
*** 42,47 ****
--- 42,49 ----
#else
#if defined (sparc) && defined (sun)
#include <alloca.h>
+ #else
+ extern char *alloca ();
#endif
#endif
***************
*** 59,65 ****
#include <pwd.h>
#ifdef SYSV
! struct pwd *getpwuid (), *getpwent ();
#endif
#define HACK_TERMCAP_MOTION
--- 61,67 ----
#include <pwd.h>
#ifdef SYSV
! struct passwd *getpwuid (), *getpwent ();
#endif
#define HACK_TERMCAP_MOTION
***************
*** 67,73 ****
#ifndef SYSV
#include <sys/dir.h>
#else /* SYSV */
! #ifdef HPUX
#include <ndir.h>
#else
#include <dirent.h>
--- 69,75 ----
#ifndef SYSV
#include <sys/dir.h>
#else /* SYSV */
! #if defined(HPUX) || defined(NDIR)
#include <ndir.h>
#else
#include <dirent.h>
***************
*** 1450,1456 ****
#if defined(SYSV) || defined(HPUX)
static struct termio otio;
- static
rl_prep_terminal ()
{
int tty = open ("/dev/tty", O_RDONLY);
--- 1452,1457 ----
***************
*** 1469,1475 ****
close (tty);
}
- static
rl_deprep_terminal ()
{
int tty = open ("/dev/tty", O_RDONLY);
--- 1470,1475 ----
diff -cr dist-gdb/source.c dist-gdb.altos/source.c
*** dist-gdb/source.c Tue Jul 11 05:26:11 1989
--- dist-gdb.altos/source.c Thu Jul 13 16:58:33 1989
***************
*** 87,93 ****
sal = sals.sals[0];
free (sals.sals);
current_source_symtab = sal.symtab;
! current_source_line = MAX (sal.line - 9, 1);
return;
}
--- 87,93 ----
sal = sals.sals[0];
free (sals.sals);
current_source_symtab = sal.symtab;
! current_source_line = max (sal.line - 9, 1);
return;
}
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