Patchwork svr4.h avoidance: xtensa

login
register
mail settings
Submitter Joseph S. Myers
Date Dec. 13, 2010, 11:16 p.m.
Message ID <Pine.LNX.4.64.1012132315510.18455@digraph.polyomino.org.uk>
Download mbox | patch
Permalink /patch/75439/
State New
Headers show

Comments

Joseph S. Myers - Dec. 13, 2010, 11:16 p.m.
This patch in the series removing svr4.h from the headers used by
particular targets in GCC stops xtensa*-*-elf* and xtensa*-*-linux*
(that is, all xtensa*-* targets) from using svr4.h.

Both targets use the SIZE_TYPE and PTRDIFF_TYPE definitions from
svr4.h so those are added to xtensa/elf.h and xtensa/linux.h.  In
addition, because svr4.h is included after xtensa.h they get the
#undef of DBX_REGISTER_NUMBER from svr4.h; that also is added to
xtensa/elf.h and xtensa/linux.h to avoid this patch changing any
semantics.  (The target maintainers should note that the xtensa.h
definition of DBX_REGISTER_NUMBER is in fact not used by any target
configuration, and consider fixing this by either removing the
#undefs, if that is correct and does not cause compatibility problems,
or removing the xtensa.h definition and associated function.)

Tested building cc1 and xgcc for crosses to xtensa-elf and
xtensa-linux-gnu.  OK to commit?

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	(DBX_REGISTER_NUMBER): Undefine.
	* config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	(DBX_REGISTER_NUMBER): Undefine.
	* config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
Sterling Augustine - Dec. 13, 2010, 11:56 p.m.
On 12/13/2010 03:16 PM, Joseph S. Myers wrote:
 > This patch in the series removing svr4.h from the headers used by
 > particular targets in GCC stops xtensa*-*-elf* and xtensa*-*-linux*
 > (that is, all xtensa*-* targets) from using svr4.h.
....

Approved. Please apply.

I will take a look at the DBX_REGISTER_NUMBER issue shortly.

Thanks,

Sterling
sterling@tensilica.com

Patch

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 167746)
+++ gcc/config.gcc	(working copy)
@@ -2660,11 +2660,11 @@  xstormy16-*-elf)
 	extra_parts="crtbegin.o crtend.o"
 	;;
 xtensa*-*-elf*)
-	tm_file="${tm_file} dbxelf.h elfos.h svr4.h newlib-stdint.h xtensa/elf.h"
+	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
 	tmake_file="xtensa/t-xtensa xtensa/t-elf"
 	;;
 xtensa*-*-linux*)
-	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h xtensa/linux.h"
+	tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h xtensa/linux.h"
 	tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux"
 	;;
 am33_2.0-*-linux*)
Index: gcc/config/xtensa/linux.h
===================================================================
--- gcc/config/xtensa/linux.h	(revision 167746)
+++ gcc/config/xtensa/linux.h	(working copy)
@@ -27,6 +27,12 @@  along with GCC; see the file COPYING3.  
 #undef TARGET_VERSION
 #define TARGET_VERSION fputs (" (Xtensa GNU/Linux with ELF)", stderr);
 
+#undef SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
 #undef WCHAR_TYPE
 #define WCHAR_TYPE "long int"
 
@@ -60,5 +66,7 @@  along with GCC; see the file COPYING3.  
 /* Always enable "-fpic" for Xtensa Linux.  */
 #define XTENSA_ALWAYS_PIC 1
 
+#undef DBX_REGISTER_NUMBER
+
 #define MD_UNWIND_SUPPORT "config/xtensa/linux-unwind.h"
 
Index: gcc/config/xtensa/elf.h
===================================================================
--- gcc/config/xtensa/elf.h	(revision 167746)
+++ gcc/config/xtensa/elf.h	(working copy)
@@ -32,6 +32,12 @@  along with GCC; see the file COPYING3.  
 #undef TARGET_VERSION
 #define TARGET_VERSION fputs (" (Xtensa/ELF)", stderr);
 
+#undef SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
 #undef WCHAR_TYPE
 #define WCHAR_TYPE "short unsigned int"
 
@@ -75,6 +81,8 @@  along with GCC; see the file COPYING3.  
 /* Do not force "-fpic" for this target.  */
 #define XTENSA_ALWAYS_PIC 0
 
+#undef DBX_REGISTER_NUMBER
+
 /* Search for headers in $tooldir/arch/include and for libraries and
    startfiles in $tooldir/arch/lib.  */
 #define GCC_DRIVER_HOST_INITIALIZATION \