From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27809 invoked by alias); 13 Sep 2003 00:54: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 27776 invoked from network); 13 Sep 2003 00:54:53 -0000 Received: from unknown (HELO zenia.home) (12.223.225.216) by sources.redhat.com with SMTP; 13 Sep 2003 00:54:53 -0000 Received: by zenia.home (Postfix, from userid 5433) id 1DF6520758; Fri, 12 Sep 2003 19:52:57 -0500 (EST) To: Andrew Cagney Cc: gdb@sources.redhat.com Subject: Re: rolling 5.3.92 tomorrow References: <3F60852B.50205@redhat.com> <3F60D152.7080102@redhat.com> From: Jim Blandy Date: Sat, 13 Sep 2003 00:54:00 -0000 In-Reply-To: <3F60D152.7080102@redhat.com> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-09/txt/msg00179.txt.bz2 Andrew Cagney writes: > > http://sources.redhat.com/gdb/bugs/378 > > ``GNU/Linux'' ``Linux kernel'' > > The ARI's complaining about regressions in ppc-linux-tdep.c I think this is because I forgot to apply this patch to the 60 branch, too. I'll do so now. 2003-06-24 Jim Blandy * ppc-linux-tdep.c: More "Linux" -> "GNU/Linux". *** gdb/ppc-linux-tdep.c.~1.36.~ 2003-06-24 18:06:07.000000000 -0500 --- gdb/ppc-linux-tdep.c 2003-06-24 18:09:02.000000000 -0500 *************** *** 731,737 **** } ! /* If DESC is the address of a 64-bit PowerPC Linux function descriptor, return the descriptor's entry point. */ static CORE_ADDR ppc64_desc_entry_point (CORE_ADDR desc) --- 731,737 ---- } ! /* If DESC is the address of a 64-bit PowerPC GNU/Linux function descriptor, return the descriptor's entry point. */ static CORE_ADDR ppc64_desc_entry_point (CORE_ADDR desc) *************** *** 894,915 **** } ! /* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR) on PPC64 Linux. Usually a function pointer's representation is simply the address ! of the function. On Linux on the 64-bit PowerPC however, a function ! pointer is represented by a pointer to a TOC entry. This TOC entry ! contains three words, the first word is the address of the ! function, the second word is the TOC pointer (r2), and the third ! word is the static chain value. Throughout GDB it is currently ! assumed that a function pointer contains the address of the ! function, which is not easy to fix. In addition, the conversion of ! a function address to a function pointer would require allocation ! of a TOC entry in the inferior's memory space, with all its ! drawbacks. To be able to call C++ virtual methods in the inferior ! (which are called via function pointers), find_function_addr uses ! this function to get the function address from a function ! pointer. */ /* Return real function address if ADDR (a function pointer) is in the data space and is therefore a special function pointer. */ --- 894,915 ---- } ! /* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR) on PPC64 GNU/Linux. Usually a function pointer's representation is simply the address ! of the function. On GNU/Linux on the 64-bit PowerPC however, a ! function pointer is represented by a pointer to a TOC entry. This ! TOC entry contains three words, the first word is the address of ! the function, the second word is the TOC pointer (r2), and the ! third word is the static chain value. Throughout GDB it is ! currently assumed that a function pointer contains the address of ! the function, which is not easy to fix. In addition, the ! conversion of a function address to a function pointer would ! require allocation of a TOC entry in the inferior's memory space, ! with all its drawbacks. To be able to call C++ virtual methods in ! the inferior (which are called via function pointers), ! find_function_addr uses this function to get the function address ! from a function pointer. */ /* Return real function address if ADDR (a function pointer) is in the data space and is therefore a special function pointer. */ *************** *** 929,935 **** } ! /* On 64-bit PowerPC Linux, the ELF header's e_entry field is the address of a function descriptor for the entry point function, not the actual entry point itself. So to find the actual address at which execution should begin, we need to fetch the function's entry --- 929,935 ---- } ! /* On 64-bit PowerPC GNU/Linux, the ELF header's e_entry field is the address of a function descriptor for the entry point function, not the actual entry point itself. So to find the actual address at which execution should begin, we need to fetch the function's entry *************** *** 1062,1068 **** if (tdep->wordsize == 8) { ! /* Handle PPC64 Linux function pointers (which are really function descriptors). */ set_gdbarch_convert_from_func_ptr_addr (gdbarch, ppc64_linux_convert_from_func_ptr_addr); --- 1062,1068 ---- if (tdep->wordsize == 8) { ! /* Handle PPC64 GNU/Linux function pointers (which are really function descriptors). */ set_gdbarch_convert_from_func_ptr_addr (gdbarch, ppc64_linux_convert_from_func_ptr_addr);