Patchwork svr4.h avoidance: m32c

login
register
mail settings
Submitter Joseph S. Myers
Date Dec. 14, 2010, 12:11 a.m.
Message ID <Pine.LNX.4.64.1012140009490.18455@digraph.polyomino.org.uk>
Download mbox | patch
Permalink /patch/75440/
State New
Headers show

Comments

Joseph S. Myers - Dec. 14, 2010, 12:11 a.m.
This patch in the series removing svr4.h from the headers used by
particular targets in GCC stops m32c-*-elf* and m32c-*-rtems* (that
is, all m32c-* targets) from using svr4.h.

The macros used from svr4.h are added to m32c.h.  For LINK_SPEC I used
the same simplified definition I used for other targets (see
<http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00588.html>), and for
ENDFILE_SPEC I also simplified the svr4.h definition, removing -pg
support since none of the other m32c specs have such support.  (For
RTEMS, ENDFILE_SPEC in turn ends up getting overridden to empty by
config/rtems.h.)

Tested building cc1 and xgcc for crosses to m32c-elf and m32c-rtems.
OK to commit?

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

	* config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
DJ Delorie - Dec. 14, 2010, 12:17 a.m.
> Tested building cc1 and xgcc for crosses to m32c-elf and m32c-rtems.
> OK to commit?

Ok.

Patch

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 167746)
+++ gcc/config.gcc	(working copy)
@@ -2675,13 +2675,13 @@  am33_2.0-*-linux*)
 	use_collect2=no
 	;;
 m32c-*-rtems*)
-	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
+	tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
 	tmake_file="${tmake_file} t-rtems"
 	c_target_objs="m32c-pragma.o"
 	cxx_target_objs="m32c-pragma.o"
  	;;
 m32c-*-elf*)
-	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
+	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
 	c_target_objs="m32c-pragma.o"
 	cxx_target_objs="m32c-pragma.o"
  	;;
Index: gcc/config/m32c/m32c.h
===================================================================
--- gcc/config/m32c/m32c.h	(revision 167746)
+++ gcc/config/m32c/m32c.h	(working copy)
@@ -27,6 +27,13 @@ 
 #undef  STARTFILE_SPEC
 #define STARTFILE_SPEC "crt0.o%s crtbegin.o%s"
 
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
+
+#undef  LINK_SPEC
+#define LINK_SPEC "%{h*} %{v:-V} \
+		   %{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic}"
+
 /* There are four CPU series we support, but they basically break down
    into two families - the R8C/M16C families, with 16-bit address
    registers and one set of opcodes, and the M32CM/M32C group, with
@@ -190,6 +197,18 @@  machine_function;
 #undef UINTPTR_TYPE
 #define UINTPTR_TYPE (TARGET_A16 ? "unsigned int" : "long unsigned int")
 
+#undef  SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef  PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
+#undef  WCHAR_TYPE
+#define WCHAR_TYPE "long int"
+
+#undef  WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE BITS_PER_WORD
+
 /* REGISTER USAGE */
 
 /* Register Basics */