]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/rs6000/netbsd.h
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / rs6000 / netbsd.h
index d41e576d4e7a85357c9dab98a91ad1c5522102a5..637060e63f576fe2438a64469cc482c7411fe06f 100644 (file)
@@ -1,66 +1,91 @@
 /* Definitions of target machine for GNU compiler,
    for PowerPC NetBSD systems.
-   Copyright 2001 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC 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 2, or (at your option)
-any later version.
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-/* Under NetBSD, the normal location of the various *crt*.o files is
-   the /usr/lib directory [from config/netbsd.h].  */
-
-#undef STANDARD_STARTFILE_PREFIX
-#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
-
-/* FIXME: Should this macro be treated the same as for the other
-   spec's?  */
-/* NOTE: -dc and -dp are equivalent yet NetBSD's CC passes both both!
-   NetBSD's CC also passes -O1 but we can skip that.  NetBSD explictly
-   sets ``-e _start'', since LD knows this, skip it.  */
-
-#undef LINK_SHLIB_SPEC
-#define LINK_SHLIB_SPEC "\
-%{shared:-shared} \
-%{!shared: %{static:-dc -dp -static}} \
-%{!shared: %{!static:-dc -dp}} \
-"
-
-/* Override the defaults.  */
-#undef LIB_DEFAULT_SPEC
-#define LIB_DEFAULT_SPEC "%(lib_netbsd)"
-
-#undef STARTFILE_DEFAULT_SPEC
-#define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)"
-
-#undef ENDFILE_DEFAULT_SPEC
-#define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)"
-
-#undef LINK_START_DEFAULT_SPEC
-#define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)"
-
-#undef LINK_OS_DEFAULT_SPEC
-#define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)"
-
-#undef CPP_OS_DEFAULT_SPEC
-#define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)"
-
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)");
-
-/* Use STABS debugging information by default.  DWARF2 makes a mess of
-   the 1.5.2 linker.  */
-#undef  PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+   Copyright 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
+   Contributed by Wasabi Systems, Inc.
+
+   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/>.  */
+
+#undef  TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */
+#define TARGET_OS_CPP_BUILTINS()               \
+  do                                           \
+    {                                          \
+      NETBSD_OS_CPP_BUILTINS_ELF();            \
+      builtin_define ("__powerpc__");          \
+      builtin_assert ("cpu=powerpc");          \
+      builtin_assert ("machine=powerpc");      \
+    }                                          \
+  while (0)
+
+/* Override the default from rs6000.h to avoid conflicts with macros
+   defined in NetBSD header files.  */
+
+#undef  RS6000_CPU_CPP_ENDIAN_BUILTINS
+#define RS6000_CPU_CPP_ENDIAN_BUILTINS()       \
+  do                                           \
+    {                                          \
+      if (BYTES_BIG_ENDIAN)                    \
+       {                                       \
+         builtin_define ("__BIG_ENDIAN__");    \
+         builtin_assert ("machine=bigendian"); \
+       }                                       \
+      else                                     \
+       {                                       \
+         builtin_define ("__LITTLE_ENDIAN__"); \
+         builtin_assert ("machine=littleendian"); \
+       }                                       \
+    }                                          \
+  while (0)
+
+/* Make GCC agree with <machine/ansi.h>.  */
+
+#undef  SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef  PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
+/* Undo the spec mess from sysv4.h, and just define the specs
+   the way NetBSD systems actually expect.  */
+
+#undef  CPP_SPEC
+#define CPP_SPEC NETBSD_CPP_SPEC
+
+#undef  LINK_SPEC
+#define LINK_SPEC \
+  "%{!msdata=none:%{G*}} %{msdata=none:-G0} \
+   %(netbsd_link_spec)"
+
+#define NETBSD_ENTRY_POINT "_start"
+
+#undef  STARTFILE_SPEC
+#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC "%(netbsd_endfile_spec)"
+
+#undef  LIB_SPEC
+#define LIB_SPEC NETBSD_LIB_SPEC
+
+#undef  SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS                                  \
+  { "netbsd_link_spec",                NETBSD_LINK_SPEC_ELF },         \
+  { "netbsd_entry_point",      NETBSD_ENTRY_POINT },           \
+  { "netbsd_endfile_spec",     NETBSD_ENDFILE_SPEC },
+
+
+#undef  TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (NetBSD/powerpc ELF)");