]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Interix resurrection
authorDouglas Rupp <rupp@gcc.gnu.org>
Mon, 23 Jan 2012 06:25:28 +0000 (06:25 +0000)
committerDouglas Rupp <rupp@gcc.gnu.org>
Mon, 23 Jan 2012 06:25:28 +0000 (06:25 +0000)
2012-01-22  Douglas B Rupp  <rupp@gnat.com>

* <toplevel>/config/mh-interix: Remove as unneeded.
* <toplevel>/config/picflag.m4 (i[[34567]]86-*-interix3*):
Change triplet to i[[34567]]86-*-interix[[3-9]]*.

* <toplevel>/configure.ac: Remove reference to mh-interix.
* <toplevel>/configure: Regenerate.

* <toplevel>/libada/configure: Regenerate.

* <toplevel>libgcc/config.host (i[34567]86-*-interix3*):
Change triplet to i[34567]86-*-interix[3-9]*.
* <toplevel>/libgcc/configure: Regenerate.

* <toplevel>/liberty/configure: Regenerate.

* config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
configurations. Change triplet to i[34567]86-*-interix[3-9]*.
(extra_options) interix.opt -> i386/interix.opt"
(extra_objs):Add winnt-stubs.o
* configure.ac: Add interix to target_os .comm on PE check.
* configure: Regenerate.
* config/interix3.h: Delete and move bits to..
* config/interix.h: Delete and move bits to..
* config/i386/i386-interix3.h: Delete and move bits to..
* config/i386/i386-interix.h: ..here.
(TARGET_CPU_DEFAULT): Remove redefinition.
(TARGET_ASM_CONSTRUCTOR): Undefine.
(SUBTARGET_SWITCHES): Define for ms-bitfields.
(TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
(PTRDIFF_TYPE): Define.
(LONG_DOUBLE_TYPE_SIZE): Define.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
(SUBTARGET_OVERRIDE_OPTIONS): Remove.
(TARGET_SECTION_TYPE_FLAGS): Define.
(ASM_DECLARE_FUNCTION_NAME): Define.
(ASM_OUTPUT_EXTERNAL): Define.
(ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
(ASM_OUTPUT_ALIGNED_BSS): Define.
(PCC_BITFIELD_TYPE_MATTERS): Define.
(USE_CONST_SECTION): Define.
(SUBTARGET_ENCODE_SECTION_INFO): Remove.
(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
(SUPPORTS_ONE_ONLY): Remove.
(I386_PE_STRIP_ENCODING): Define.
* config/interix.opt: Delete and move bits to..
* config/i386/interix.opt: ..here. New.
(mpe-aligned-commons): Add.
* config/i386/t-interix: Add copyright header.
(winnt-stubs.o): Add rule.

* testsuite/gcc.dg/builtins-config.h: (HAVE_C99_RUNTIME):
Do not define for Interix.

From-SVN: r183406

25 files changed:
ChangeLog
config/ChangeLog
config/mh-interix [deleted file]
config/picflag.m4
configure
configure.ac
gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/i386-interix.h
gcc/config/i386/i386-interix3.h [deleted file]
gcc/config/i386/interix.opt [moved from gcc/config/interix.opt with 77% similarity]
gcc/config/i386/t-interix
gcc/config/interix.h [deleted file]
gcc/config/interix3.h [deleted file]
gcc/configure
gcc/configure.ac
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/builtins-config.h
libada/ChangeLog
libada/configure
libgcc/ChangeLog
libgcc/config.host
libgcc/configure
libiberty/ChangeLog
libiberty/configure

index 93f244680693ff6ea5694704bc5a92c0aa778265..7c1248377d64f078a232f0feb7cea264bcf8c2c7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-22  Douglas B Rupp  <rupp@ngnat.com>
+
+       * configure.ac: Remove reference to mh-interix.
+       * configure: Regenerate.
+
 2012-01-05  Richard Henderson  <rth@redhat.com>
 
        PR bootstrap/51072
index 840969fee2a9d65fec69c2875bb96751ce96861e..e2bf48d9ca5fe354bb8af14798c17aeea72c51fa 100644 (file)
@@ -1,3 +1,9 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/mh-interix: Remove as unneeded.
+       * config/picflag.m4 (i[[34567]]86-*-interix3*):
+        Change triplet to i[[34567]]86-*-interix[[3-9]]*.
+
 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        PR bootstrap/51734
diff --git a/config/mh-interix b/config/mh-interix
deleted file mode 100644 (file)
index 3be195b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# The shell may not be in /bin. 
-SHELL = sh
index a720e257c45d9a47ed6a4b13ebdddccb356a8b7a..bd818125a66b06fa1accd1b16541647e473bb2fc 100644 (file)
@@ -19,7 +19,7 @@ case "${$2}" in
        ;;
     i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
        ;;
-    i[[34567]]86-*-interix3*)
+    i[[34567]]86-*-interix[[3-9]]*)
        # Interix 3.x gcc -fpic/-fPIC options generate broken code.
        # Instead, we relocate shared libraries at runtime.
        ;;
index 4d09cbeb7bd449cadd4344eaf72bb97f0c4ee4c4..0bdbe4ddfaa1d5bc6d02da254f0cc365b15891d0 100755 (executable)
--- a/configure
+++ b/configure
@@ -3670,9 +3670,6 @@ fi
   *-mingw*)
     host_makefile_frag="config/mh-mingw"
     ;;
-  *-interix*)
-    host_makefile_frag="config/mh-interix"
-    ;;
   hppa*-hp-hpux10*)
     host_makefile_frag="config/mh-pa-hpux10"
     ;;
index 57d5382a4c737a18b52261d684c859e63a533f30..96e7cada14cb9c5760bef74b39ae6c893cd4d555 100644 (file)
@@ -1,5 +1,5 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-#   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+#   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
 #   Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify it
@@ -1077,9 +1077,6 @@ case "${host}" in
   *-mingw*)
     host_makefile_frag="config/mh-mingw"
     ;;
-  *-interix*)
-    host_makefile_frag="config/mh-interix"
-    ;;
   hppa*-hp-hpux10*)
     host_makefile_frag="config/mh-pa-hpux10"
     ;;
index be828596d28d83ae249b3d2a32db7ec4c452c4e9..c65dcc3907e4495fbe6562038f482805b6751274 100644 (file)
@@ -1,3 +1,41 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       PR target/47096
+       * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
+        configurations. Change triplet to i[34567]86-*-interix[3-9]*.
+       (extra_options) interix.opt -> i386/interix.opt"
+       (extra_objs):Add winnt-stubs.o
+       * configure.ac: Add interix to target_os .comm on PE check.
+       * configure: Regenerate.
+       * config/interix3.h: Delete and move bits to..
+       * config/interix.h: Delete and move bits to..
+       * config/i386/i386-interix3.h: Delete and move bits to..
+       * config/i386/i386-interix.h: ..here.
+       (TARGET_CPU_DEFAULT): Remove redefinition.
+       (TARGET_ASM_CONSTRUCTOR): Undefine.
+       (SUBTARGET_SWITCHES): Define for ms-bitfields.
+       (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
+       (PTRDIFF_TYPE): Define.
+       (LONG_DOUBLE_TYPE_SIZE): Define.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
+       (SUBTARGET_OVERRIDE_OPTIONS): Remove.
+       (TARGET_SECTION_TYPE_FLAGS): Define.
+       (ASM_DECLARE_FUNCTION_NAME): Define.
+       (ASM_OUTPUT_EXTERNAL): Define.
+       (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
+       (ASM_OUTPUT_ALIGNED_BSS): Define.
+       (PCC_BITFIELD_TYPE_MATTERS): Define.
+       (USE_CONST_SECTION): Define.
+       (SUBTARGET_ENCODE_SECTION_INFO): Remove.
+       (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
+       (SUPPORTS_ONE_ONLY): Remove.
+       (I386_PE_STRIP_ENCODING): Define.
+       * config/interix.opt: Delete and move bits to..
+       * config/i386/interix.opt: ..here. New.
+       (mpe-aligned-commons): Add.
+       * config/i386/t-interix: Add copyright header.
+       (winnt-stubs.o): Add rule.
+
 2012-01-22  Jason Merrill  <jason@redhat.com>
 
        PR c++/51832
index e8155cd9a4e7d1d3cd433f4d8b3f5b5a1867f80a..c82aaf51387852f361ae26dfc43dda616e873223 100644 (file)
@@ -1,6 +1,6 @@
 # GCC target-specific configuration file.
 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
 #This file is part of GCC.
 
@@ -243,7 +243,6 @@ md_file=
 # Obsolete configurations.
 case ${target} in
    alpha*-dec-osf5.1*                  \
- | i[34567]86-*-interix3*              \
  | mips-sgi-irix6.5                    \
  | mips*-*-openbsd*                    \
  | score-*                             \
@@ -1473,11 +1472,11 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
                        ;;
        esac
        ;;
-i[34567]86-*-interix3*)
-       tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
+i[34567]86-*-interix[3-9]*)
+       tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
        tmake_file="${tmake_file} i386/t-interix"
-       extra_options="${extra_options} rpath.opt interix.opt"
-       extra_objs=winnt.o
+       extra_options="${extra_options} rpath.opt i386/interix.opt"
+       extra_objs="winnt.o winnt-stubs.o"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        if test x$enable_threads = xyes ; then
                thread_file='posix'
index 904c7d8d4badebda5d2e007e92a890d5b5194ef5..cd8f7b9e2fae84d382991d9539beb9578eb14278 100644 (file)
@@ -1,6 +1,6 @@
 /* Target definitions for GCC for Intel 80386 running Interix
    Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008, 2009,
-   2010, 2011 Free Software Foundation, Inc.
+   2010, 2011, 2012 Free Software Foundation, Inc.
 
    Parts:
      by Douglas B. Rupp (drupp@cs.washington.edu).
@@ -24,31 +24,84 @@ 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/>.  */
 
-/* The rest must follow.  */
+/* Note: Interix doesn't support user-written DLLs (use conventional
+   shared libs (.so) instead).  Thus a lot of the stuff that might apply
+   about dllimport/dllexport and the like does not apply here. */
+
+#include <stdio.h>
+
+/* Names to predefine in the preprocessor for this target machine.  */
 
 #define DBX_DEBUGGING_INFO 1
 #define SDB_DEBUGGING_INFO 1
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 
-/* By default, target has a 80387, uses IEEE compatible arithmetic,
-   and returns float values in the 387 and needs stack probes
-   We also align doubles to 64-bits for MSVC default compatibility
-   We do bitfields MSVC-compatibly by default, too.  */
-#undef TARGET_SUBTARGET_DEFAULT
-#define TARGET_SUBTARGET_DEFAULT \
-   (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_STACK_PROBE | \
-    MASK_ALIGN_DOUBLE | MASK_MS_BITFIELD_LAYOUT)
-
-#undef TARGET_CPU_DEFAULT
-#define TARGET_CPU_DEFAULT TARGET_CPU_DEFAULT_i486
-
-#define WCHAR_TYPE_SIZE 16
-#define WCHAR_TYPE "short unsigned int"
+/* Our strategy for finding global constructors is a bit different, although
+   not a lot.  */
+#define DO_GLOBAL_CTORS_BODY                                           \
+do {                                                                   \
+  int i;                                                               \
+  unsigned long nptrs;                                                 \
+  func_ptr *p;                                                         \
+  asm(                                                                 \
+       "     .section .ctor_head, \"rw\"\n"                            \
+       "1:\n"                                                          \
+       "     .text \n"                                                 \
+       ASM_LOAD_ADDR(1b,%0)                                            \
+       : "=r" (p) : : "cc");                                           \
+  for (nptrs = 0; p[nptrs] != 0; nptrs++);                             \
+  for (i = nptrs-1; i >= 0; i--)                                       \
+    p[i] ();                                                           \
+} while (0)
 
-/* WinNT (and thus Interix) use unsigned int */
-#define SIZE_TYPE "unsigned int"
+#define DO_GLOBAL_DTORS_BODY                                           \
+do {                                                                   \
+  func_ptr *p;                                                         \
+  asm(                                                                 \
+       "     .section .dtor_head, \"rw\"\n"                            \
+       "1:\n"                                                          \
+       "     .text \n"                                                 \
+       ASM_LOAD_ADDR(1b,%0)                                            \
+       : "=r" (p) : : "cc");                                           \
+  while (*p)                                                           \
+    {                                                                  \
+      p++;                                                             \
+      (*(p-1)) ();                                                     \
+    }                                                                  \
+} while (0)
 
-#define ASM_LOAD_ADDR(loc, reg)   "     leal " #loc "," #reg "\n"
+/* We don't use the "usual" push-an-address solution. */
+#undef TARGET_ASM_CONSTRUCTOR
+
+#undef  SUBTARGET_SWITCHES
+#define SUBTARGET_SWITCHES \
+{ "ms-bitfields", MASK_MS_BITFIELD_LAYOUT, N_("Use native (MS) bitfield layout") }, \
+{ "no-ms-bitfields", -MASK_MS_BITFIELD_LAYOUT, N_("Use gcc default bitfield layout") },
+
+#undef LIB_SPEC
+#define LIB_SPEC "\
+ %{!shared:%{!dynamic:-lc -lpsxdll \
+ }} \
+ %{!G:%{!dynamic:-lc -lpsxdll \
+ }} \
+ %{dynamic:-lc -lpsxdll \
+ } \
+ %{v}"
+
+#undef LINK_SPEC
+#define LINK_SPEC "%{!shared:-stack 0x4000000,0x10000} \
+                  %{g} \
+                  %{dynamic:-Bdynamic} \
+                  %{static:-Bstatic} \
+                  %{shared:--shared -Bdynamic} \
+                  %{G:--shared -Bdynamic} \
+                  %{symbolic:--shared -Bsymbolic -Bdynamic} \
+                  %{rpath*:--rpath %*} \
+                  "
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC  \
+  "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}} %{shared:crti%O%s}"
 
 #define TARGET_DECLSPEC 1
 
@@ -57,11 +110,11 @@ along with GCC; see the file COPYING3.  If not see
   do                                                                   \
     {                                                                  \
        builtin_define ("__INTERIX");                                   \
-       builtin_define ("__OPENNT");                                    \
        builtin_define ("_M_IX86=300");                                 \
        builtin_define ("_X86_=1");                                     \
        builtin_define ("__stdcall=__attribute__((__stdcall__))");      \
        builtin_define ("__cdecl=__attribute__((__cdecl__))");          \
+       builtin_define ("__declspec(x)=__attribute__((x))");            \
        builtin_assert ("system=unix");                                 \
        builtin_assert ("system=interix");                              \
        if (preprocessing_asm_p ())                                     \
@@ -78,153 +131,18 @@ along with GCC; see the file COPYING3.  If not see
   while (0)
 
 #undef CPP_SPEC
-/* Write out the correct language type definition for the header files.  
-   Unless we have assembler language, write out the symbols for C.
-   mieee is an Alpha specific variant.  Cross pollination a bad idea.
-   */
-#define CPP_SPEC "-remap %{posix:-D_POSIX_SOURCE} \
--isystem %$INTERIX_ROOT/usr/include"
-
-/* The global __fltused is necessary to cause the printf/scanf routines
-   for outputting/inputting floating point numbers to be loaded.  Since this
-   is kind of hard to detect, we just do it all the time.  */
-#undef X86_FILE_START_FLTUSED
-#define X86_FILE_START_FLTUSED 1
-
-/* A table of bytes codes used by the ASM_OUTPUT_ASCII and
-   ASM_OUTPUT_LIMITED_STRING macros.  Each byte in the table
-   corresponds to a particular byte value [0..255].  For any
-   given byte value, if the value in the corresponding table
-   position is zero, the given character can be output directly.
-   If the table value is 1, the byte must be output as a \ooo
-   octal escape.  If the tables value is anything else, then the
-   byte value should be output as a \ followed by the value
-   in the table.  Note that we can use standard UN*X escape
-   sequences for many control characters, but we don't use
-   \a to represent BEL because some svr4 assemblers (e.g. on
-   the i386) don't know about that.  Also, we don't use \v
-   since some versions of gas, such as 2.2 did not accept it.  */
-
-#define ESCAPES \
-"\1\1\1\1\1\1\1\1btn\1fr\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
-\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\
-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\
-\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
-\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
-\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
-\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"
-
-/* Some svr4 assemblers have a limit on the number of characters which
-   can appear in the operand of a .string directive.  If your assembler
-   has such a limitation, you should define STRING_LIMIT to reflect that
-   limit.  Note that at least some svr4 assemblers have a limit on the
-   actual number of bytes in the double-quoted string, and that they
-   count each character in an escape sequence as one byte.  Thus, an
-   escape sequence like \377 would count as four bytes.
-
-   If your target assembler doesn't support the .string directive, you
-   should define this to zero.
-*/
-
-#define STRING_LIMIT   ((unsigned) 256)
-
-#define STRING_ASM_OP  "\t.string\t"
-
-/* The routine used to output NUL terminated strings.  We use a special
-   version of this for most svr4 targets because doing so makes the
-   generated assembly code more compact (and thus faster to assemble)
-   as well as more readable, especially for targets like the i386
-   (where the only alternative is to output character sequences as
-   comma separated lists of numbers).  */
-
-#define ASM_OUTPUT_LIMITED_STRING(FILE, STR)                           \
-  do                                                                   \
-    {                                                                  \
-      const unsigned char *_limited_str =                              \
-        (const unsigned char *) (STR);                                 \
-      unsigned ch;                                                     \
-      fprintf ((FILE), "%s\"", STRING_ASM_OP);                         \
-      for (; (ch = *_limited_str); _limited_str++)                     \
-        {                                                              \
-         int escape = ESCAPES[ch];                                     \
-         switch (escape)                                               \
-           {                                                           \
-           case 0:                                                     \
-             putc (ch, (FILE));                                        \
-             break;                                                    \
-           case 1:                                                     \
-             fprintf ((FILE), "\\%03o", ch);                           \
-             break;                                                    \
-           default:                                                    \
-             putc ('\\', (FILE));                                      \
-             putc (escape, (FILE));                                    \
-             break;                                                    \
-           }                                                           \
-        }                                                              \
-      fprintf ((FILE), "\"\n");                                                \
-    }                                                                  \
-  while (0)
-
-/* The routine used to output sequences of byte values.  We use a special
-   version of this for most svr4 targets because doing so makes the
-   generated assembly code more compact (and thus faster to assemble)
-   as well as more readable.  Note that if we find subparts of the
-   character sequence which end with NUL (and which are shorter than
-   STRING_LIMIT) we output those using ASM_OUTPUT_LIMITED_STRING.  */
-
-#undef ASM_OUTPUT_ASCII
-#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)                            \
-  do                                                                   \
-    {                                                                  \
-      const unsigned char *_ascii_bytes =                              \
-        (const unsigned char *) (STR);                                 \
-      const unsigned char *limit = _ascii_bytes + (LENGTH);            \
-      unsigned bytes_in_chunk = 0;                                     \
-      for (; _ascii_bytes < limit; _ascii_bytes++)                     \
-        {                                                              \
-         const unsigned char *p;                                       \
-         if (bytes_in_chunk >= 64)                                     \
-           {                                                           \
-             fputc ('\n', (FILE));                                     \
-             bytes_in_chunk = 0;                                       \
-           }                                                           \
-         for (p = _ascii_bytes; p < limit && *p != '\0'; p++)          \
-           continue;                                                   \
-         if (p < limit && (p - _ascii_bytes) <= (long) STRING_LIMIT)   \
-           {                                                           \
-             if (bytes_in_chunk > 0)                                   \
-               {                                                       \
-                 fputc ('\n', (FILE));                                 \
-                 bytes_in_chunk = 0;                                   \
-               }                                                       \
-             ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes);         \
-             _ascii_bytes = p;                                         \
-           }                                                           \
-         else                                                          \
-           {                                                           \
-             if (bytes_in_chunk == 0)                                  \
-               fputs (ASM_BYTE, (FILE));                               \
-             else                                                      \
-               fputc (',', (FILE));                                    \
-             fprintf ((FILE), "0x%02x", *_ascii_bytes);                \
-             bytes_in_chunk += 5;                                      \
-           }                                                           \
-       }                                                               \
-      if (bytes_in_chunk > 0)                                          \
-        fputc ('\n', (FILE));                                          \
-    }                                                                  \
-  while (0)
-
-/* Emit code to check the stack when allocating more that 4000
-   bytes in one go.  */
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
 
-#define CHECK_STACK_LIMIT 0x1000
+#define SIZE_TYPE "unsigned int"
+#define PTRDIFF_TYPE "int"
+#define WCHAR_TYPE "short unsigned int"
+#define WCHAR_TYPE_SIZE 16
 
-/* the following are OSF linker (not gld) specific... we don't want them */
-#undef HAS_INIT_SECTION
-#undef LD_INIT_SWITCH
-#undef LD_FINI_SWITCH
+/* Turn off long double being 96 bits.  */
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE 64
+#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
 
 /* 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
@@ -232,42 +150,125 @@ along with GCC; see the file COPYING3.  If not see
 #define TARGET_NOP_FUN_DLLIMPORT 1
 #define drectve_section()  /* nothing */
 
-/* Objective-C has its own packing rules...
-   Objc tries to parallel the code in stor-layout.c at runtime 
-   (see libobjc/encoding.c).  This (compile-time) packing info isn't 
-   available at runtime, so it's hopeless to try.
-
-   And if the user tries to set the flag for objc, give an error
-   so he has some clue.  */
-
-#undef  SUBTARGET_OVERRIDE_OPTIONS
-#define SUBTARGET_OVERRIDE_OPTIONS                                     \
-do {                                                                   \
-  if (strcmp (lang_hooks.name, "GNU Objective-C") == 0)                        \
-    {                                                                  \
-      if ((target_flags & MASK_MS_BITFIELD_LAYOUT) != 0                        \
-         && (target_flags_explicit & MASK_MS_BITFIELD_LAYOUT) != 0)    \
-       {                                                               \
-          error ("ms-bitfields not supported for objc");               \
-       }                                                               \
-      target_flags &= ~MASK_MS_BITFIELD_LAYOUT;                                \
-    }                                                                  \
-} while (0)
 
 #define EH_FRAME_IN_DATA_SECTION
 
 #define READONLY_DATA_SECTION_ASM_OP   "\t.section\t.rdata,\"r\""
 
+/* Define this macro if references to a symbol must be treated
+   differently depending on something about the variale or
+   function named by the symbol (such as what section it is in).  */
+
+#undef TARGET_ENCODE_SECTION_INFO
+#define TARGET_ENCODE_SECTION_INFO i386_pe_encode_section_info
+#undef  TARGET_STRIP_NAME_ENCODING
+#define TARGET_STRIP_NAME_ENCODING  i386_pe_strip_name_encoding_full
+
+/* Emit code to check the stack when allocating more that 4000
+   bytes in one go.  */
+
+#define CHECK_STACK_LIMIT 4000
+
+/* By default, target has a 80387, uses IEEE compatible arithmetic,
+   and returns float values in the 387 and needs stack probes
+   We also align doubles to 64-bits forMSVC default compatibility
+   Ditto for bitfields. */
+#undef TARGET_SUBTARGET_DEFAULT
+#define TARGET_SUBTARGET_DEFAULT \
+   (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_STACK_PROBE | \
+    MASK_ALIGN_DOUBLE | MASK_MS_BITFIELD_LAYOUT)
+
 /* The MS compilers take alignment as a number of bytes, so we do as well */
 #undef ASM_OUTPUT_ALIGN
 #define ASM_OUTPUT_ALIGN(FILE,LOG) \
   if ((LOG)!=0) fprintf ((FILE), "\t.balign %d\n", 1<<(LOG))
 
+
+/* Define this macro if in some cases global symbols from one translation
+   unit may not be bound to undefined symbols in another translation unit
+   without user intervention.  For instance, under Microsoft Windows
+   symbols must be explicitly imported from shared libraries (DLLs).  */
+/*
+ * Old gcc(3.3) did not have 1 here
+ */
+#define MULTIPLE_SYMBOL_SPACES 1
+
+extern void i386_pe_unique_section PARAMS ((tree, int));
+#define TARGET_ASM_UNIQUE_SECTION i386_pe_unique_section
+
+/* Switch into a generic section.  */
+#define TARGET_ASM_NAMED_SECTION  default_pe_asm_named_section
+
+/* Select attributes for named sections.  */
+#define TARGET_SECTION_TYPE_FLAGS  i386_pe_section_type_flags
+
+/* Write the extra assembler code needed to declare a function
+   properly.  If we are generating SDB debugging information, this
+   will happen automatically, so we only need to handle other cases.  */
+#undef ASM_DECLARE_FUNCTION_NAME
+#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)                    \
+  do                                                                   \
+    {                                                                  \
+      if (write_symbols != SDB_DEBUG)                                  \
+       i386_pe_declare_function_type (FILE, NAME, TREE_PUBLIC (DECL)); \
+      ASM_OUTPUT_LABEL (FILE, NAME);                                   \
+    }                                                                  \
+  while (0)
+
+/* Add an external function to the list of functions to be declared at
+   the end of the file.  */
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME)                          \
+  do                                                                   \
+    {                                                                  \
+      if (TREE_CODE (DECL) == FUNCTION_DECL)                           \
+        i386_pe_record_external_function (DECL, NAME);                 \
+    }                                                                  \
+  while (0)
+
+/* Declare the type properly for any external libcall.  */
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
+  i386_pe_declare_function_type (FILE, XSTR (FUN, 0), 1)
+
+/* This says out to put a global symbol in the BSS section.  */
+#undef ASM_OUTPUT_ALIGNED_BSS
+#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
+  asm_output_aligned_bss ((FILE), (DECL), (NAME), (SIZE), (ALIGN))
+
+/* Don't assume anything about the header files.  */
+#define NO_IMPLICIT_EXTERN_C
+
+/* External function declarations.  */
+extern void i386_pe_record_external_function (tree, const char *);
+extern void i386_pe_declare_function_type (FILE *, const char *, int);
+extern void i386_pe_record_exported_symbol (const char *, int);
+extern void i386_pe_asm_file_end (FILE *);
+
+/* For Win32 ABI compatibility */
+#undef DEFAULT_PCC_STRUCT_RETURN
+#define DEFAULT_PCC_STRUCT_RETURN 0
+
+/* A bitfield declared as `int' forces `int' alignment for the struct.  */
+#undef PCC_BITFIELD_TYPE_MATTERS
+#define PCC_BITFIELD_TYPE_MATTERS 1
+
+/* Enable alias attribute support.  */
+#ifndef SET_ASM_OP
+#define SET_ASM_OP "\t.set\t"
+#endif
+
+/* Note that there appears to be two different ways to support const
+   sections at the moment.  You can either #define the symbol
+   READONLY_DATA_SECTION (giving it some code which switches to the
+   readonly data section) or else you can #define the symbols
+   EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION, and
+   SELECT_RTX_SECTION.  We do both here just to be on the safe side.  */
+
+#define USE_CONST_SECTION 1
+
 /* The linker will take care of this, and having them causes problems with
    ld -r (specifically -rU).  */
 #define CTOR_LISTS_DEFINED_EXTERNALLY 1
 
-#define SET_ASM_OP     "\t.set\t"
 /* Output a definition (implements alias) */
 #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)                             \
 do                                                                     \
@@ -288,68 +289,56 @@ while (0)
 
 /* Forward references to tags are allowed.  */
 #define SDB_ALLOW_FORWARD_REFERENCES
-
 /* Unknown tags are also allowed.  */
 #define SDB_ALLOW_UNKNOWN_REFERENCES
+/* DWARF2 Unwinding doesn't work with exception handling yet.  */
+#define DWARF2_UNWIND_INFO 0
+/* MSVC returns structs of up to 8 bytes via registers. */
+
+#undef SUBTARGET_RETURN_IN_MEMORY
+#define SUBTARGET_RETURN_IN_MEMORY(TYPE, FNTYPE) \
+  (TYPE_MODE (TYPE) == BLKmode || \
+     (AGGREGATE_TYPE_P (TYPE) && int_size_in_bytes(TYPE) > 8 ))
+
+#define ASM_LOAD_ADDR(loc, reg)   "     leal " #loc "," #reg "\n"
 
 /* The integer half of this list needs to be constant.  However, there's
    a lot of disagreement about what the floating point adjustments should
    be.  We pick one that works with gdb.  (The underlying problem is
    what to do about the segment registers.  Since we have access to them
    from /proc, we'll allow them to be accessed in gdb, even tho the
-   gcc compiler can't generate them.  (There's some evidence that 
-   MSVC does, but possibly only for certain special "canned" sequences.) */
+   gcc compiler can't generate them.  (There's some evidence that
+   MSVC does, but possibly only for certain special "canned" sequences.)  */
 
 #undef DBX_REGISTER_NUMBER
 #define DBX_REGISTER_NUMBER(n) \
 (TARGET_64BIT ? dbx64_register_map[n] \
- : (n) == 0 ? 0 \
- : (n) == 1 ? 2 \
- : (n) == 2 ? 1 \
- : (n) == 3 ? 3 \
- : (n) == 4 ? 6 \
- : (n) == 5 ? 7 \
- : (n) == 6 ? 5 \
- : (n) == 7 ? 4 \
- : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+8 \
- : (-1))
-
-/* Define this macro if references to a symbol must be treated
-   differently depending on something about the variable or
-   function named by the symbol (such as what section it is in).  */
-
-#define SUBTARGET_ENCODE_SECTION_INFO i386_pe_encode_section_info
-#undef  TARGET_STRIP_NAME_ENCODING
-#define TARGET_STRIP_NAME_ENCODING  i386_pe_strip_name_encoding_full
-
-#if 0  
-/* Turn this back on when the linker is updated to handle grouped
-   .data$ sections correctly. See corresponding note in i386/interix.c. 
-   MK.  */
-
-/* Interix uses explicit import from shared libraries.  */
-#define MULTIPLE_SYMBOL_SPACES 1
-
-extern void i386_pe_unique_section (tree, int);
-#define TARGET_ASM_UNIQUE_SECTION i386_pe_unique_section
-#define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section
-
-#define SUPPORTS_ONE_ONLY 1
-#endif /* 0 */
-
-/* Switch into a generic section.  */
-#define TARGET_ASM_NAMED_SECTION  default_pe_asm_named_section
+ : (n) == 0 ? (int) 0 \
+ : (n) == 1 ? (int) 2 \
+ : (n) == 2 ? (int) 1 \
+ : (n) == 3 ? (int) 3 \
+ : (n) == 4 ? (int) 6 \
+ : (n) == 5 ? (int) 7 \
+ : (n) == 6 ? (int) 5 \
+ : (n) == 7 ? (int) 4 \
+ : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (int) (n)+8 \
+ : (int) (-1))
 
-/* DWARF2 Unwinding doesn't work with exception handling yet.  */
-#define DWARF2_UNWIND_INFO 0
+#define EH_FRAME_IN_DATA_SECTION
 
-/* Don't assume anything about the header files.  */
-#define NO_IMPLICIT_EXTERN_C
+/* the following are OSF linker (not gld) specific... we don't want them */
+#undef HAS_INIT_SECTION
+#undef LD_INIT_SWITCH
+#undef LD_FINI_SWITCH
 
-/* MSVC returns structs of up to 8 bytes via registers.  */
+/* 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 I386_PE_STRIP_ENCODING(SYM_NAME) \
+  ((SYM_NAME) + ((SYM_NAME)[0] == '@' \
+                 ? ((SYM_NAME)[3] == '*' ? 4 : 3) : 0) \
+             + ((SYM_NAME)[0] == '*' ? 1 : 0))
 
-#define DEFAULT_PCC_STRUCT_RETURN 0
+#define drectve_section()  /* nothing */
 
-#define SUBTARGET_RETURN_IN_MEMORY(TYPE, FNTYPE) \
-       (TYPE_MODE (TYPE) == BLKmode \
-        || (AGGREGATE_TYPE_P (TYPE) && int_size_in_bytes (TYPE) > 8 ))
diff --git a/gcc/config/i386/i386-interix3.h b/gcc/config/i386/i386-interix3.h
deleted file mode 100644 (file)
index abd202c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Target definitions for GCC for Intel 80386 running Interix V3.
-   Copyright (C) 2001, 2007 Free Software Foundation, Inc.
-   Contributed by Douglas B. Rupp (rupp@gnat.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/>.  */
-
-#undef CPP_SPEC
-#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
-
similarity index 77%
rename from gcc/config/interix.opt
rename to gcc/config/i386/interix.opt
index f50329965769f0b6bb2c3fb739dfe65247ed15bc..60943870eb4a74bda759a2134ae7f3c046a4f6e3 100644 (file)
@@ -1,6 +1,6 @@
-; Interix options.
+; Interix-specific options.
 
-; Copyright (C) 2010, 2011
+; Copyright (C) 2005, 2007, 2009, 2010, 2011, 2012
 ; Free Software Foundation, Inc.
 ;
 ; This file is part of GCC.
 ; along with GCC; see the file COPYING3.  If not see
 ; <http://www.gnu.org/licenses/>.
 
-; See the GCC internals manual (options.texi) for a description of
-; this file's format.
-
-; Please try to keep this file in ASCII collating order.
-
 dynamic
 Driver
 
@@ -33,4 +28,8 @@ Driver
 posix
 Driver
 
+mpe-aligned-commons
+Target Var(use_pe_aligned_common) Init(HAVE_GAS_ALIGNED_COMM)
+Use the GNU extension to the PE format for aligned common data
+
 ; This comment is to ensure we retain the blank line above.
index 09c9127f6af4748a37518ebcb4972335616fd598..82fdbae7bda8621ea023733c5001814be60a989d 100644 (file)
@@ -1,5 +1,31 @@
+# Copyright (C) 2011, 2012
+# Free Software Foundation, 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/>.
+
 winnt.o: $(srcdir)/config/i386/winnt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h output.h $(TREE_H) flags.h \
   $(TM_P_H) $(HASHTAB_H) $(GGC_H)
        $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
                $(srcdir)/config/i386/winnt.c
+
+winnt-stubs.o: $(srcdir)/config/i386/winnt-stubs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+  $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h output.h $(TREE_H) flags.h \
+  $(TM_P_H) toplev.h $(HASHTAB_H) $(GGC_H)
+       $(COMPILER) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+       $(srcdir)/config/i386/winnt-stubs.c
+
diff --git a/gcc/config/interix.h b/gcc/config/interix.h
deleted file mode 100644 (file)
index e9d1cc2..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Operating system specific defines to be used when targeting GCC for
-   Interix
-   Copyright (C) 1994, 1995, 1999, 2002, 2004, 2007, 2010
-   Free Software Foundation, Inc.
-   Donn Terry, Softway Systems, Inc. (donn@softway.com)
-   Modified from code
-      Contributed by Douglas B. Rupp (drupp@cs.washington.edu).
-
-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/>.  */
-
-/* POSIX/Uni-thread only for now.  Look at the winnt version
-for windows/multi thread */
-
-/* We need multiple -lc -lcpsx because they mutually refer;
-   that should go away someday */
-
-#undef LIB_SPEC
-#define LIB_SPEC "\
- %{!shared:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \
- %$INTERIX_ROOT/usr/lib/psxdll2.a \
- }} \
- %{!G:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \
- %$INTERIX_ROOT/usr/lib/psxdll2.a \
- }} \
- %{dynamic:-lc %$INTERIX_ROOT/usr/lib/psxdll.a \
- %$INTERIX_ROOT/usr/lib/psxdll2.a \
- } \
- %{v}"
-
-#undef LINK_SPEC
-#define LINK_SPEC "%{!shared:-stack 0x400000,0x10000} \
-                  -subsystem posix \
-                  %{g} \
-                  %{dynamic:-Bdynamic} \
-                  %{static:-Bstatic} \
-                  %{shared:--shared -Bdynamic} \
-                  %{G:--shared -Bdynamic} \
-                  %{symbolic:--shared -Bsymbolic -Bdynamic} \
-                  %{rpath*:--rpath %*} \
-                  "
-
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC  \
-  "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}} %{shared:crti%O%s}"
-
-
-#define STDC_0_IN_SYSTEM_HEADERS 1
-
-/* Names to predefine in the preprocessor for this target machine.  */
-
-#define DBX_DEBUGGING_INFO 1
-#define SDB_DEBUGGING_INFO 1
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
-
-/* TARGET_DEFAULT from configure */
-
-#undef WCHAR_TYPE
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE "short unsigned int"
-#define WCHAR_TYPE_SIZE 16
-
-/* Our strategy for finding global constructors is a bit different, although
-   not a lot.  */
-#define DO_GLOBAL_CTORS_BODY                                           \
-do {                                                                   \
-  int i;                                                               \
-  unsigned long nptrs;                                                 \
-  func_ptr *p;                                                         \
-  asm(                                                                 \
-       "     .section .ctor_head, \"rw\"\n"                            \
-       "1:\n"                                                          \
-       "     .text \n"                                                 \
-       ASM_LOAD_ADDR(1b,%0)                                            \
-       : "=r" (p) : : "cc");                                           \
-  for (nptrs = 0; p[nptrs] != 0; nptrs++);                             \
-  for (i = nptrs-1; i >= 0; i--)                                       \
-    p[i] ();                                                           \
-} while (0) 
-
-#define DO_GLOBAL_DTORS_BODY                                           \
-do {                                                                   \
-  func_ptr *p;                                                         \
-  asm(                                                                 \
-       "     .section .dtor_head, \"rw\"\n"                            \
-       "1:\n"                                                          \
-       "     .text \n"                                                 \
-       ASM_LOAD_ADDR(1b,%0)                                            \
-       : "=r" (p) : : "cc");                                           \
-  while (*p)                                                           \
-    {                                                                  \
-      p++;                                                             \
-      (*(p-1)) ();                                                     \
-    }                                                                  \
-} while (0) 
diff --git a/gcc/config/interix3.h b/gcc/config/interix3.h
deleted file mode 100644 (file)
index 370fd8a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Operating system specific defines to be used when targeting GCC for
-   Interix version 3.
-   Copyright (C) 2001, 2007 Free Software Foundation, Inc.
-   Contributed by Douglas B. Rupp (rupp@gnat.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/>.  */
-
-/* Interix 3.x has a single rooted file system and properly named
-   libraries, so LIB_SPEC can be simplified */
-
-#undef LIB_SPEC
-#define LIB_SPEC "\
- %{!shared:%{!dynamic:-lc -lpsxdll \
- }} \
- %{!G:%{!dynamic:-lc -lpsxdll \
- }} \
- %{dynamic:-lc -lpsxdll \
- } \
- %{v}"
-
index 7a2f03490dad27a74376c147a8399e53f57dfd59..468369aa0a760b3c360f3c95783c47de62b297c3 100755 (executable)
@@ -4903,7 +4903,7 @@ case "${target}" in
        ;;
     i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
        ;;
-    i[34567]86-*-interix3*)
+    i[34567]86-*-interix[3-9]*)
        # Interix 3.x gcc -fpic/-fPIC options generate broken code.
        # Instead, we relocate shared libraries at runtime.
        ;;
@@ -24292,7 +24292,7 @@ _ACEOF
 
     esac
     case $target_os in
-      cygwin* | pe | mingw32*)
+      cygwin* | pe | mingw32* | interix*)
        # Recent binutils allows the three-operand form of ".comm" on PE.  This
        # definition is used unconditionally to initialise the default state of
        # the target option variable that governs usage of the feature.
index d72be3c5b5846517cbbdc18c13dd2d9c1bd0f0ef..1e6f2636fba0c30f7ffe150d3975001848bfeaca 100644 (file)
@@ -3551,7 +3551,7 @@ changequote([,])dnl
           Cygwin DLL exports wrappers to support libstdc++ function replacement.])
     esac
     case $target_os in
-      cygwin* | pe | mingw32*)
+      cygwin* | pe | mingw32* | interix*)
        # Recent binutils allows the three-operand form of ".comm" on PE.  This
        # definition is used unconditionally to initialise the default state of
        # the target option variable that governs usage of the feature.
index 248578f4b170e8285d5f0c7efb8a35d39e432fde..65bea776a0b8f35b1a1fa92acf0681ceea912fff 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       * gcc.dg/builtins-config.h (HAVE_C99_RUNTIME):
+       Do not define for Interix.
+
 2012-01-22  Jason Merrill  <jason@redhat.com>
 
        PR c++/51832
index fc1ade677a2b35d1fb9c49850aad2fdc696652fb..8d5a10d3f16ca1a7e3bd8475e46b9344def01072 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2003, 2004, 2005, 2006, 2009, 2011 Free Software Foundation.
+/* Copyright (C) 2003, 2004, 2005, 2006, 2009, 2011, 2012
+   Free Software Foundation.
 
    Define macros useful in tests for bulitin functions.  */
 
@@ -11,6 +12,8 @@
 
 #if defined(__hppa) && defined(__hpux)
 /* PA HP-UX doesn't have the entire C99 runtime.  */
+#elif defined(__INTERIX)
+/* Interix6 doesn't have the entire C99 runtime.  */
 #elif defined(__AVR__)
 /* AVR doesn't have the entire C99 runtime.  */
 #elif defined(__FreeBSD__) && (__FreeBSD__ < 9)
index c60b93d17f8b7d9b7ade328439dbf012d96510e4..9a0db22cf8a0e04b63904f16291b86344e1cd8a2 100644 (file)
@@ -1,3 +1,7 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       * configure: Regenerate.
+
 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        * configure: Regenerate.
index 8303c5611df2e2796e32fe89f6f4a02b6473ffd8..da92d0edbcee69287393fe20b7c5ab286cf771de 100755 (executable)
@@ -2836,7 +2836,7 @@ case "${host}" in
        ;;
     i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
        ;;
-    i[34567]86-*-interix3*)
+    i[34567]86-*-interix[3-9]*)
        # Interix 3.x gcc -fpic/-fPIC options generate broken code.
        # Instead, we relocate shared libraries at runtime.
        ;;
index 64ebf5935f810053c6479d902f051a11822e0997..427533d8a18f0e7edb83f14a3919fed70a9c7cb6 100644 (file)
@@ -1,3 +1,9 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       * config.host (i[34567]86-*-interix3*):
+         Change triplet to i[34567]86-*-interix[3-9]*.
+       * configure: Regenerate.
+
 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
            Richard Sandiford  <rdsandiford@googlemail.com>
 
index 13b71b7ffdd8783d683c1bdb1c5f272212f0212f..8f1469734fdde6c0f27e3bc17aea6d58320ee532 100644 (file)
@@ -1,6 +1,6 @@
 # libgcc host-specific configuration file.
 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
 #This file is part of GCC.
 
@@ -634,7 +634,7 @@ x86_64-*-mingw*)
        tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-mingw32 t-dfprules i386/t-crtfm i386/t-chkstk"
        extra_parts="$extra_parts crtfastmath.o"
        ;;
-i[34567]86-*-interix3*)
+i[34567]86-*-interix[3-9]*)
        tmake_file="$tmake_file i386/t-interix i386/t-chkstk"
        ;;
 ia64*-*-elf*)
index f14605e7a0c9edd9afa5972b24098bc54b45027f..37afe9deaa8f4e6625f9688a34e1ac8bc268e6e3 100644 (file)
@@ -2290,7 +2290,7 @@ case "${host}" in
        ;;
     i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
        ;;
-    i[34567]86-*-interix3*)
+    i[34567]86-*-interix[3-9]*)
        # Interix 3.x gcc -fpic/-fPIC options generate broken code.
        # Instead, we relocate shared libraries at runtime.
        ;;
index e6060a76309a53bc88bca34e6643f63e8a89a287..1e9b95aa397211640f7b84b468600227e7fb78cc 100644 (file)
@@ -1,3 +1,7 @@
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       * configure: Regenerate.
+
 2012-01-10  Jason Merrill  <jason@redhat.com>
 
        * cp-demangle.c (d_print_comp) [DEMANGLE_COMPONENT_OPERATOR]:
index b0edb0b2994590f8e43fde6e73a6b14fec9b2b61..6e98352f356ffdc22ecdba010b6378a1d307b659 100755 (executable)
@@ -4867,7 +4867,7 @@ case "${host}" in
        ;;
     i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
        ;;
-    i[34567]86-*-interix3*)
+    i[34567]86-*-interix[3-9]*)
        # Interix 3.x gcc -fpic/-fPIC options generate broken code.
        # Instead, we relocate shared libraries at runtime.
        ;;