Commit daecebc8 by Douglas Rupp

Interix resurrection

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
parent dacac271
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
......
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
......
# The shell may not be in /bin.
SHELL = sh
......@@ -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.
;;
......
......@@ -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"
;;
......
# 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"
;;
......
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
......
# 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'
......
/* 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}"
; 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.
......@@ -19,11 +19,6 @@
; 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.
# 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
/* 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)
/* 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}"
......@@ -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.
......
......@@ -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.
......
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
......
/* 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)
......
2012-01-22 Douglas B Rupp <rupp@gnat.com>
* configure: Regenerate.
2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* configure: Regenerate.
......
......@@ -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.
;;
......
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>
......
# 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*)
......
......@@ -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.
;;
......
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]:
......
......@@ -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.
;;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment