OSDN Git Service

* config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
[pf3gnuchains/gcc-fork.git] / gcc / config / netbsd.h
index d7264d0..d8b23e0 100644 (file)
 #define GCC_INCLUDE_DIR "/usr/include"
 
 #undef INCLUDE_DEFAULTS
-#define INCLUDE_DEFAULTS               \
-  {                                    \
-    { GPLUSPLUS_INCLUDE_DIR, 1, 1 },   \
-    { GCC_INCLUDE_DIR, 0, 0 },         \
-    { 0, 0, 0 }                                \
+#define INCLUDE_DEFAULTS                       \
+  {                                            \
+    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },    \
+    { GCC_INCLUDE_DIR, "GCC", 0, 0 },          \
+    { 0, 0, 0, 0 }                             \
   }
 
 /* Under NetBSD, the normal location of the compiler back ends is the
 
 #undef LINK_SPEC
 #define LINK_SPEC \
-  "%{!nostartfiles:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} %{assert*}"
+  "%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{R*} %{static:-Bstatic} %{assert*}"
 
-
-/* We have atexit(3).  */
-
-#define HAVE_ATEXIT
+/* This defines which switch letters take arguments. */
+#undef SWITCH_TAKES_ARG
+#define SWITCH_TAKES_ARG(CHAR) \
+  (DEFAULT_SWITCH_TAKES_ARG(CHAR) \
+   || (CHAR) == 'R')
 
 /* Implicit library calls should use memcpy, not bcopy, etc.  */
 
 #define TARGET_MEM_FUNCTIONS
+
+/* Handle #pragma weak and #pragma pack.  */
+
+#define HANDLE_SYSV_PRAGMA
 \f
 /*
  * Some imports from svr4.h in support of shared libraries.
  * Currently, we need the DECLARE_OBJECT_SIZE stuff.
  */
 
-/* Define the strings used for the special svr4 .type and .size directives.
-   These strings generally do not vary from one system running svr4 to
-   another, but if a given system (e.g. m88k running svr) needs to use
-   different pseudo-op names for these, they may be overridden in the
-   file which includes this one.  */
+/* Define the strings used for the .type, .size, and .set directives.
+   These strings generally do not vary from one system running netbsd
+   to another, but if a given system needs to use different pseudo-op
+   names for these, they may be overridden in the file which includes
+   this one.  */
 
 #undef TYPE_ASM_OP
 #undef SIZE_ASM_OP
-#define TYPE_ASM_OP    ".type"
-#define SIZE_ASM_OP    ".size"
+#undef SET_ASM_OP
+#define TYPE_ASM_OP    "\t.type\t"
+#define SIZE_ASM_OP    "\t.size\t"
+#define SET_ASM_OP     "\t.set\t"
 
 /* This is how we tell the assembler that a symbol is weak.  */
 
 #undef ASM_WEAKEN_LABEL
 #define ASM_WEAKEN_LABEL(FILE,NAME) \
-  do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
+  do { fputs ("\t.globl\t", FILE); assemble_name (FILE, NAME); \
+       fputc ('\n', FILE); \
+       fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
        fputc ('\n', FILE); } while (0)
 
 /* The following macro defines the format used to output the second
 #undef ASM_DECLARE_FUNCTION_NAME
 #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)                    \
   do {                                                                 \
-    fprintf (FILE, "\t%s\t ", TYPE_ASM_OP);                            \
+    fprintf (FILE, "%s", TYPE_ASM_OP);                                 \
     assemble_name (FILE, NAME);                                                \
     putc (',', FILE);                                                  \
     fprintf (FILE, TYPE_OPERAND_FMT, "function");                      \
 #undef ASM_DECLARE_OBJECT_NAME
 #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL)                      \
   do {                                                                 \
-    fprintf (FILE, "\t%s\t ", TYPE_ASM_OP);                            \
+    fprintf (FILE, "%s", TYPE_ASM_OP);                                 \
     assemble_name (FILE, NAME);                                                \
     putc (',', FILE);                                                  \
     fprintf (FILE, TYPE_OPERAND_FMT, "object");                                \
     if (!flag_inhibit_size_directive && DECL_SIZE (DECL))              \
       {                                                                        \
        size_directive_output = 1;                                      \
-       fprintf (FILE, "\t%s\t ", SIZE_ASM_OP);                         \
+       fprintf (FILE, "%s", SIZE_ASM_OP);                              \
        assemble_name (FILE, NAME);                                     \
        fprintf (FILE, ",%d\n",  int_size_in_bytes (TREE_TYPE (DECL))); \
       }                                                                        \
 #undef ASM_FINISH_DECLARE_OBJECT
 #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)        \
 do {                                                                    \
-     char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);                  \
+     const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0);            \
      if (!flag_inhibit_size_directive && DECL_SIZE (DECL)               \
          && ! AT_END && TOP_LEVEL                                       \
         && DECL_INITIAL (DECL) == error_mark_node                       \
         && !size_directive_output)                                      \
        {                                                                \
         size_directive_output = 1;                                      \
-        fprintf (FILE, "\t%s\t ", SIZE_ASM_OP);                         \
+        fprintf (FILE, "%s", SIZE_ASM_OP);                              \
         assemble_name (FILE, name);                                     \
         fprintf (FILE, ",%d\n",  int_size_in_bytes (TREE_TYPE (DECL))); \
        }                                                                \
@@ -185,7 +194,7 @@ do {                                                                         \
        labelno++;                                                      \
        ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno);            \
        ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno);               \
-       fprintf (FILE, "\t%s\t ", SIZE_ASM_OP);                         \
+       fprintf (FILE, "%s", SIZE_ASM_OP);                              \
        assemble_name (FILE, (FNAME));                                  \
         fprintf (FILE, ",");                                           \
        assemble_name (FILE, label);                                    \