This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
multi-arch TODO
- From: "David S. Miller" <davem at redhat dot com>
- To: gdb at sources dot redhat dot com
- Date: Mon, 22 Apr 2002 04:09:49 -0700 (PDT)
- Subject: multi-arch TODO
I've run through the GDB internals doc and checked which target macros
described there still need multi-arching. Here is what I came up
with, and I hope this is useful for someone.
Probably this is all kept track of somewhere and I didn't notice it.
For example, gdb/TODO did not have a pointer to some updated list
like this.
Anyways, enjoy. Based upon commentary and my own discovery I'll
attempt to resolve some of these and send patches to gdb-patches.
Multi-arch remaining:
DBX_PARM_SYMBOL_CLASS - Appears to only be used by i960. Easy to convert.
DISABLE_UNSETTABLE_BREAK - Bleh, foo-solib.h stuff, may not be easy.
END_OF_TEXT_DEFAULT - Only used by os9kread.c???
FRAME_ARGS_ADDRESS_CORRECT - Only defined by vax and i960 targets.
Probably it is more profitable to delete this thing than to try
and multi-arch it.
FUNCTION_EPILOGUE_SIZE - Weird COFF issue, only defined by m68k/tm-dpx2.h
and ns32k/tm-umax.h targets. Probably not worth multi-arching,
but it should be easy to do so.
GCC{,2}_COMPILED_FLAG_SYMBOL - Only overridden by m68k/tm-delta68.h target
Very easy to multi-arch.
SYMBOLS_CAN_START_WITH_DOLLAR - Easy to convert, only HPUX targets use it.
IN_SIGTRAMP, SIGTRAMP_START, SIGTRAMP_END - Handled by Andrew's pending
PC_IN_SIGTRAMP changes.
IN_SOLIB_RETURN_TRAMPOLINE - Easy to do.
IN_SOLIB_DYNSYM_RESOLVE_CODE - Minor hackery needed to pull this off.
SKIP_SOLIB_RESOLVER - Easy to do.
IS_TRAPPED_INTERNALVAR - Strange hack used by h8500 port, probably
not worth mutli-arching.
NEED_TEXT_START_END - Strange hack used by a29k (OBSOLETE) and m88k
targets, plus hppah native code. Wants cleaning up.
NO_HIF_SUPPORT - Obsolete a29k stuff, should kill from docs too.
SOFUN_ADDRESS_MAYBE_MISSING - Gross hack time... some compilation
environments don't fill in N_FUN/N_SO stabs, you have to compute
them by hand by looking up function names in the symbol table and
so forth.
Much confusion in this area, some Linux targets define this, some
not. All Solaris targets define it, but that makes sense based upon
the commentary around the changes this macro define protects.
Why don't all Linux targets define this? Do some binutils ports
perform this optimization and others not? Or was there some bug
in N_FUN/N_SO stabs in binutils and/or gcc that this is papering
around? kevinb@cyghat.com is the one who added this to powerpc
and i386 Linux.
PCC_SOL_BROKEN - Not defined by anyone! Documentation states this
is some workaround for the Convex target. Should probably kill
the code protected by this in dbxread.c
PRINT_REGISTER_HOOK - Should probably be replaced with a more reasonable
interface. Probably two macros, one returns whether REGNO needs to
be printed specially by the target. A second macro is invoked to print
the register if the first macro returns true else the standard register
printing code in infcmd.c is used.
PRINT_TYPELESS_INTEGER - Nobody defines this! Should be killed probably.
Another bogon that only the Convex port used.
PROCESS_LINENUMBER_HOOK - Easy to multi-arch.
PROLOGUE_FIRSTLINE_OVERLAP - Docs say this is another Convex port bogon,
but in reality powerpc Linux uses it too. Regardless, easy to multi-arch.
SHIFT_INST_REGS - Some strange m88k hack, wants cleaning up.
STEP_SKIPS_DELAY - Only used by MIPS port. I used to know the MIPS delay
slot semantics backwards and forwards, and even though my recollection
now is foggy I really don't recall anything that should make this thing
necessary insofar as the Sparc has the same issues and does not require
this macro to be defined in GDB.
Anyway, easy to multi-arch.
SUN_FIXED_LBRAC_BUG - Some SunOS compiler tool bug workaround.
SYMBOL_RELOADING_DEFAULT - Docs say it is set by VXWORKS, but is isn't
actually set by anyone. Should probably kill all references.
TARGET_COMPLEX_BIT - Remnant in documentation, not referenced anywhere
in any GDB code. Needs to be killed from docs.
TARGET_DOUBLE_COMPLEX_BIT - Likewise.
TARGET_HAS_HARDWARE_WATCHPOINTS - A pretty involved area, involving this
and several other macros. Probably the whole set of interfaces wants
cleaning up, perhaps encapsulate it into a single descriptor struct of
some sort (containing attribute flags and the insert/remove hw brkpt
function methods). Then the interface just evaluates to the descriptor
instead of the alphabet soup we have for interfacing this things right now.
VARIABLES_INSIDE_BLOCK - Easy to multi-arch.
OS9K_VARIABLES_INSIDE_BLOCk - Nobody sets this, used only by os9kread.c
BPT_VECTOR - M68K target internal macro, probably should delete
from generic target internals documentation
REMOTE_BPT_VECTOR - Likewise.
STACK_END_ADDR - This should be deleted from the obsolete section of
the docs as target dependent code only defines and uses it internally
and for their' own purposes.
USE_GENERIC_DUMMY_FRAMES - This is listed in HOST conditional in the
GDB internals docs, FIXME! It is multi-arched already, but I wanted
to make a note of this doc bug.