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

Yao Qi yao@codesourcery.com
Mon Jun 24 13:47:00 GMT 2013


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 (齐尧)



More information about the Gdb-patches mailing list