From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8247 invoked by alias); 22 Apr 2002 11:18:55 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 8225 invoked from network); 22 Apr 2002 11:18:52 -0000 Received: from unknown (HELO pizda.ninka.net) (216.101.162.242) by sources.redhat.com with SMTP; 22 Apr 2002 11:18:52 -0000 Received: from localhost (IDENT:davem@localhost.localdomain [127.0.0.1]) by pizda.ninka.net (8.9.3/8.9.3) with ESMTP id EAA05258 for ; Mon, 22 Apr 2002 04:09:49 -0700 Date: Mon, 22 Apr 2002 04:18:00 -0000 Message-Id: <20020422.040949.16307644.davem@redhat.com> To: gdb@sources.redhat.com Subject: multi-arch TODO From: "David S. Miller" Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-04/txt/msg00361.txt.bz2 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.