Hi

sparc64*-*-rtems* ends up with __svr4__ defined. The attached
patch corrects that.

OK to apply?

013-05-10  Joel Sherrill  <joel.sherr...@oarcorp.com>

        * config.gcc (sparc64*-*-rtems*): Use sp64-rtemself.h.
        RTEMS target should not have -D__svr4__ in CPP_SUBTARGET_SPEC.
        * config/sparc/sp64-rtemself.h: New file.

--
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherr...@oarcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985

2013-05-10  Joel Sherrill  <joel.sherr...@oarcorp.com>

        * config.gcc (sparc64*-*-rtems*): Use sp64-rtemself.h
        RTEMS target should not have -D__svr4__ in CPP_SUBTARGET_SPEC.
        * config/sparc/sp64-rtemself.h: New file.

Index: gcc/config/sparc/sp64-rtemself.h
===================================================================
--- gcc/config/sparc/sp64-rtemself.h    (revision 0)
+++ gcc/config/sparc/sp64-rtemself.h    (working copy)
@@ -0,0 +1,37 @@
+/* Definitions for rtems targeting a SPARC64 using ELF.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Joel Sherrill (joel.sherr...@oarcorp.com).
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+/* Target OS builtins.  */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()               \
+  do                                           \
+    {                                          \
+       builtin_define ("__rtems__");           \
+       builtin_define ("__USE_INIT_FINI__");   \
+       builtin_assert ("system=rtems");        \
+    }                                          \
+  while (0)
+
+/* Use the default */
+#undef LINK_GCC_C_SEQUENCE_SPEC
+
+/* we are not svr4 */
+#undef CPP_SUBTARGET_SPEC
+#define CPP_SUBTARGET_SPEC ""
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc      (revision 198775)
+++ gcc/config.gcc      (working copy)
@@ -2516,7 +2516,7 @@
        tmake_file="${tmake_file} sparc/t-sparc"
        ;;
 sparc64-*-rtems*)
-       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h 
sparc/sp64-elf.h sparc/rtemself.h rtems.h"
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h 
sparc/sp64-elf.h sparc/sp64-rtemself.h rtems.h"
        extra_options="${extra_options}"
        tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64 t-rtems"
        ;;

Reply via email to