This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]