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

Luis Machado
2013-06-24T13:47:16Z

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