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

Yao Qi
2013-06-24T13:42:34Z

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.

--
Yao (é½å°§)