[PATCH, gdbserver] Further cleanup of FDPIC/DSBT divergences

Luis Machado lgustavo@codesourcery.com
Thu Aug 8 16:41:00 GMT 2013


Hi,

On 06/24/2013 10:47 AM, Luis Machado wrote:
> On 06/24/2013 10:42 AM, Yao Qi wrote:
>> On 06/21/2013 02:51 AM, Luis Machado wrote:
>>> 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.
>>>
>>> What do you think? Yao? Mike?
>>
>> Luis,
>> Looks Mark S. proposed using FDPIC in tic6x port in kernel, instead of
>> DSBT which was used when we did the tic6x port in GDB.  I checked the
>> kernel log, and found that DSBT constants are never used in the official
>> kernel.  They only appeared in the linux-c6x.org git tree temporarily.
>> Since kernel and uclibc has migrated to the new scheme, I don't worry
>> about the compatibility issue here.
>>
>>>
>>> 2013-06-20  Luis Machado<lgustavo@codesourcery.com>
>>>
>>>     * linux-low.c: Remove check for PT_GETDSBT.
>>>     (target_loadmap): Remove data structure conditionalized by
>>>     the presence of PT_GETDSBT.
>>>     (LINUX_LOADMAP, LINUX_LOADMAP_EXEC,
>>>     LINUX_LOADMAP_INTERP): Remove definitions.
>>
>> Not sure we can break words in parentheses into multiple lines.  I
>> suggest:
>>
>>      (LINUX_LOADMAP, LINUX_LOADMAP_EXEC): Remove definitions.
>>      (LINUX_LOADMAP_INTERP): Likewise.
>>
>> the patch is OK to me, but we also need adjustments in solib-dsbt.c.
>> This patch should go in together with the changes in solib-dsbt.c.
>>
>
> Thanks Yao. You are correct. Let me address the solib-dsbt.c bits as well.
>
> Luis

Here is an updated patch that deals with solib-dsbt.c as well. The 
additional tic6x-specific fields from the loadmap were removed and 
dsbt_index is now fetched from the shared library file on disk instead 
of grabbing such information from the runtime loadmap. That information 
does not change anyway.

Since hardware for this platform is scarce, i could not test this change 
for real, only build it and certify it looks sane.

How does it look?

Luis

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dsbt.diff
Type: text/x-patch
Size: 10574 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20130808/a88512ea/attachment.bin>


More information about the Gdb-patches mailing list