* Makefile.in (OTHERS): Add gcc.patch.
* partial-stab.h (N_SO): Fix handling of redundant SOs (again...)
This commit is contained in:
parent
345e9ab8dc
commit
cdaa27e9ae
|
@ -1,3 +1,8 @@
|
|||
Thu Jul 16 13:37:09 1992 Stu Grossman (grossman at cygnus.com)
|
||||
|
||||
* Makefile.in (OTHERS): Add gcc.patch.
|
||||
* partial-stab.h (N_SO): Fix handling of redundant SOs (again...)
|
||||
|
||||
Thu Jul 16 12:07:40 1992 Fred Fish (fnf@cygnus.com)
|
||||
|
||||
* dwarfread.c (LCC_PRODUCER): Change to match current NCR
|
||||
|
|
|
@ -168,21 +168,12 @@ DIST=gdb
|
|||
LINT=/usr/5bin/lint
|
||||
LINTFLAGS= -I${BFD_DIR}
|
||||
|
||||
# Select the default C++ demangling style to use. The default is "auto",
|
||||
# which allows gdb to attempt to pick an appropriate demangling style for
|
||||
# the executable it has loaded. It can be set to a specific style ("gnu",
|
||||
# "lucid", "cfront", etc) in which case gdb will never attempt to do auto
|
||||
# selection of the style unless you do an explicit "set demangle auto".
|
||||
# To select one of these as the default, set DEMANGLING_STYLE in the
|
||||
# appropriate target dependent makefile fragment.
|
||||
DEMANGLING_STYLE = "gnu"
|
||||
|
||||
# Select demangler to use.
|
||||
# Select demangler to use. Currently gdb only supports inclusion of a
|
||||
# single demangler. The default demangler (cplus-dem.c) can demangle
|
||||
# several different styles that differ in only minor details. See
|
||||
# demangle.c information about selecting styles.
|
||||
DEMANGLER = cplus-dem
|
||||
|
||||
# Select options to use when compiling ${DEMANGLER}.c.
|
||||
DEMANGLE_OPTS = -DDEMANGLING_STYLE=${DEMANGLING_STYLE}
|
||||
|
||||
# Host and target-dependent makefile fragments come in here.
|
||||
####
|
||||
# End of host and target-dependent makefile fragments
|
||||
|
@ -262,7 +253,7 @@ OTHERS = Makefile.in depend alldeps.mak createtags munch configure.in \
|
|||
.gdbinit COPYING $(YYFILES) \
|
||||
copying.c Convex.notes copying.awk \
|
||||
saber.suppress standalone.c stuff.c kdb-start.c \
|
||||
putenv.c
|
||||
putenv.c gcc.patch
|
||||
|
||||
# Subdirectories of gdb, which should be included in their entirety in
|
||||
# gdb-xxx.tar.Z:
|
||||
|
@ -710,15 +701,10 @@ gdb.cxref: $(SFILES)
|
|||
|
||||
force_update:
|
||||
|
||||
# Generate the demangler linked in with gdb. Also create a standalone
|
||||
# demangler if so desired ("make demangle").
|
||||
# Create a standalone demangler if so desired ("make demangle").
|
||||
|
||||
${DEMANGLER}.o: ${DEMANGLER}.c
|
||||
${CC} -c ${INTERNAL_CFLAGS} ${DEMANGLE_OPTS} \
|
||||
`echo ${srcdir}/${DEMANGLER}.c | sed 's,^\./,,'`
|
||||
|
||||
demangle: ${DEMANGLER}.c
|
||||
${CC} -o $@ -DMAIN ${INTERNAL_CFLAGS} ${DEMANGLE_OPTS} \
|
||||
demangle: ${srcdir}/${DEMANGLER}.c
|
||||
${CC} -o $@ -DMAIN ${INTERNAL_CFLAGS} \
|
||||
`echo ${srcdir}/${DEMANGLER}.c | sed 's,^\./,,'`
|
||||
|
||||
# GNU Make has an annoying habit of putting *all* the Makefile variables
|
||||
|
|
|
@ -198,27 +198,35 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
|
||||
case N_SO: {
|
||||
unsigned long valu = CUR_SYMBOL_VALUE;
|
||||
static int last_so_symnum = -10;
|
||||
static int dir_so_symnum = -10;
|
||||
int tmp;
|
||||
static int prev_so_symnum = -10;
|
||||
static int first_so_symnum;
|
||||
char *p;
|
||||
|
||||
past_first_source_file = 1;
|
||||
|
||||
if (prev_so_symnum != symnum - 1)
|
||||
{ /* Here if prev stab wasn't N_SO */
|
||||
first_so_symnum = symnum;
|
||||
|
||||
if (pst)
|
||||
{
|
||||
END_PSYMTAB (pst, psymtab_include_list, includes_used,
|
||||
symnum * symbol_size, valu,
|
||||
dependency_list, dependencies_used);
|
||||
pst = (struct partial_symtab *) 0;
|
||||
includes_used = 0;
|
||||
dependencies_used = 0;
|
||||
}
|
||||
}
|
||||
|
||||
prev_so_symnum = symnum;
|
||||
|
||||
/* End the current partial symtab and start a new one */
|
||||
|
||||
SET_NAMESTRING();
|
||||
|
||||
valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
|
||||
|
||||
if (pst)
|
||||
{
|
||||
END_PSYMTAB (pst, psymtab_include_list, includes_used,
|
||||
symnum * symbol_size, valu,
|
||||
dependency_list, dependencies_used);
|
||||
pst = (struct partial_symtab *) 0;
|
||||
includes_used = 0;
|
||||
dependencies_used = 0;
|
||||
}
|
||||
|
||||
/* Some compilers (including gcc) emit a pair of initial N_SOs.
|
||||
The first one is a directory name; the second the file name.
|
||||
If pst exists, is empty, and has a filename ending in '/',
|
||||
|
@ -226,30 +234,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
|
||||
p = strrchr (namestring, '/');
|
||||
if (p && *(p+1) == '\000')
|
||||
{
|
||||
dir_so_symnum = symnum;
|
||||
continue; /* Simply ignore directory name SOs */
|
||||
}
|
||||
continue; /* Simply ignore directory name SOs */
|
||||
|
||||
/* Some other compilers (C++ ones in particular) emit useless
|
||||
SOs for non-existant .c files. */
|
||||
SOs for non-existant .c files. We ignore all subsequent SOs that
|
||||
immediately follow the first. */
|
||||
|
||||
if (last_so_symnum == symnum - 1)
|
||||
continue; /* Ignore repeated SOs */
|
||||
last_so_symnum = symnum;
|
||||
|
||||
past_first_source_file = 1;
|
||||
|
||||
if (dir_so_symnum == symnum - 1) /* Was prev. SO a directory? */
|
||||
tmp = dir_so_symnum;
|
||||
else
|
||||
tmp = symnum;
|
||||
pst = START_PSYMTAB (objfile, section_offsets,
|
||||
namestring, valu,
|
||||
tmp * symbol_size,
|
||||
objfile -> global_psymbols.next,
|
||||
objfile -> static_psymbols.next);
|
||||
dir_so_symnum = -10;
|
||||
if (!pst)
|
||||
pst = START_PSYMTAB (objfile, section_offsets,
|
||||
namestring, valu,
|
||||
first_so_symnum * symbol_size,
|
||||
objfile -> global_psymbols.next,
|
||||
objfile -> static_psymbols.next);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue