mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 17:45:03 +08:00
config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from list of obsolete configurations.
gcc: * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from list of obsolete configurations. Disabled check for obsolete configurations. (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*. Removed support for previous versions. * config/mips/iris.h: Removed. * config/mips/iris5.h: Removed. * config/mips/iris6.h: Merged old iris.h contents. (TARGET_IRIX): Removed. (DRIVER_SELF_SPECS): Removed mabi=32. (IDENT_ASM_OP): Removed undef. (STARTFILE_SPEC): Removed mabi=32. (ENDFILE_SPEC): Likewise. (IRIX_SUBTARGET_LINK_SPEC): Likewise. (MACHINE_TYPE): Update for IRIX 6.5. * config/mips/mips.c (mips_build_builtin_va_list): Replaced TARGET_IRIX by TARGET_IRIX6. (mips_file_start): Likewise. (mips_output_external): Remove IRIX 5/6 O32 support. (mips_output_function_prologue): Likewise. * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by TARGET_IRIX6. (TARGET_CPU_CPP_BUILTINS): Likewise. (TARGET_IRIX): Removed. * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32. (MULTILIB_DIRNAMES): Removed 32. (MULTILIB_OSDIRNAMES): Removed ../lib. * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5. (Specific, mips-sgi-irix5): Document removal. (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal. Remove references to older IRIX 6 releases and the O32 ABI. gcc/ada: * gcc-interface/Makefile.in: Removed mips-sgi-irix5* support. libstdc++-v3: * configure.host: Removed irix[1-6], irix[1-5].*, irix6.[0-4]* support. * config/os/irix/irix5.2: Removed. From-SVN: r159121
This commit is contained in:
parent
0718e39d0d
commit
9aaa1ee883
@ -1,3 +1,39 @@
|
||||
2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
|
||||
list of obsolete configurations.
|
||||
Disabled check for obsolete configurations.
|
||||
(mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
|
||||
Removed support for previous versions.
|
||||
* config/mips/iris.h: Removed.
|
||||
* config/mips/iris5.h: Removed.
|
||||
* config/mips/iris6.h: Merged old iris.h contents.
|
||||
(TARGET_IRIX): Removed.
|
||||
(DRIVER_SELF_SPECS): Removed mabi=32.
|
||||
(IDENT_ASM_OP): Removed undef.
|
||||
(STARTFILE_SPEC): Removed mabi=32.
|
||||
(ENDFILE_SPEC): Likewise.
|
||||
(IRIX_SUBTARGET_LINK_SPEC): Likewise.
|
||||
(MACHINE_TYPE): Update for IRIX 6.5.
|
||||
* config/mips/mips.c (mips_build_builtin_va_list): Replaced
|
||||
TARGET_IRIX by TARGET_IRIX6.
|
||||
(mips_file_start): Likewise.
|
||||
(mips_output_external): Remove IRIX 5/6 O32 support.
|
||||
(mips_output_function_prologue): Likewise.
|
||||
* config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
|
||||
TARGET_IRIX6.
|
||||
(TARGET_CPU_CPP_BUILTINS): Likewise.
|
||||
(TARGET_IRIX): Removed.
|
||||
* config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
|
||||
(MULTILIB_DIRNAMES): Removed 32.
|
||||
(MULTILIB_OSDIRNAMES): Removed ../lib.
|
||||
* doc/install.texi (Prerequisites): Don't reference IRIX before
|
||||
6.5.
|
||||
(Specific, mips-sgi-irix5): Document removal.
|
||||
(Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
|
||||
removal.
|
||||
Remove references to older IRIX 6 releases and the O32 ABI.
|
||||
|
||||
2010-05-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gcc.dg/Wunused-var-8.c: Move to...
|
||||
|
@ -1,3 +1,7 @@
|
||||
2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* gcc-interface/Makefile.in: Removed mips-sgi-irix5* support.
|
||||
|
||||
2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||||
|
||||
PR 40989
|
||||
|
@ -1238,48 +1238,39 @@ ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),)
|
||||
LIBRARY_VERSION := $(LIB_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),)
|
||||
ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)
|
||||
LIBGNAT_TARGET_PAIRS = \
|
||||
a-intnam.ads<a-intnam-irix.ads \
|
||||
s-inmaop.adb<s-inmaop-posix.adb \
|
||||
s-intman.adb<s-intman-irix.adb \
|
||||
s-mastop.adb<s-mastop-irix.adb \
|
||||
s-osinte.adb<s-osinte-irix.adb \
|
||||
s-osinte.ads<s-osinte-irix.ads \
|
||||
s-osprim.adb<s-osprim-posix.adb \
|
||||
s-proinf.adb<s-proinf-irix-athread.adb \
|
||||
s-proinf.ads<s-proinf-irix-athread.ads \
|
||||
s-taprop.adb<s-taprop-irix.adb \
|
||||
s-tasinf.ads<s-tasinf-irix.ads \
|
||||
s-taspri.ads<s-taspri-posix.ads \
|
||||
s-tpopsp.adb<s-tpopsp-posix.adb \
|
||||
s-traceb.adb<s-traceb-mastop.adb
|
||||
ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)
|
||||
LIBGNAT_TARGET_PAIRS = \
|
||||
a-intnam.ads<a-intnam-irix.ads \
|
||||
s-inmaop.adb<s-inmaop-posix.adb \
|
||||
s-intman.adb<s-intman-irix.adb \
|
||||
s-mastop.adb<s-mastop-irix.adb \
|
||||
s-osinte.adb<s-osinte-irix.adb \
|
||||
s-osinte.ads<s-osinte-irix.ads \
|
||||
s-osprim.adb<s-osprim-posix.adb \
|
||||
s-proinf.adb<s-proinf-irix-athread.adb \
|
||||
s-proinf.ads<s-proinf-irix-athread.ads \
|
||||
s-taprop.adb<s-taprop-irix.adb \
|
||||
s-tasinf.ads<s-tasinf-irix.ads \
|
||||
s-taspri.ads<s-taspri-posix.ads \
|
||||
s-tpopsp.adb<s-tpopsp-posix.adb \
|
||||
s-traceb.adb<s-traceb-mastop.adb
|
||||
|
||||
ifeq ($(strip $(MULTISUBDIR)),/64)
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
system.ads<system-irix-n64.ads
|
||||
else
|
||||
ifeq ($(strip $(MULTISUBDIR)),/32)
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
system.ads<system-irix-o32.ads
|
||||
else
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
system.ads<system-irix-n32.ads
|
||||
endif
|
||||
endif
|
||||
|
||||
THREADSLIB = -lpthread
|
||||
GNATLIB_SHARED = gnatlib-shared-default
|
||||
|
||||
else
|
||||
ifeq ($(strip $(MULTISUBDIR)),/64)
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
s-mastop.adb<s-mastop-irix.adb \
|
||||
s-osprim.adb<s-osprim-posix.adb \
|
||||
s-traceb.adb<s-traceb-mastop.adb \
|
||||
system.ads<system-irix-o32.ads
|
||||
system.ads<system-irix-n64.ads
|
||||
else
|
||||
ifeq ($(strip $(MULTISUBDIR)),/32)
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
system.ads<system-irix-o32.ads
|
||||
else
|
||||
LIBGNAT_TARGET_PAIRS += \
|
||||
system.ads<system-irix-n32.ads
|
||||
endif
|
||||
endif
|
||||
|
||||
THREADSLIB = -lpthread
|
||||
GNATLIB_SHARED = gnatlib-shared-default
|
||||
|
||||
EH_MECHANISM=-gcc
|
||||
TOOLS_TARGET_PAIRS = mlib-tgt-specific.adb<mlib-tgt-specific-irix.adb
|
||||
TGT_LIB = -lexc
|
||||
|
@ -208,18 +208,16 @@ xm_file=
|
||||
md_file=
|
||||
|
||||
# Obsolete configurations.
|
||||
case ${target} in
|
||||
mips-sgi-irix5* \
|
||||
| mips-sgi-irix6.[0-4]* \
|
||||
)
|
||||
if test "x$enable_obsolete" != xyes; then
|
||||
echo "*** Configuration ${target} is obsolete." >&2
|
||||
echo "*** Specify --enable-obsolete to build it anyway." >&2
|
||||
echo "*** Support will be REMOVED in the next major release of GCC," >&2
|
||||
echo "*** unless a maintainer comes forward." >&2
|
||||
exit 1
|
||||
fi;;
|
||||
esac
|
||||
#case ${target} in
|
||||
# )
|
||||
# if test "x$enable_obsolete" != xyes; then
|
||||
# echo "*** Configuration ${target} is obsolete." >&2
|
||||
# echo "*** Specify --enable-obsolete to build it anyway." >&2
|
||||
# echo "*** Support will be REMOVED in the next major release of GCC," >&2
|
||||
# echo "*** unless a maintainer comes forward." >&2
|
||||
# exit 1
|
||||
# fi;;
|
||||
#esac
|
||||
|
||||
# Unsupported targets list. Do not put an entry in this list unless
|
||||
# it would otherwise be caught by a more permissive pattern. The list
|
||||
@ -1668,32 +1666,13 @@ mep-*-*)
|
||||
fi
|
||||
use_gcc_stdint=wrap
|
||||
;;
|
||||
mips-sgi-irix[56]*)
|
||||
tm_file="elfos.h ${tm_file} mips/iris.h"
|
||||
tmake_file="mips/t-iris mips/t-slibgcc-irix"
|
||||
mips-sgi-irix6.5*)
|
||||
tm_file="elfos.h ${tm_file} mips/iris6.h"
|
||||
tmake_file="mips/t-iris mips/t-iris6 mips/t-slibgcc-irix"
|
||||
target_cpu_default="MASK_ABICALLS"
|
||||
case ${target} in
|
||||
*-*-irix5*)
|
||||
tm_file="${tm_file} mips/iris5.h"
|
||||
use_gcc_stdint=provide
|
||||
;;
|
||||
|
||||
*-*-irix6*)
|
||||
tm_file="${tm_file} mips/iris6.h"
|
||||
tmake_file="${tmake_file} mips/t-iris6"
|
||||
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
|
||||
case ${target} in
|
||||
*-*-irix6.[0-4]*)
|
||||
use_gcc_stdint=provide
|
||||
;;
|
||||
*-*-irix6.5*)
|
||||
# Only IRIX Development Foundation 1.3 for IRIX 6.5
|
||||
# provides stdint.h.
|
||||
use_gcc_stdint=wrap
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
|
||||
# Only IRIX Development Foundation 1.3 for IRIX 6.5 provides stdint.h.
|
||||
use_gcc_stdint=wrap
|
||||
if test "x$stabs" = xyes
|
||||
then
|
||||
tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
|
||||
|
@ -1,232 +0,0 @@
|
||||
/* Definitions of target machine for GNU compiler. Generic IRIX version.
|
||||
Copyright (C) 1993, 1995, 1996, 1998, 2000,
|
||||
2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010
|
||||
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/>. */
|
||||
|
||||
/* We are compiling for IRIX now. */
|
||||
#undef TARGET_IRIX
|
||||
#define TARGET_IRIX 1
|
||||
|
||||
/* MIPS specific debugging info */
|
||||
#define MIPS_DEBUGGING_INFO 1
|
||||
|
||||
/* The size in bytes of a DWARF field indicating an offset or length
|
||||
relative to a debug info section, specified to be 4 bytes in the DWARF-2
|
||||
specification. The SGI/MIPS ABI defines it to be the same as PTR_SIZE. */
|
||||
#define DWARF_OFFSET_SIZE PTR_SIZE
|
||||
|
||||
/* The size in bytes of the initial length field in a debug info
|
||||
section. The DWARF 3 (draft) specification defines this to be
|
||||
either 4 or 12 (with a 4-byte "escape" word when it's 12), but the
|
||||
SGI/MIPS ABI predates this standard and defines it to be the same
|
||||
as DWARF_OFFSET_SIZE. */
|
||||
#define DWARF_INITIAL_LENGTH_SIZE DWARF_OFFSET_SIZE
|
||||
|
||||
/* MIPS assemblers don't have the usual .set foo,bar construct;
|
||||
.set is used for assembler options instead. */
|
||||
#undef SET_ASM_OP
|
||||
#define ASM_OUTPUT_DEF(FILE, LABEL1, LABEL2) \
|
||||
do \
|
||||
{ \
|
||||
fputc ('\t', FILE); \
|
||||
assemble_name (FILE, LABEL1); \
|
||||
fputs (" = ", FILE); \
|
||||
assemble_name (FILE, LABEL2); \
|
||||
fputc ('\n', FILE); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* The MIPSpro o32 linker warns about not linking .comment sections. */
|
||||
#undef IDENT_ASM_OP
|
||||
|
||||
#undef LOCAL_LABEL_PREFIX
|
||||
#define LOCAL_LABEL_PREFIX (TARGET_NEWABI ? "." : "$")
|
||||
|
||||
#undef ASM_DECLARE_OBJECT_NAME
|
||||
#define ASM_DECLARE_OBJECT_NAME mips_declare_object_name
|
||||
|
||||
#undef ASM_FINISH_DECLARE_OBJECT
|
||||
#define ASM_FINISH_DECLARE_OBJECT mips_finish_declare_object
|
||||
|
||||
/* Specify wchar_t types. */
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
|
||||
|
||||
/* Same for wint_t. */
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE 32
|
||||
|
||||
/* C99 stdint.h types. */
|
||||
#define INT8_TYPE "signed char"
|
||||
#define INT16_TYPE "short int"
|
||||
#define INT32_TYPE "int"
|
||||
#define INT64_TYPE "long long int"
|
||||
#define UINT8_TYPE "unsigned char"
|
||||
#define UINT16_TYPE "short unsigned int"
|
||||
#define UINT32_TYPE "unsigned int"
|
||||
#define UINT64_TYPE "long long unsigned int"
|
||||
|
||||
#define INT_LEAST8_TYPE "signed char"
|
||||
#define INT_LEAST16_TYPE "short int"
|
||||
#define INT_LEAST32_TYPE "int"
|
||||
#define INT_LEAST64_TYPE "long long int"
|
||||
#define UINT_LEAST8_TYPE "unsigned char"
|
||||
#define UINT_LEAST16_TYPE "short unsigned int"
|
||||
#define UINT_LEAST32_TYPE "unsigned int"
|
||||
#define UINT_LEAST64_TYPE "long long unsigned int"
|
||||
|
||||
#define INT_FAST8_TYPE "signed char"
|
||||
#define INT_FAST16_TYPE "short int"
|
||||
#define INT_FAST32_TYPE "int"
|
||||
#define INT_FAST64_TYPE "long long int"
|
||||
#define UINT_FAST8_TYPE "unsigned char"
|
||||
#define UINT_FAST16_TYPE "short unsigned int"
|
||||
#define UINT_FAST32_TYPE "unsigned int"
|
||||
#define UINT_FAST64_TYPE "long long unsigned int"
|
||||
|
||||
#define INTMAX_TYPE "long long int"
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#define INTPTR_TYPE "long int"
|
||||
#define UINTPTR_TYPE "long unsigned int"
|
||||
|
||||
#define SIG_ATOMIC_TYPE "int"
|
||||
|
||||
/* Plain char is unsigned in the SGI compiler. */
|
||||
#undef DEFAULT_SIGNED_CHAR
|
||||
#define DEFAULT_SIGNED_CHAR 0
|
||||
|
||||
#define WORD_SWITCH_TAKES_ARG(STR) \
|
||||
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|
||||
|| strcmp (STR, "rpath") == 0)
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define_std ("host_mips"); \
|
||||
builtin_define_std ("sgi"); \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("SYSTYPE_SVR4"); \
|
||||
builtin_define ("_MODERN_C"); \
|
||||
builtin_define ("_SVR4_SOURCE"); \
|
||||
builtin_define ("__DSO__"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=svr4"); \
|
||||
builtin_assert ("machine=sgi"); \
|
||||
\
|
||||
if (!ISA_MIPS1 && !ISA_MIPS2) \
|
||||
builtin_define ("_COMPILER_VERSION=601"); \
|
||||
\
|
||||
/* We must always define _LONGLONG, even when -ansi is \
|
||||
used, because IRIX 5 system header files require it. \
|
||||
This is OK, because gcc never warns when long long \
|
||||
is used in system header files. \
|
||||
\
|
||||
An alternative would be to support the SGI builtin \
|
||||
type __long_long. */ \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
\
|
||||
/* IRIX 6.5.18 and above provide many ISO C99 \
|
||||
features protected by the __c99 macro. \
|
||||
libstdc++ v3 needs them as well. */ \
|
||||
if (TARGET_IRIX6) \
|
||||
if (flag_isoc99 || c_dialect_cxx ()) \
|
||||
builtin_define ("__c99"); \
|
||||
\
|
||||
/* The GNU C++ standard library requires that \
|
||||
__EXTENSIONS__ and _SGI_SOURCE be defined on at \
|
||||
least IRIX 6.2 and probably all IRIX 6 prior to 6.5. \
|
||||
We don't need this on IRIX 6.5 itself, but it \
|
||||
shouldn't hurt other than the namespace pollution. */ \
|
||||
if (!flag_iso || (TARGET_IRIX6 && c_dialect_cxx ())) \
|
||||
{ \
|
||||
builtin_define ("__EXTENSIONS__"); \
|
||||
builtin_define ("_SGI_SOURCE"); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef SUBTARGET_CC1_SPEC
|
||||
#define SUBTARGET_CC1_SPEC "%{static: -mno-abicalls}"
|
||||
|
||||
#undef INIT_SECTION_ASM_OP
|
||||
#define INIT_SECTION_ASM_OP "\t.section\t.gcc_init,\"ax\",@progbits"
|
||||
|
||||
#undef FINI_SECTION_ASM_OP
|
||||
#define FINI_SECTION_ASM_OP "\t.section\t.gcc_fini,\"ax\",@progbits"
|
||||
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_NO_UNRESOLVED ""
|
||||
#else
|
||||
#define IRIX_NO_UNRESOLVED "-no_unresolved"
|
||||
#endif
|
||||
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define SUBTARGET_DONT_WARN_UNUSED_SPEC ""
|
||||
#define SUBTARGET_WARN_UNUSED_SPEC ""
|
||||
#else
|
||||
#define SUBTARGET_DONT_WARN_UNUSED_SPEC "-dont_warn_unused"
|
||||
#define SUBTARGET_WARN_UNUSED_SPEC "-warn_unused"
|
||||
#endif
|
||||
|
||||
/* Generic part of the LINK_SPEC. */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{!shared: \
|
||||
%{!non_shared: %{!call_shared:%{!r: -call_shared " IRIX_NO_UNRESOLVED "}}}} \
|
||||
%{rpath} -init __gcc_init -fini __gcc_fini " IRIX_SUBTARGET_LINK_SPEC
|
||||
|
||||
/* A linker error can empirically be avoided by removing duplicate
|
||||
library search directories. */
|
||||
#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 1
|
||||
|
||||
/* Add -g to mips.h default to avoid confusing gas with local symbols
|
||||
generated from stabs info. */
|
||||
#undef NM_FLAGS
|
||||
#define NM_FLAGS "-Bng"
|
||||
|
||||
/* The system header files are C++ aware. */
|
||||
/* ??? Unfortunately, most but not all of the headers are C++ aware.
|
||||
Specifically, curses.h is not, and as a consequence, defining this
|
||||
used to prevent libg++ building. This is no longer the case so
|
||||
define it again to prevent other problems, e.g. with getopt in
|
||||
unistd.h. We still need some way to fix just those files that need
|
||||
fixing. */
|
||||
#define NO_IMPLICIT_EXTERN_C 1
|
||||
|
||||
/* -G is incompatible with -KPIC which is the default, so only allow objects
|
||||
in the small data section if the user explicitly asks for it. */
|
||||
#undef MIPS_DEFAULT_GVALUE
|
||||
#define MIPS_DEFAULT_GVALUE 0
|
||||
|
||||
/* The native o32 IRIX linker does not support merging without a
|
||||
special elspec(5) file. */
|
||||
#ifndef IRIX_USING_GNU_LD
|
||||
#undef HAVE_GAS_SHF_MERGE
|
||||
#define HAVE_GAS_SHF_MERGE 0
|
||||
#endif
|
@ -1,49 +0,0 @@
|
||||
/* Definitions of target machine for GNU compiler. IRIX version 5.
|
||||
Copyright (C) 1993, 1995, 1996, 1998, 2000,
|
||||
2001, 2002, 2003, 2004, 2007, 2010 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/>. */
|
||||
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_SUBTARGET_LINK_SPEC "-melf32bsmip"
|
||||
#else
|
||||
#define IRIX_SUBTARGET_LINK_SPEC "-_SYSTYPE_SVR4"
|
||||
#endif
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{!static: \
|
||||
%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}} \
|
||||
%{static: \
|
||||
%{pg:gcrt1.o%s} \
|
||||
%{!pg:%{p:/usr/lib/nonshared/mcrt1.o%s libprof1.a%s} \
|
||||
%{!p:/usr/lib/nonshared/crt1.o%s}}} \
|
||||
irix-crti.o%s crtbegin.o%s"
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{!shared:%{p:-lprof1} %{pg:-lprof1} -lc}"
|
||||
|
||||
/* Avoid getting two warnings for libgcc.a everytime we link. */
|
||||
#undef LIBGCC_SPEC
|
||||
#define LIBGCC_SPEC \
|
||||
SUBTARGET_DONT_WARN_UNUSED_SPEC " -lgcc " SUBTARGET_WARN_UNUSED_SPEC
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtend.o%s irix-crtn.o%s %{!shared:crtn.o%s}"
|
||||
|
||||
#undef MACHINE_TYPE
|
||||
#define MACHINE_TYPE "SGI running IRIX 5.x"
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler. IRIX version 6.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
|
||||
2005, 2006, 2007, 2008, 2010
|
||||
/* Definitions of target machine for GNU compiler. IRIX 6.5 version.
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2000,
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
@ -19,23 +19,28 @@ 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/>. */
|
||||
|
||||
/* Allow some special handling for IRIX 6. */
|
||||
/* We are compiling for IRIX 6 now. */
|
||||
#undef TARGET_IRIX6
|
||||
#define TARGET_IRIX6 1
|
||||
|
||||
#undef MACHINE_TYPE
|
||||
#define MACHINE_TYPE "SGI running IRIX 6.5"
|
||||
|
||||
/* Default to -mabi=n32 and -mips3. */
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS { "mabi=n32" }
|
||||
|
||||
/* Force the default ABI onto the command line in order to make the specs
|
||||
easier to write. Default to the mips2 ISA for the O32 ABI. */
|
||||
easier to write. */
|
||||
#undef DRIVER_SELF_SPECS
|
||||
#define DRIVER_SELF_SPECS \
|
||||
"%{!mabi=*: -mabi=n32}", \
|
||||
"%{mabi=32: %{!mips*: %{!march*: -mips2}}}", \
|
||||
/* Configuration-independent MIPS rules. */ \
|
||||
BASE_DRIVER_SELF_SPECS
|
||||
|
||||
/* MIPS specific debugging info */
|
||||
#define MIPS_DEBUGGING_INFO 1
|
||||
|
||||
/* Force the generation of dwarf .debug_frame sections even if not
|
||||
compiling -g. This guarantees that we can unwind the stack. */
|
||||
#define DWARF2_FRAME_INFO 1
|
||||
@ -45,48 +50,182 @@ along with GCC; see the file COPYING3. If not see
|
||||
#undef DWARF_FRAME_RETURN_COLUMN
|
||||
#define DWARF_FRAME_RETURN_COLUMN (FP_REG_LAST + 1)
|
||||
|
||||
#undef MACHINE_TYPE
|
||||
#define MACHINE_TYPE "SGI running IRIX 6.x"
|
||||
/* The size in bytes of a DWARF field indicating an offset or length
|
||||
relative to a debug info section, specified to be 4 bytes in the DWARF-2
|
||||
specification. The SGI/MIPS ABI defines it to be the same as PTR_SIZE. */
|
||||
#define DWARF_OFFSET_SIZE PTR_SIZE
|
||||
|
||||
/* The size in bytes of the initial length field in a debug info
|
||||
section. The DWARF 3 (draft) specification defines this to be
|
||||
either 4 or 12 (with a 4-byte "escape" word when it's 12), but the
|
||||
SGI/MIPS ABI predates this standard and defines it to be the same
|
||||
as DWARF_OFFSET_SIZE. */
|
||||
#define DWARF_INITIAL_LENGTH_SIZE DWARF_OFFSET_SIZE
|
||||
|
||||
/* MIPS assemblers don't have the usual .set foo,bar construct;
|
||||
.set is used for assembler options instead. */
|
||||
#undef SET_ASM_OP
|
||||
#define ASM_OUTPUT_DEF(FILE, LABEL1, LABEL2) \
|
||||
do \
|
||||
{ \
|
||||
fputc ('\t', FILE); \
|
||||
assemble_name (FILE, LABEL1); \
|
||||
fputs (" = ", FILE); \
|
||||
assemble_name (FILE, LABEL2); \
|
||||
fputc ('\n', FILE); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef LOCAL_LABEL_PREFIX
|
||||
#define LOCAL_LABEL_PREFIX (TARGET_NEWABI ? "." : "$")
|
||||
|
||||
#undef ASM_DECLARE_OBJECT_NAME
|
||||
#define ASM_DECLARE_OBJECT_NAME mips_declare_object_name
|
||||
|
||||
#undef ASM_FINISH_DECLARE_OBJECT
|
||||
#define ASM_FINISH_DECLARE_OBJECT mips_finish_declare_object
|
||||
|
||||
/* The native IRIX 6 linker does not support merging without a special
|
||||
elspec(5) file. */
|
||||
#ifndef IRIX_USING_GNU_LD
|
||||
#undef HAVE_GAS_SHF_MERGE
|
||||
#define HAVE_GAS_SHF_MERGE 0
|
||||
#endif
|
||||
|
||||
/* Specify wchar_t types. */
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
|
||||
|
||||
/* Same for wint_t. */
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE 32
|
||||
|
||||
/* C99 stdint.h types. */
|
||||
#define INT8_TYPE "signed char"
|
||||
#define INT16_TYPE "short int"
|
||||
#define INT32_TYPE "int"
|
||||
#define INT64_TYPE "long long int"
|
||||
#define UINT8_TYPE "unsigned char"
|
||||
#define UINT16_TYPE "short unsigned int"
|
||||
#define UINT32_TYPE "unsigned int"
|
||||
#define UINT64_TYPE "long long unsigned int"
|
||||
|
||||
#define INT_LEAST8_TYPE "signed char"
|
||||
#define INT_LEAST16_TYPE "short int"
|
||||
#define INT_LEAST32_TYPE "int"
|
||||
#define INT_LEAST64_TYPE "long long int"
|
||||
#define UINT_LEAST8_TYPE "unsigned char"
|
||||
#define UINT_LEAST16_TYPE "short unsigned int"
|
||||
#define UINT_LEAST32_TYPE "unsigned int"
|
||||
#define UINT_LEAST64_TYPE "long long unsigned int"
|
||||
|
||||
#define INT_FAST8_TYPE "signed char"
|
||||
#define INT_FAST16_TYPE "short int"
|
||||
#define INT_FAST32_TYPE "int"
|
||||
#define INT_FAST64_TYPE "long long int"
|
||||
#define UINT_FAST8_TYPE "unsigned char"
|
||||
#define UINT_FAST16_TYPE "short unsigned int"
|
||||
#define UINT_FAST32_TYPE "unsigned int"
|
||||
#define UINT_FAST64_TYPE "long long unsigned int"
|
||||
|
||||
#define INTMAX_TYPE "long long int"
|
||||
#define UINTMAX_TYPE "long long unsigned int"
|
||||
|
||||
#define INTPTR_TYPE "long int"
|
||||
#define UINTPTR_TYPE "long unsigned int"
|
||||
|
||||
#define SIG_ATOMIC_TYPE "int"
|
||||
|
||||
/* Plain char is unsigned in the SGI compiler. */
|
||||
#undef DEFAULT_SIGNED_CHAR
|
||||
#define DEFAULT_SIGNED_CHAR 0
|
||||
|
||||
#define WORD_SWITCH_TAKES_ARG(STR) \
|
||||
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|
||||
|| strcmp (STR, "rpath") == 0)
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
builtin_define_std ("host_mips"); \
|
||||
builtin_define_std ("sgi"); \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("SYSTYPE_SVR4"); \
|
||||
builtin_define ("_MODERN_C"); \
|
||||
builtin_define ("_SVR4_SOURCE"); \
|
||||
builtin_define ("__DSO__"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=svr4"); \
|
||||
builtin_assert ("machine=sgi"); \
|
||||
\
|
||||
if (!ISA_MIPS1 && !ISA_MIPS2) \
|
||||
builtin_define ("_COMPILER_VERSION=601"); \
|
||||
\
|
||||
/* We must always define _LONGLONG, even when -ansi is \
|
||||
used, because IRIX 5 system header files require it. \
|
||||
This is OK, because gcc never warns when long long \
|
||||
is used in system header files. \
|
||||
\
|
||||
An alternative would be to support the SGI builtin \
|
||||
type __long_long. */ \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
\
|
||||
/* IRIX 6.5.18 and above provide many ISO C99 \
|
||||
features protected by the __c99 macro. \
|
||||
libstdc++ v3 needs them as well. */ \
|
||||
if (TARGET_IRIX6) \
|
||||
if (flag_isoc99 || c_dialect_cxx ()) \
|
||||
builtin_define ("__c99"); \
|
||||
\
|
||||
/* The GNU C++ standard library requires that \
|
||||
__EXTENSIONS__ and _SGI_SOURCE be defined on at \
|
||||
least IRIX 6.2 and probably all IRIX 6 prior to 6.5. \
|
||||
We don't need this on IRIX 6.5 itself, but it \
|
||||
shouldn't hurt other than the namespace pollution. */ \
|
||||
if (!flag_iso || (TARGET_IRIX6 && c_dialect_cxx ())) \
|
||||
{ \
|
||||
builtin_define ("__EXTENSIONS__"); \
|
||||
builtin_define ("_SGI_SOURCE"); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef SUBTARGET_CC1_SPEC
|
||||
#define SUBTARGET_CC1_SPEC "%{static: -mno-abicalls}"
|
||||
|
||||
#undef SUBTARGET_CPP_SPEC
|
||||
#define SUBTARGET_CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
#undef INIT_SECTION_ASM_OP
|
||||
#define INIT_SECTION_ASM_OP "\t.section\t.gcc_init,\"ax\",@progbits"
|
||||
|
||||
#undef FINI_SECTION_ASM_OP
|
||||
#define FINI_SECTION_ASM_OP "\t.section\t.gcc_fini,\"ax\",@progbits"
|
||||
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{mabi=32: -melf32bsmip}%{mabi=n32: -melf32bmipn32}%{mabi=64: -melf64bmip}"
|
||||
#define IRIX_NO_UNRESOLVED ""
|
||||
#else
|
||||
/* Explicitly hide crt symbols that would normally be marked with
|
||||
a "hidden" visibility attribute.
|
||||
|
||||
We have traditionally disabled this attribute when using the
|
||||
native linker because the native linker's visibility support is
|
||||
not fully-compatible with the GNU linker's. In particular, the
|
||||
native linker does not pull in archive objects purely to resolve
|
||||
references to the object's hidden symbols, whereas the GNU
|
||||
linker does.
|
||||
|
||||
The gcc build system currently hides symbols in some static
|
||||
libraries (typically libgcov.a or libgcc.a) whenever visibility
|
||||
attributes are supported. On targets with GNU semantics, this
|
||||
makes sure that uses of libx.so symbols in one dynamic object are
|
||||
not resolved to libx.a symbols in another dynamic object. But
|
||||
on targets with IRIX semantics, hiding the symbols prevents the
|
||||
static archive from working at all.
|
||||
|
||||
It would probably be better to enable visiblity attributes for
|
||||
IRIX ld and disable the static archives versioning. It shouldn't
|
||||
make anything worse, since libx.a symbols are global by default
|
||||
anyway. However, no-one has volunteered to do this yet. */
|
||||
#define IRIX_NO_UNRESOLVED "-no_unresolved"
|
||||
#endif
|
||||
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{w} -_SYSTYPE_SVR4 -woff 131 \
|
||||
%{shared:-hidden_symbol __dso_handle} \
|
||||
%{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define SUBTARGET_DONT_WARN_UNUSED_SPEC ""
|
||||
#define SUBTARGET_WARN_UNUSED_SPEC ""
|
||||
#else
|
||||
#define SUBTARGET_DONT_WARN_UNUSED_SPEC "-dont_warn_unused"
|
||||
#define SUBTARGET_WARN_UNUSED_SPEC "-warn_unused"
|
||||
#endif
|
||||
|
||||
/* Profiling is supported via libprof1.a not -lc_p as in IRIX 3. */
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC \
|
||||
"%{!shared: \
|
||||
%{mabi=32:%{pg:gcrt1.o%s} \
|
||||
%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}} \
|
||||
%{mabi=n32: \
|
||||
%{mips4:%{pg:/usr/lib32/mips4/gcrt1.o%s} \
|
||||
%{!pg:%{p:/usr/lib32/mips4/mcrt1.o%s /usr/lib32/mips4/libprof1.a%s} \
|
||||
@ -124,14 +263,75 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define ENDFILE_SPEC \
|
||||
"crtend.o%s irix-crtn.o%s \
|
||||
%{!shared: \
|
||||
%{mabi=32:crtn.o%s}\
|
||||
%{mabi=n32:%{mips4:/usr/lib32/mips4/crtn.o%s}\
|
||||
%{!mips4:/usr/lib32/mips3/crtn.o%s}}\
|
||||
%{mabi=64:%{mips4:/usr/lib64/mips4/crtn.o%s}\
|
||||
%{!mips4:/usr/lib64/mips3/crtn.o%s}}}"
|
||||
|
||||
/* Generic part of the LINK_SPEC. */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{!shared: \
|
||||
%{!non_shared: %{!call_shared:%{!r: -call_shared " IRIX_NO_UNRESOLVED "}}}} \
|
||||
%{rpath} -init __gcc_init -fini __gcc_fini " IRIX_SUBTARGET_LINK_SPEC
|
||||
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{mabi=n32: -melf32bmipn32}%{mabi=64: -melf64bmip}"
|
||||
#else
|
||||
/* Explicitly hide crt symbols that would normally be marked with
|
||||
a "hidden" visibility attribute.
|
||||
|
||||
We have traditionally disabled this attribute when using the
|
||||
native linker because the native linker's visibility support is
|
||||
not fully-compatible with the GNU linker's. In particular, the
|
||||
native linker does not pull in archive objects purely to resolve
|
||||
references to the object's hidden symbols, whereas the GNU
|
||||
linker does.
|
||||
|
||||
The gcc build system currently hides symbols in some static
|
||||
libraries (typically libgcov.a or libgcc.a) whenever visibility
|
||||
attributes are supported. On targets with GNU semantics, this
|
||||
makes sure that uses of libx.so symbols in one dynamic object are
|
||||
not resolved to libx.a symbols in another dynamic object. But
|
||||
on targets with IRIX semantics, hiding the symbols prevents the
|
||||
static archive from working at all.
|
||||
|
||||
It would probably be better to enable visiblity attributes for
|
||||
IRIX ld and disable the static archives versioning. It shouldn't
|
||||
make anything worse, since libx.a symbols are global by default
|
||||
anyway. However, no-one has volunteered to do this yet. */
|
||||
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{w} -_SYSTYPE_SVR4 -woff 131 \
|
||||
%{shared:-hidden_symbol __dso_handle} \
|
||||
%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
|
||||
#endif
|
||||
|
||||
/* A linker error can empirically be avoided by removing duplicate
|
||||
library search directories. */
|
||||
#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 1
|
||||
|
||||
/* Add -g to mips.h default to avoid confusing gas with local symbols
|
||||
generated from stabs info. */
|
||||
#undef NM_FLAGS
|
||||
#define NM_FLAGS "-Bng"
|
||||
|
||||
/* The system header files are C++ aware. */
|
||||
/* ??? Unfortunately, most but not all of the headers are C++ aware.
|
||||
Specifically, curses.h is not, and as a consequence, defining this
|
||||
used to prevent libg++ building. This is no longer the case so
|
||||
define it again to prevent other problems, e.g. with getopt in
|
||||
unistd.h. We still need some way to fix just those files that need
|
||||
fixing. */
|
||||
#define NO_IMPLICIT_EXTERN_C 1
|
||||
|
||||
/* -G is incompatible with -KPIC which is the default, so only allow objects
|
||||
in the small data section if the user explicitly asks for it. */
|
||||
#undef MIPS_DEFAULT_GVALUE
|
||||
#define MIPS_DEFAULT_GVALUE 0
|
||||
|
||||
#define MIPS_TFMODE_FORMAT mips_extended_format
|
||||
|
||||
#undef SUBTARGET_CPP_SPEC
|
||||
#define SUBTARGET_CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
|
@ -5449,7 +5449,7 @@ mips_build_builtin_va_list (void)
|
||||
layout_type (record);
|
||||
return record;
|
||||
}
|
||||
else if (TARGET_IRIX && TARGET_IRIX6)
|
||||
else if (TARGET_IRIX6)
|
||||
/* On IRIX 6, this type is 'char *'. */
|
||||
return build_pointer_type (char_type_node);
|
||||
else
|
||||
@ -7864,19 +7864,6 @@ mips_output_external (FILE *file, tree decl, const char *name)
|
||||
fprintf (file, ", " HOST_WIDE_INT_PRINT_DEC "\n",
|
||||
int_size_in_bytes (TREE_TYPE (decl)));
|
||||
}
|
||||
else if (TARGET_IRIX
|
||||
&& mips_abi == ABI_32
|
||||
&& TREE_CODE (decl) == FUNCTION_DECL)
|
||||
{
|
||||
/* In IRIX 5 or IRIX 6 for the O32 ABI, we must output a
|
||||
`.global name .text' directive for every used but
|
||||
undefined function. If we don't, the linker may perform
|
||||
an optimization (skipping over the insns that set $gp)
|
||||
when it is unsafe. */
|
||||
fputs ("\t.globl ", file);
|
||||
assemble_name (file, name);
|
||||
fputs (" .text\n", file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -8166,7 +8153,7 @@ mips_file_start (void)
|
||||
/* Generate a special section to describe the ABI switches used to
|
||||
produce the resultant binary. This is unnecessary on IRIX and
|
||||
causes unwanted warnings from the native linker. */
|
||||
if (!TARGET_IRIX)
|
||||
if (!TARGET_IRIX6)
|
||||
{
|
||||
/* Record the ABI itself. Modern versions of binutils encode
|
||||
this information in the ELF header flags, but GDB needs the
|
||||
@ -9811,10 +9798,6 @@ mips_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
|
||||
fnname = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);
|
||||
mips_start_function_definition (fnname, TARGET_MIPS16);
|
||||
|
||||
/* Stop mips_file_end from treating this function as external. */
|
||||
if (TARGET_IRIX && mips_abi == ABI_32)
|
||||
TREE_ASM_WRITTEN (DECL_NAME (cfun->decl)) = 1;
|
||||
|
||||
/* Output MIPS-specific frame information. */
|
||||
if (!flag_inhibit_size_directive)
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler. MIPS version.
|
||||
Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by A. Lichnewsky (lich@inria.inria.fr).
|
||||
Changed by Michael Meissner (meissner@osf.org).
|
||||
@ -228,7 +228,7 @@ enum mips_code_readable_setting {
|
||||
#define TARGET_GPWORD \
|
||||
(TARGET_ABICALLS \
|
||||
&& !TARGET_ABSOLUTE_ABICALLS \
|
||||
&& !(mips_abi == ABI_64 && TARGET_IRIX))
|
||||
&& !(mips_abi == ABI_64 && TARGET_IRIX6))
|
||||
|
||||
/* True if the output must have a writable .eh_frame.
|
||||
See ASM_PREFERRED_EH_DATA_FORMAT for details. */
|
||||
@ -369,7 +369,6 @@ enum mips_code_readable_setting {
|
||||
#define TARGET_SYNC_AFTER_SC (!TARGET_OCTEON)
|
||||
|
||||
/* IRIX specific stuff. */
|
||||
#define TARGET_IRIX 0
|
||||
#define TARGET_IRIX6 0
|
||||
|
||||
/* Define preprocessor macros for the -march and -mtune options.
|
||||
@ -396,7 +395,7 @@ enum mips_code_readable_setting {
|
||||
do \
|
||||
{ \
|
||||
/* Everyone but IRIX defines this to mips. */ \
|
||||
if (!TARGET_IRIX) \
|
||||
if (!TARGET_IRIX6) \
|
||||
builtin_assert ("machine=mips"); \
|
||||
\
|
||||
builtin_assert ("cpu=mips"); \
|
||||
@ -416,7 +415,7 @@ enum mips_code_readable_setting {
|
||||
if (TARGET_64BIT) \
|
||||
builtin_define ("__mips64"); \
|
||||
\
|
||||
if (!TARGET_IRIX) \
|
||||
if (!TARGET_IRIX6) \
|
||||
{ \
|
||||
/* Treat _R3000 and _R4000 like register-size \
|
||||
defines, which is how they've historically \
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2006 Free Software Foundation, Inc.
|
||||
# 2006, 2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GCC.
|
||||
#
|
||||
@ -17,10 +17,10 @@
|
||||
# along with GCC; see the file COPYING3. If not see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
MULTILIB_OPTIONS=mabi=n32/mabi=32/mabi=64
|
||||
MULTILIB_DIRNAMES=n32 32 64
|
||||
MULTILIB_OPTIONS=mabi=n32/mabi=64
|
||||
MULTILIB_DIRNAMES=n32 64
|
||||
MULTILIB_MATCHES=
|
||||
MULTILIB_OSDIRNAMES=../lib32 ../lib ../lib64
|
||||
MULTILIB_OSDIRNAMES=../lib32 ../lib64
|
||||
|
||||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
||||
|
@ -359,8 +359,8 @@ Necessary to build libgcj, the GCJ runtime.
|
||||
|
||||
Necessary to build link-time optimization (LTO) support. It can be
|
||||
downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
|
||||
though it is commonly available in several systems. The versions in
|
||||
IRIX 5 and 6 don't work since they lack @file{gelf.h}. The version in
|
||||
though it is commonly available in several systems. The version in
|
||||
IRIX 6.5 doesn't work since it lacks @file{gelf.h}. The version in
|
||||
Solaris 2 does work.
|
||||
|
||||
The @option{--with-libelf} configure option should be used if libelf is
|
||||
@ -3823,60 +3823,22 @@ made after Nov. 9, 2006) should be free from both of these problems.
|
||||
@end html
|
||||
@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
|
||||
|
||||
Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be
|
||||
enabled by configuring with @option{--enable-obsolete}. Support will be
|
||||
removed in GCC 4.6.
|
||||
|
||||
In order to compile GCC on an SGI running IRIX 5, the @samp{compiler_dev.hdr}
|
||||
subsystem must be installed from the IDO CD-ROM supplied by SGI@.
|
||||
It is also available for download from
|
||||
@uref{http://freeware.sgi.com/ido.html}.
|
||||
|
||||
If you use the MIPS C compiler to bootstrap, it may be necessary
|
||||
to increase its table size for switch statements with the
|
||||
@option{-Wf,-XNg1500} option. If you use the @option{-O2}
|
||||
optimization option, you also need to use @option{-Olimit 3000}.
|
||||
@c FIXME: verify.
|
||||
|
||||
GCC must be configured to use GNU @command{as}. The latest version, from GNU
|
||||
binutils 2.20.1, is known to work.
|
||||
|
||||
To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
|
||||
later, and use the @option{--with-gnu-ld} @command{configure} option
|
||||
when configuring GCC@.
|
||||
You need to use GNU @command{ar} and @command{nm},
|
||||
also distributed with GNU binutils.
|
||||
@c FIXME: which parts of this are still true?
|
||||
|
||||
Configuring GCC with @command{/bin/sh} is @emph{extremely} slow and may
|
||||
even hang. This problem can be avoided by running @command{configure}
|
||||
like this:
|
||||
|
||||
@smallexample
|
||||
% CONFIG_SHELL=/usr/local/bin/bash
|
||||
% export CONFIG_SHELL
|
||||
% $CONFIG_SHELL @var{srcdir}/configure [@var{options}]
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
@command{/bin/ksh} doesn't work properly either.
|
||||
Support for IRIX 5 has been removed in GCC 4.6.
|
||||
|
||||
@html
|
||||
<hr />
|
||||
@end html
|
||||
@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
|
||||
|
||||
Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5,
|
||||
but can still be enabled by configuring with @option{--enable-obsolete}.
|
||||
Support will be removed in GCC 4.6, which will also disable support for
|
||||
Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as
|
||||
well as support for
|
||||
the O32 ABI. It is @emph{strongly} recommended to upgrade to at least
|
||||
IRIX 6.5.18. This release introduced full ISO C99 support, though for
|
||||
the N32 and N64 ABIs only.
|
||||
|
||||
To build and use GCC on IRIX 6, you need the IRIX Development Foundation
|
||||
To build and use GCC on IRIX 6.5, you need the IRIX Development Foundation
|
||||
(IDF) and IRIX Development Libraries (IDL). They are included with the
|
||||
IRIX 6.5 media and can be downloaded from
|
||||
@uref{http://freeware.sgi.com/idf_idl.html} for older IRIX 6 releases.
|
||||
IRIX 6.5 media.
|
||||
|
||||
If you are using SGI's MIPSpro @command{cc} as your bootstrap compiler, you must
|
||||
ensure that the N32 ABI is in use. To test this, compile a simple C
|
||||
@ -3933,11 +3895,11 @@ MIPSpro C 7.4 may cause bootstrap failures, due to a bug when inlining
|
||||
@code{memcmp}. Either add @code{-U__INLINE_INTRINSICS} to the @env{CC}
|
||||
environment variable as a workaround or upgrade to MIPSpro C 7.4.1m.
|
||||
|
||||
GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If
|
||||
GCC on IRIX 6.5 is usually built to support the N32 and N64 ABIs. If
|
||||
you build GCC on a system that doesn't have the N64 libraries installed
|
||||
or cannot run 64-bit binaries,
|
||||
you need to configure with @option{--disable-multilib} so GCC doesn't
|
||||
try to use them. This will disable building the O32 libraries, too.
|
||||
try to use them.
|
||||
Look for @file{/usr/lib64/libc.so.1} to see if you
|
||||
have the 64-bit libraries installed.
|
||||
|
||||
|
@ -1,3 +1,9 @@
|
||||
2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* configure.host: Removed irix[1-6], irix[1-5].*, irix6.[0-4]*
|
||||
support.
|
||||
* config/os/irix/irix5.2: Removed.
|
||||
|
||||
2010-05-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
|
||||
|
@ -1,55 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997-1999, 2001, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This library 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.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h on irix 5.2
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @brief Base class for ctype.
|
||||
struct ctype_base
|
||||
{
|
||||
// Non-standard typedefs.
|
||||
typedef unsigned int* __to_type;
|
||||
|
||||
// NB: Offsets into ctype<char>::_M_table force a particular size
|
||||
// on the mask type. Because of this, we don't use an enum.
|
||||
typedef unsigned char mask;
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _U | _L;
|
||||
static const mask digit = _N;
|
||||
static const mask xdigit = _X;
|
||||
static const mask space = _S;
|
||||
static const mask print = _U | _L | _N | _P | _B;
|
||||
static const mask graph = _U | _L | _N | _P;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _U | _L | _N;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,71 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This library 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.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
bool
|
||||
ctype<char>::
|
||||
is(mask __m, char __c) const
|
||||
{ return (_M_table)[static_cast<unsigned char>(__c)] & __m; }
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
is(const char* __low, const char* __high, mask* __vec) const
|
||||
{
|
||||
while (__low < __high)
|
||||
*__vec++ = (_M_table)[static_cast<unsigned char>(*__low++)];
|
||||
return __high;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
scan_is(mask __m, const char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high && ! this->is(__m, *__low))
|
||||
++__low;
|
||||
return __low;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
scan_not(mask __m, const char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high && this->is(__m, *__low))
|
||||
++__low;
|
||||
return __low;
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,93 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2009
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This library 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.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return __ctype + 1; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(!__table ? classic_table() : __table)
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(!__table ? classic_table() : __table)
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{ return _toupper(__c); }
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = do_toupper(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{ return _tolower(__c); }
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = do_tolower(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
@ -1,46 +0,0 @@
|
||||
// Specific definitions for IRIX -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2005, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This library 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.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
// We need large file support. There are two ways to turn it on: by
|
||||
// defining either _LARGEFILE64_SOURCE or _SGI_SOURCE. However, it
|
||||
// does not actually work to define only the former, as then
|
||||
// <sys/stat.h> is invalid: `st_blocks' is defined to be a macro, but
|
||||
// then used as a field name. So, we have to turn on _SGI_SOURCE.
|
||||
// That only works if _POSIX_SOURCE is turned off, so we have to
|
||||
// explicitly turn it off. (Some of the libio C files explicitly try
|
||||
// to turn it on.) _SGI_SOURCE is actually turned on implicitly via
|
||||
// the command-line.
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
// GCC does not use thunks on IRIX.
|
||||
#define _G_USING_THUNKS 0
|
||||
|
||||
#endif
|
||||
|
@ -245,12 +245,6 @@ case "${host_os}" in
|
||||
hpux*)
|
||||
os_include_dir="os/hpux"
|
||||
;;
|
||||
irix[1-6] | irix[1-5].* | irix6.[0-4]*)
|
||||
# This is known to work on at least IRIX 5.2 and 6.3.
|
||||
os_include_dir="os/irix/irix5.2"
|
||||
atomicity_dir=os/irix
|
||||
atomic_word_dir=os/irix
|
||||
;;
|
||||
irix6.5*)
|
||||
os_include_dir="os/irix/irix6.5"
|
||||
atomicity_dir=os/irix
|
||||
|
Loading…
Reference in New Issue
Block a user