From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32130 invoked by alias); 25 Jun 2013 15:01:26 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 32119 invoked by uid 89); 25 Jun 2013 15:01:26 -0000 X-Spam-SWARE-Status: No, score=-8.1 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 25 Jun 2013 15:01:22 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r5PF1H11017489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 25 Jun 2013 11:01:18 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r5PF1F7H019883; Tue, 25 Jun 2013 11:01:15 -0400 Message-ID: <51C9B0BA.20707@redhat.com> Date: Tue, 25 Jun 2013 15:03:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 MIME-Version: 1.0 To: lgustavo@codesourcery.com CC: "'gdb-patches@sourceware.org'" , Mike Frysinger , Yao Qi Subject: Re: [PATCH, gdbserver] Further cleanup of FDPIC/DSBT divergences References: <51C34F14.8070803@codesourcery.com> In-Reply-To: <51C34F14.8070803@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2013-06/txt/msg00706.txt.bz2 On 06/20/2013 07:51 PM, Luis Machado wrote: > Hi, > > At some point, c6x used different data structures for its DSBT-based > loadmap. > > DSBT-based > > struct target_loadmap > { > /* Protocol version number, must be zero. */ > Elf32_Word version; > /* Pointer to the DSBT table, its size, and the DSBT index. */ > unsigned *dsbt_table; > unsigned dsbt_size, dsbt_index; > /* Number of segments in this map. */ > Elf32_Word nsegs; > /* The actual memory map. */ > struct target_loadseg segs[/*nsegs*/]; > }; > > FDPIC-based > > struct target_loadmap > { > /* Protocol version number, must be zero. */ > Elf32_Half version; > /* Number of segments in this map. */ > Elf32_Half nsegs; > /* The actual memory map. */ > struct target_loadseg segs[/*nsegs*/]; > }; > > We shared a little bit of code with FDPIC-based targets though... > > struct target_loadseg > { > /* Core address to which the segment is mapped. */ > Elf32_Addr addr; > /* VMA recorded in the program header. */ > Elf32_Addr p_vaddr; > /* Size of this segment in memory. */ > Elf32_Word p_memsz; > }; > > Things have changed, and c6x is now using the exact same data structures > as FDPIC-based targets in uClibc. Please refer to > http://lists.uclibc.org/pipermail/uclibc/2013-May/047789.html for the > uClibc changes that led to this. > > Mark Salter, the author of the uClibc change, has agreed with the > solution i proposed: > http://lists.uclibc.org/pipermail/uclibc/2013-May/047790.html. > > It is all good, but we've been conditionalizing the c6x-specific > target_loadmap data structure based on the presence of PT_GETDSBT. This > has always been defined in uClibc and, since Mark's change, it doesn't > work as a hint of whether to use the new or the old target_loadmap data > structure anymore. Therefore we will/already have a potential problem > with backwards compatibility. > > Bernhard has stated that backwards compatibility on uClibc's side is not > a problem: http://lists.uclibc.org/pipermail/uclibc/2013-June/047801.html. > > With all that exposed, my proposed change to gdbserver is to drop all > the DSBT-specific bits, remove their definitions and explicitly use > FDPIC definitions instead, making things a little bit cleaner. > > In the following patch i also changed the code slightly to stop defining > linux_read_loadmap to NULL and i switched to explicitly setting the > target hook to NULL in the absence of the required definition. This is fine with me. Does this mean that solib-frv.c / solib-dsbt.c and the solib-fdpic.c from http://www.sourceware.org/ml/gdb-patches/2010-12/msg00291.html ? can all be combined? I'm confused on the current state of bfin solib debugging -- it is still depending on out of tree patches? -- Pedro Alves