config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
authorDouglas B Rupp <rupp@gnat.com>
Mon, 5 Aug 2002 18:53:16 +0000 (18:53 +0000)
committerDouglas Rupp <rupp@gcc.gnu.org>
Mon, 5 Aug 2002 18:53:16 +0000 (18:53 +0000)
2002-08-05  Douglas B Rupp  <rupp@gnat.com>

* config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
* config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
drectve_section): Define.
* config/i386/t-interix: Replace interix.o rule with winnt.o.
* config/i386/interix.c: Remove.

From-SVN: r56056

gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/i386-interix.h
gcc/config/i386/interix.c [deleted file]
gcc/config/i386/t-interix

index be60ff1..c59b320 100644 (file)
@@ -1,3 +1,11 @@
+2002-08-05  Douglas B Rupp  <rupp@gnat.com>
+
+       * config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
+       * config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
+       drectve_section): Define.
+       * config/i386/t-interix: Replace interix.o rule with winnt.o.
+       * config/i386/interix.c: Remove.
+
 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
 
        * attribs.c: Don't include obstack.h.
index 5b8e6ea..8476023 100644 (file)
@@ -1343,7 +1343,7 @@ i[34567]86-*-interix3*)
        xm_file="i386/xm-i386-interix.h"
        xm_defines=POSIX
        tmake_file="t-interix i386/t-interix"
-       extra_objs=interix.o
+       extra_objs=winnt.o
        xmake_file="x-interix"
        if test x$enable_threads = xyes ; then
                thread_file='posix'
@@ -1357,7 +1357,7 @@ i[34567]86-*-interix*)
        xm_file="i386/xm-i386-interix.h"
        xm_defines=POSIX
        tmake_file="t-interix i386/t-interix"
-       extra_objs=interix.o
+       extra_objs=winnt.o
        if test x$enable_threads = xyes ; then
                thread_file='posix'
        fi
index 6d74150..d80538f 100644 (file)
@@ -237,6 +237,12 @@ Boston, MA 02111-1307, USA.  */
 #undef LD_INIT_SWITCH
 #undef LD_FINI_SWITCH
 
+/* The following are needed for us to be able to use winnt.c, but are not
+   otherwise meaningful to Interix.  (The functions that use these are
+   never called because we don't do DLLs.) */
+#define TARGET_NOP_FUN_DLLIMPORT 1
+#define drectve_section()  /* nothing */
+
 #define EH_FRAME_IN_DATA_SECTION
 
 #define READONLY_DATA_SECTION_ASM_OP   "\t.section\t.rdata,\"r\""
diff --git a/gcc/config/i386/interix.c b/gcc/config/i386/interix.c
deleted file mode 100644 (file)
index e2222ca..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Subroutines for insn-output.c for Windows NT.
-   Copyright (C) 1998, 1999, 2002 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.  */
-
-#include "config.h"
-#include "system.h"
-#include "rtl.h"
-#include "regs.h"
-#include "hard-reg-set.h"
-#include "output.h"
-#include "tree.h"
-#include "flags.h"
-
-/* Return string which is the former assembler name modified with a 
-   suffix consisting of an atsign (@) followed by the number of bytes of 
-   arguments */
-
-const char *
-gen_stdcall_suffix (decl)
-     tree decl;
-{
-  int total = 0;
-  /* ??? This probably should use XSTR (XEXP (DECL_RTL (decl), 0), 0) instead
-     of DECL_ASSEMBLER_NAME.  */
-  const char *const asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-  char *newsym;
-
-  if (TYPE_ARG_TYPES (TREE_TYPE (decl)))
-    if (TREE_VALUE (tree_last (TYPE_ARG_TYPES (TREE_TYPE (decl)))) 
-        == void_type_node)
-      {
-       tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
-
-       while (TREE_VALUE (formal_type) != void_type_node)
-         {
-           int parm_size
-             = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
-           /* Must round up to include padding.  This is done the same
-              way as in store_one_arg.  */
-           parm_size = ((parm_size + PARM_BOUNDARY - 1)
-                        / PARM_BOUNDARY * PARM_BOUNDARY);
-           total += parm_size;
-           formal_type = TREE_CHAIN (formal_type);
-         }
-      }
-
-  newsym = xmalloc (strlen (asmname) + 10);
-  sprintf (newsym, "%s@%d", asmname, total/BITS_PER_UNIT);
-  return IDENTIFIER_POINTER (get_identifier (newsym));
-}
-
-void
-i386_interix_encode_section_info (decl, first)
-     tree decl;
-     int first;
-{
-  if (flag_pic)
-    {
-      rtx rtl = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd'
-                ? TREE_CST_RTL (decl) : DECL_RTL (decl));
-      SYMBOL_REF_FLAG (XEXP (rtl, 0))
-       = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd'
-          || ! TREE_PUBLIC (decl));
-    }
-  if (first && TREE_CODE (decl) == FUNCTION_DECL)
-    if (lookup_attribute ("stdcall",
-                         TYPE_ATTRIBUTES (TREE_TYPE (decl))))
-      XEXP (DECL_RTL (decl), 0) =
-       gen_rtx (SYMBOL_REF, Pmode, gen_stdcall_suffix (decl));
-}
-
-#if 0  
-/* Turn this back on when the linker is updated to handle grouped
-   .data$ sections correctly. See corresponding note in i386/interix.h. 
-   MK.  */
-
-/* Cover function for UNIQUE_SECTION.  */
-
-void
-i386_pe_unique_section (decl, reloc)
-     tree decl;
-     int reloc;
-{
-  int len;
-  const char *name;
-  char *string,*prefix;
-
-  name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-  name = (* targetm.strip_name_encoding) (name);
-
-  /* The object is put in, for example, section .text$foo.
-     The linker will then ultimately place them in .text
-     (everything from the $ on is stripped). Don't put
-     read-only data in .rdata section to avoid a PE linker 
-     bug when .rdata$* grouped sections are used in code
-     without a .rdata section.  */
-  if (TREE_CODE (decl) == FUNCTION_DECL)
-    prefix = ".text$";
-  else if (decl_readonly_section (decl, reloc))
-    prefix = ".rdata$";
-  else
-    prefix = ".data$";
-  len = strlen (name) + strlen (prefix);
-  string = alloca (len + 1);
-  sprintf (string, "%s%s", prefix, name);
-
-  DECL_SECTION_NAME (decl) = build_string (len, string);
-}
-
-#endif /* 0 */
index adcf593..9153348 100644 (file)
@@ -1,6 +1,6 @@
 LIB1ASMSRC = i386/cygwin.asm
 LIB1ASMFUNCS = _chkstk
 
-interix.o: $(srcdir)/config/i386/interix.c
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/i386/interix.c
+winnt.o: $(srcdir)/config/i386/winnt.c
+       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/i386/winnt.c