configure.ac (mips*-*-*): Print an error if not using GAS.
* configure.ac (mips*-*-*): Print an error if not using GAS. * configure: Regenerated. * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove comments about buggy MIPSpro assemblers. * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix. Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld. * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES) (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC) (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE) (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h. (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor of more general IRIX 6 definitions. (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL) (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions. (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION) (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC) (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER) (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL) (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS) (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS) (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs. (LINK_SPEC): Move most of definition to iris.h. (SUBTARGET_LINK_SPEC): New macro. (IRIX_STARTFILE_SPEC): Fold into... (STARTFILE_SPEC): ...here. (IRIX_ENDFILE_SPEC): Fold into... (ENDFILE_SPEC): ...here. * config/mips/iris6.h (TARGET_IRIX5): Remove override. (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE) (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP) (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME) (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h. (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits. (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL) (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX) (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE) (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY) (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC) (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC) (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*) (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP) (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME) (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL) (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs. (TARGET_IRIX6): Define to 1. (DRIVER_SELF_SPECS): Define. (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS. (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS. (SUBTARGET_LINK_SPEC): New macro. (IRIX_STARTFILE_SPEC): Fold into... (STARTFILE_SPEC): ...here. Remove !mabi=* case. (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros. (LIB_SPEC, LIBGCC_SPEC): Use them. (LIB_SPEC): Remove !mabi=* case. (IRIX_ENDFILE_SPEC): Fold into... (ENDFILE_SPEC): ...here. Remove !mabi=* case. * config/mips/mips-protos.h (irix_output_external_libcall): Delete. * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete. (TARGET_IRIX6): New macro. (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition. (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER) (LABEL_AFTER_LOC): Delete. * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END) (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions. (mips_build_builtin_va_list): Check TARGET_IRIX6. (override_options): Remove TARGET_SGI_O32_AS-related code. (irix_output_external_libcall): Make static. (mips_output_filename): Avoid use of SET_FILE_NUMBER and LABEL_AFTER_LOC. (mips_file_start): Tidy guard for ABI sections. Remove use of ABICALLS_ASM_OP; use .abicalls instead. (mips_output_aligned_decl_common, mips_declare_object_name) (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS. (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting .globl foo .text directives. (irix_asm_named_section_1, irix_asm_named_section) (irix_section_align_entry, irix_section_align_htab) (irix_orig_asm_out_file, irix_section_align_entry_eq) (irix_section_align_entry_hash, irix_asm_output_align) (irix_file_start, irix_section_align_1, copy_file_data) (irix_file_end, irix_section_type_flags): Delete. * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section. Use standard section syntax. Remove protective "jr $31". (__gcc_fini): Likewise .gcc_fini. * config/mips/irix-crtn.asm: Adjust sections accordingly. * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from iris5gas.h. * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved from t-irix-gld. (EXTRA_MULTILIB_PARTS): Define. * config/mips/t-iris6: Remove bogus comment. (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete. * config/mips/iris5gas.h, config/mips/iris5gld.h, config/mips/iris6gas.h, config/mips/iris6gld.h, config/mips/t-iris5-as, config/mips/t-iris5-gas config/mips/t-irix-gld: Delete. * config/mips/iris.h: New file. * config/mips/t-slibgcc-irix: Renamed from t-iris5-6. From-SVN: r86309
This commit is contained in:
parent
c4cdb8e1d0
commit
82563d3508
105
gcc/ChangeLog
105
gcc/ChangeLog
|
@ -1,3 +1,108 @@
|
|||
2004-08-20 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* configure.ac (mips*-*-*): Print an error if not using GAS.
|
||||
* configure: Regenerated.
|
||||
* doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
|
||||
comments about buggy MIPSpro assemblers.
|
||||
* config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
|
||||
before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
|
||||
Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
|
||||
IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
|
||||
* config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
|
||||
(DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
|
||||
(NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
|
||||
(TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
|
||||
(WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
|
||||
of more general IRIX 6 definitions.
|
||||
(OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
|
||||
(HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
|
||||
(TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
|
||||
(LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
|
||||
(ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
|
||||
(PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
|
||||
(LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
|
||||
(TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
|
||||
(ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
|
||||
(SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
|
||||
(LINK_SPEC): Move most of definition to iris.h.
|
||||
(SUBTARGET_LINK_SPEC): New macro.
|
||||
(IRIX_STARTFILE_SPEC): Fold into...
|
||||
(STARTFILE_SPEC): ...here.
|
||||
(IRIX_ENDFILE_SPEC): Fold into...
|
||||
(ENDFILE_SPEC): ...here.
|
||||
* config/mips/iris6.h (TARGET_IRIX5): Remove override.
|
||||
(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
|
||||
(DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
|
||||
(LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
|
||||
(ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
|
||||
(TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
|
||||
(DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
|
||||
(SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
|
||||
(PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
|
||||
(ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
|
||||
(FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
|
||||
(POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
|
||||
(SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
|
||||
(BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
|
||||
(EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
|
||||
(DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
|
||||
(ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
|
||||
(ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
|
||||
(TARGET_IRIX6): Define to 1.
|
||||
(DRIVER_SELF_SPECS): Define.
|
||||
(DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
|
||||
(SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
|
||||
(SUBTARGET_LINK_SPEC): New macro.
|
||||
(IRIX_STARTFILE_SPEC): Fold into...
|
||||
(STARTFILE_SPEC): ...here. Remove !mabi=* case.
|
||||
(SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
|
||||
(LIB_SPEC, LIBGCC_SPEC): Use them.
|
||||
(LIB_SPEC): Remove !mabi=* case.
|
||||
(IRIX_ENDFILE_SPEC): Fold into...
|
||||
(ENDFILE_SPEC): ...here. Remove !mabi=* case.
|
||||
* config/mips/mips-protos.h (irix_output_external_libcall): Delete.
|
||||
* config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
|
||||
(TARGET_IRIX6): New macro.
|
||||
(ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
|
||||
(MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
|
||||
(LABEL_AFTER_LOC): Delete.
|
||||
* config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
|
||||
(TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
|
||||
(mips_build_builtin_va_list): Check TARGET_IRIX6.
|
||||
(override_options): Remove TARGET_SGI_O32_AS-related code.
|
||||
(irix_output_external_libcall): Make static.
|
||||
(mips_output_filename): Avoid use of SET_FILE_NUMBER and
|
||||
LABEL_AFTER_LOC.
|
||||
(mips_file_start): Tidy guard for ABI sections. Remove use of
|
||||
ABICALLS_ASM_OP; use .abicalls instead.
|
||||
(mips_output_aligned_decl_common, mips_declare_object_name)
|
||||
(mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
|
||||
(mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
|
||||
.globl foo .text directives.
|
||||
(irix_asm_named_section_1, irix_asm_named_section)
|
||||
(irix_section_align_entry, irix_section_align_htab)
|
||||
(irix_orig_asm_out_file, irix_section_align_entry_eq)
|
||||
(irix_section_align_entry_hash, irix_asm_output_align)
|
||||
(irix_file_start, irix_section_align_1, copy_file_data)
|
||||
(irix_file_end, irix_section_type_flags): Delete.
|
||||
* config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
|
||||
Use standard section syntax. Remove protective "jr $31".
|
||||
(__gcc_fini): Likewise .gcc_fini.
|
||||
* config/mips/irix-crtn.asm: Adjust sections accordingly.
|
||||
* config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
|
||||
iris5gas.h.
|
||||
* config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
|
||||
from t-irix-gld.
|
||||
(EXTRA_MULTILIB_PARTS): Define.
|
||||
* config/mips/t-iris6: Remove bogus comment.
|
||||
(EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
|
||||
* config/mips/iris5gas.h, config/mips/iris5gld.h,
|
||||
config/mips/iris6gas.h, config/mips/iris6gld.h,
|
||||
config/mips/t-iris5-as, config/mips/t-iris5-gas
|
||||
config/mips/t-irix-gld: Delete.
|
||||
* config/mips/iris.h: New file.
|
||||
* config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
|
||||
|
||||
2004-08-20 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* postreload.c (reload_cse_move2add): Allow any condjump, but check
|
||||
|
|
|
@ -1274,68 +1274,28 @@ mcore-*-pe*)
|
|||
tmake_file=mcore/t-mcore-pe
|
||||
use_fixproto=yes
|
||||
;;
|
||||
mips-sgi-irix6*) # SGI System V.4., IRIX 6
|
||||
tm_file="${tm_file} mips/iris5.h mips/iris6.h"
|
||||
tmake_file="mips/t-iris mips/t-iris5-6 mips/t-iris6"
|
||||
if test x$gas = xyes
|
||||
mips-sgi-irix[56]*)
|
||||
tm_file="elfos.h ${tm_file} mips/iris.h"
|
||||
tmake_file="mips/t-iris mips/t-slibgcc-irix"
|
||||
target_cpu_default="MASK_GAS|MASK_ABICALLS"
|
||||
case ${target} in
|
||||
*-*-irix5*)
|
||||
tm_file="${tm_file} mips/iris5.h"
|
||||
;;
|
||||
|
||||
*-*-irix6*)
|
||||
tm_file="${tm_file} mips/iris6.h"
|
||||
tmake_file="${tmake_file} mips/t-iris6"
|
||||
tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
|
||||
;;
|
||||
esac
|
||||
if test "x$stabs" = xyes
|
||||
then
|
||||
tm_file="${tm_file} mips/iris6gas.h"
|
||||
tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
|
||||
fi
|
||||
if test "x$gnu_ld" = xyes
|
||||
then
|
||||
tm_file="${tm_file} mips/iris6gld.h"
|
||||
tmake_file="$tmake_file mips/t-irix-gld"
|
||||
fi
|
||||
target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_64BIT"
|
||||
tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
|
||||
# See comment in mips/iris5.h file. Only enabled for O32 ABI
|
||||
# without GNU as.
|
||||
if test x$gas = xno
|
||||
then
|
||||
use_collect2=yes
|
||||
fi
|
||||
# if test x$enable_threads = xyes; then
|
||||
# thread_file='irix'
|
||||
# fi
|
||||
use_fixproto=yes
|
||||
;;
|
||||
mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64
|
||||
tm_file="${tm_file} mips/iris5.h mips/iris6.h mips/cross64.h"
|
||||
tmake_file="mips/t-iris mips/t-cross64"
|
||||
target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_64BIT"
|
||||
tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
|
||||
# See comment in mips/iris[56].h files.
|
||||
use_collect2=yes
|
||||
# if test x$enable_threads = xyes; then
|
||||
# thread_file='irix'
|
||||
# fi
|
||||
use_fixproto=yes
|
||||
;;
|
||||
mips-sgi-irix5*) # SGI System V.4., IRIX 5
|
||||
tm_file="${tm_file} mips/iris5.h"
|
||||
if test x$gas = xyes
|
||||
then
|
||||
tm_file="${tm_file} mips/sdb.h mips/iris5gas.h"
|
||||
if test x$stabs = xyes
|
||||
then
|
||||
tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
|
||||
fi
|
||||
tmake_file=mips/t-iris5-gas
|
||||
else
|
||||
tmake_file=mips/t-iris5-as
|
||||
fi
|
||||
if test "x$gnu_ld" = xyes
|
||||
then
|
||||
tm_file="${tm_file} mips/iris5gld.h"
|
||||
tmake_file="$tmake_file mips/t-irix-gld"
|
||||
fi
|
||||
tmake_file="${tmake_file} mips/t-iris mips/t-iris5-6"
|
||||
target_cpu_default="MASK_ABICALLS"
|
||||
# mips-tfile doesn't work yet
|
||||
# See comment in mips/iris5.h file.
|
||||
if test x$gas = xno
|
||||
then
|
||||
use_collect2=yes
|
||||
tm_defines="${tm_defines} IRIX_USING_GNU_LD"
|
||||
fi
|
||||
# if test x$enable_threads = xyes; then
|
||||
# thread_file='irix'
|
||||
|
|
|
@ -0,0 +1,222 @@
|
|||
/* Definitions of target machine for GNU compiler. Generic IRIX version.
|
||||
Copyright (C) 1993, 1995, 1996, 1998, 2000,
|
||||
2001, 2002, 2003, 2004 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 2, 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 COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* We are compiling for IRIX now. */
|
||||
#undef TARGET_IRIX
|
||||
#define TARGET_IRIX 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
|
||||
|
||||
/* Also do this for libcalls. */
|
||||
#undef TARGET_ASM_EXTERNAL_LIBCALL
|
||||
#define TARGET_ASM_EXTERNAL_LIBCALL irix_output_external_libcall
|
||||
|
||||
/* The linker needs a space after "-o". */
|
||||
#define SWITCHES_NEED_SPACES "o"
|
||||
|
||||
/* 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
|
||||
|
||||
/* 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 (mips_abi == ABI_32) \
|
||||
{ \
|
||||
builtin_define ("_ABIO32=1"); \
|
||||
builtin_define ("_MIPS_SIM=_ABIO32"); \
|
||||
builtin_define ("_MIPS_SZINT=32"); \
|
||||
builtin_define ("_MIPS_SZLONG=32"); \
|
||||
builtin_define ("_MIPS_SZPTR=32"); \
|
||||
} \
|
||||
else if (mips_abi == ABI_64) \
|
||||
{ \
|
||||
builtin_define ("_ABI64=3"); \
|
||||
builtin_define ("_MIPS_SIM=_ABI64"); \
|
||||
builtin_define ("_MIPS_SZINT=32"); \
|
||||
builtin_define ("_MIPS_SZLONG=64"); \
|
||||
builtin_define ("_MIPS_SZPTR=64"); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
builtin_define ("_ABIN32=2"); \
|
||||
builtin_define ("_MIPS_SIM=_ABIN32"); \
|
||||
builtin_define ("_MIPS_SZINT=32"); \
|
||||
builtin_define ("_MIPS_SZLONG=32"); \
|
||||
builtin_define ("_MIPS_SZPTR=32"); \
|
||||
} \
|
||||
\
|
||||
if (!ISA_MIPS1 && !ISA_MIPS2) \
|
||||
builtin_define ("_COMPILER_VERSION=601"); \
|
||||
\
|
||||
if (!TARGET_FLOAT64) \
|
||||
builtin_define ("_MIPS_FPSET=16"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_FPSET=32"); \
|
||||
\
|
||||
/* 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
|
||||
|
||||
/* 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
|
|
@ -19,286 +19,27 @@ along with GCC; see the file COPYING. If not, write to
|
|||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* We are compiling for IRIX now. */
|
||||
#undef TARGET_IRIX
|
||||
#define TARGET_IRIX 1
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_SUBTARGET_LINK_SPEC "-melf32bsmip"
|
||||
#else
|
||||
#define IRIX_SUBTARGET_LINK_SPEC "-_SYSTYPE_SVR4"
|
||||
#endif
|
||||
|
||||
/* Allow some special handling for IRIX 5. */
|
||||
#undef TARGET_IRIX5
|
||||
#define TARGET_IRIX5 1
|
||||
|
||||
#define ABICALLS_ASM_OP "\t.option pic2"
|
||||
|
||||
/* Dummy definition which allows EXTRA_SECTION_FUNCTIONS to be the same
|
||||
for IRIX 5 and 6. */
|
||||
#define BSS_SECTION_ASM_OP "\t.data"
|
||||
|
||||
/* ??? This is correct, but not very useful, because there is no file that
|
||||
uses this macro. */
|
||||
/* ??? The best way to handle global constructors under ELF is to use .init
|
||||
and .fini sections. Unfortunately, there is apparently no way to get
|
||||
the IRIX 5.x (x <= 2) assembler to create these sections. So we instead
|
||||
use collect. The linker can create these sections via -init and -fini
|
||||
options, but using this would require modifying how crtstuff works, and
|
||||
I will leave that for another time (or someone else). */
|
||||
#define OBJECT_FORMAT_ELF
|
||||
#define HAS_INIT_SECTION
|
||||
#define LD_INIT_SWITCH "-init"
|
||||
#define LD_FINI_SWITCH "-fini"
|
||||
|
||||
/* The linker needs a space after "-o". */
|
||||
#define SWITCHES_NEED_SPACES "o"
|
||||
|
||||
/* Specify wchar_t types. */
|
||||
#undef WCHAR_TYPE
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
|
||||
#define WCHAR_TYPE "int"
|
||||
#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
|
||||
|
||||
/* 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"))
|
||||
|
||||
/* We must pass -D_LONGLONG always, 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. Alternatively, we can
|
||||
add support for the SGI builtin type __long_long. */
|
||||
|
||||
#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 ("_LONGLONG"); \
|
||||
builtin_define ("_MODERN_C"); \
|
||||
builtin_define ("_SVR4_SOURCE"); \
|
||||
builtin_define ("__DSO__"); \
|
||||
builtin_define ("_ABIO32=1"); \
|
||||
builtin_define ("_MIPS_SIM=_ABIO32"); \
|
||||
builtin_define ("_MIPS_SZPTR=32"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=svr4"); \
|
||||
builtin_assert ("machine=sgi"); \
|
||||
\
|
||||
if (!TARGET_FLOAT64) \
|
||||
builtin_define ("_MIPS_FPSET=16"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_FPSET=32"); \
|
||||
\
|
||||
if (!TARGET_INT64) \
|
||||
builtin_define ("_MIPS_SZINT=32"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_SZINT=64"); \
|
||||
\
|
||||
if (!TARGET_LONG64) \
|
||||
builtin_define ("_MIPS_SZLONG=32"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_SZLONG=64"); \
|
||||
\
|
||||
if (!flag_iso) \
|
||||
{ \
|
||||
builtin_define ("__EXTENSIONS__"); \
|
||||
builtin_define ("_SGI_SOURCE"); \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
#undef SUBTARGET_CC1_SPEC
|
||||
#define SUBTARGET_CC1_SPEC "%{static: -mno-abicalls}"
|
||||
|
||||
/* Override mips.h default: the IRIX 5 assembler warns about -O3:
|
||||
|
||||
as1: Warning: <file>.s, line 1: Binasm file dictates -pic: 2
|
||||
uld:
|
||||
No ucode object file linked -- please use -O2 or lower.
|
||||
|
||||
So avoid passing it in the first place. */
|
||||
#undef SUBTARGET_ASM_OPTIMIZING_SPEC
|
||||
#define SUBTARGET_ASM_OPTIMIZING_SPEC "\
|
||||
%{noasmopt:-O0} \
|
||||
%{!noasmopt:%{O|O1|O2|O3:-O2}}"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{static: -non_shared} \
|
||||
%{!static: \
|
||||
%{!shared:%{!non_shared:%{!call_shared: -call_shared -no_unresolved}}}} \
|
||||
%{rpath} \
|
||||
-_SYSTYPE_SVR4"
|
||||
|
||||
/* We now support shared libraries. */
|
||||
#define IRIX_STARTFILE_SPEC "\
|
||||
#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}}}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "%(irix_startfile_spec)"
|
||||
%{!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}"
|
||||
|
||||
#define IRIX_ENDFILE_SPEC "%{!shared:crtn.o%s}"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "%(irix_endfile_spec)"
|
||||
|
||||
/* We do not want to run mips-tfile! */
|
||||
#undef ASM_FINAL_SPEC
|
||||
|
||||
/* 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
|
||||
|
||||
/* We don't support debugging info for now. */
|
||||
#undef DBX_DEBUGGING_INFO
|
||||
#undef MIPS_DEBUGGING_INFO
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
|
||||
/* Likewise, the assembler doesn't handle DWARF2 directives. */
|
||||
#define DWARF2_UNWIND_INFO 0
|
||||
#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"
|
||||
|
||||
/* Always use 1 for .file number. I [meissner@osf.org] wonder why
|
||||
IRIX needs this. */
|
||||
|
||||
#undef SET_FILE_NUMBER
|
||||
#define SET_FILE_NUMBER() num_source_filenames = 1
|
||||
|
||||
/* Put out a label after a .loc. I [meissner@osf.org] wonder why
|
||||
IRIX needs this. */
|
||||
|
||||
#undef LABEL_AFTER_LOC
|
||||
#define LABEL_AFTER_LOC(STREAM) fprintf (STREAM, "LM%d:\n", ++sym_lineno)
|
||||
|
||||
/* Dollar signs are OK in IRIX 5 but not in IRIX 3. */
|
||||
#undef DOLLARS_IN_IDENTIFIERS
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* -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
|
||||
|
||||
/* Switch into a generic section. */
|
||||
#undef TARGET_ASM_NAMED_SECTION
|
||||
#define TARGET_ASM_NAMED_SECTION irix_asm_named_section
|
||||
|
||||
/* Define functions to read the name and flags of the current section.
|
||||
They are used by irix_asm_output_align. */
|
||||
|
||||
#undef EXTRA_SECTION_FUNCTIONS
|
||||
#define EXTRA_SECTION_FUNCTIONS \
|
||||
const char * \
|
||||
current_section_name (void) \
|
||||
{ \
|
||||
switch (in_section) \
|
||||
{ \
|
||||
case no_section: return NULL; \
|
||||
case in_unlikely_executed_text: \
|
||||
case in_text: return ".text"; \
|
||||
case in_data: return ".data"; \
|
||||
case in_bss: return ".bss"; \
|
||||
case in_readonly_data: \
|
||||
if (mips_abi != ABI_32 && mips_abi != ABI_O64) \
|
||||
return ".rodata"; \
|
||||
else \
|
||||
return ".rdata"; \
|
||||
case in_named: \
|
||||
return in_named_name; \
|
||||
default: abort(); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
unsigned int \
|
||||
current_section_flags (void) \
|
||||
{ \
|
||||
switch (in_section) \
|
||||
{ \
|
||||
case no_section: return 0; \
|
||||
case in_unlikely_executed_text: \
|
||||
case in_text: return SECTION_CODE; \
|
||||
case in_data: return SECTION_WRITE; \
|
||||
case in_bss: return SECTION_WRITE | SECTION_BSS; \
|
||||
case in_readonly_data: return 0; \
|
||||
case in_named: return get_named_section_flags (in_named_name); \
|
||||
default: abort (); \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Some assemblers have a bug that causes backslash escaped chars in .ascii
|
||||
to be misassembled, so avoid it by using .byte instead. Write the original
|
||||
string in a comment, partly to improve readability and partly for the sake
|
||||
of scan-assembler-type tests. */
|
||||
#undef ASM_OUTPUT_ASCII
|
||||
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
|
||||
do { \
|
||||
const unsigned char *s_ = (const unsigned char *)(PTR); \
|
||||
unsigned len_ = (LEN); \
|
||||
unsigned i_; \
|
||||
mips_output_ascii (FILE, (const char *) s_, len_, "\t# "); \
|
||||
for (i_ = 0; i_ < len_; s_++, i_++) \
|
||||
{ \
|
||||
if ((i_ % 8) == 0) \
|
||||
fputs ("\n\t.byte\t", (FILE)); \
|
||||
fprintf ((FILE), "%s0x%x", (i_%8?",":""), *s_); \
|
||||
} \
|
||||
fputs ("\n", (FILE)); \
|
||||
} while (0)
|
||||
|
||||
/* Also do this for libcalls. */
|
||||
#undef TARGET_ASM_EXTERNAL_LIBCALL
|
||||
#define TARGET_ASM_EXTERNAL_LIBCALL irix_output_external_libcall
|
||||
|
||||
/* This does for functions what ASM_DECLARE_OBJECT_NAME does for variables.
|
||||
This is used indirectly by ASM_OUTPUT_EXTERNAL. */
|
||||
#define ASM_DECLARE_FUNCTION_SIZE(STREAM, NAME, DECL) \
|
||||
do { \
|
||||
tree name_tree = get_identifier (NAME); \
|
||||
TREE_ASM_WRITTEN (name_tree) = 1; \
|
||||
} while (0)
|
||||
|
||||
/* This is how we tell the assembler that a symbol is weak. */
|
||||
|
||||
#define ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, VALUE) \
|
||||
do \
|
||||
{ \
|
||||
(*targetm.asm_out.globalize_label) (FILE, NAME); \
|
||||
fputs ("\t.weakext\t", FILE); \
|
||||
assemble_name (FILE, NAME); \
|
||||
if (VALUE) \
|
||||
{ \
|
||||
fputc (' ', FILE); \
|
||||
assemble_name (FILE, VALUE); \
|
||||
} \
|
||||
fputc ('\n', FILE); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#define ASM_WEAKEN_LABEL(FILE, NAME) ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, 0)
|
||||
|
||||
/* Handle #pragma weak and #pragma pack. */
|
||||
#define HANDLE_SYSV_PRAGMA 1
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "irix_startfile_spec", IRIX_STARTFILE_SPEC }, \
|
||||
{ "irix_endfile_spec", IRIX_ENDFILE_SPEC },
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
/* Definitions of target machine for GNU compiler. IRIX version 5 with gas.
|
||||
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
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 2, 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 COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Reenable debugging. */
|
||||
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
|
||||
|
||||
/* GNU as does handle DWARF2 directives. */
|
||||
#undef DWARF2_UNWIND_INFO
|
||||
#define DWARF2_UNWIND_INFO 1
|
||||
|
||||
/* Override iris5.h version to invoke [cd]tors and register eh frame
|
||||
information. */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{static: -non_shared} \
|
||||
%{!static: \
|
||||
%{!shared:%{!non_shared:%{!call_shared: -call_shared -no_unresolved}}}} \
|
||||
%{rpath} -init __do_global_ctors -fini __do_global_dtors \
|
||||
%{shared:-hidden_symbol __do_global_ctors,__do_global_ctors_1,__do_global_dtors} \
|
||||
-_SYSTYPE_SVR4"
|
||||
|
||||
/* Override iris5.h versions to include crtbegin.o and crtend.o. */
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "%(irix_startfile_spec) crtbegin.o%s"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtend.o%s %(irix_endfile_spec)"
|
||||
|
||||
/* Irix 5 does not have some strange restrictions that Irix 3 had. */
|
||||
#undef SET_FILE_NUMBER
|
||||
#define SET_FILE_NUMBER() ++num_source_filenames
|
||||
#undef LABEL_AFTER_LOC
|
||||
#define LABEL_AFTER_LOC(STREAM)
|
||||
|
||||
/* We need to use .esize and .etype instead of .size and .type to
|
||||
avoid conflicting with ELF directives. These are only recognized
|
||||
by gas, anyhow, not the native assembler. */
|
||||
#undef PUT_SDB_SIZE
|
||||
#define PUT_SDB_SIZE(a) \
|
||||
do { \
|
||||
fprintf (asm_out_file, "\t.esize\t" HOST_WIDE_INT_PRINT_DEC ";", \
|
||||
(HOST_WIDE_INT) (a)); \
|
||||
} while (0)
|
||||
|
||||
#undef PUT_SDB_TYPE
|
||||
#define PUT_SDB_TYPE(a) \
|
||||
do { \
|
||||
fprintf (asm_out_file, "\t.etype\t0x%x;", (a)); \
|
||||
} while (0)
|
||||
|
||||
/* Add -g to mips.h default to avoid confusing gas with local symbols
|
||||
generated from stabs info. */
|
||||
#undef NM_FLAGS
|
||||
#define NM_FLAGS "-Bng"
|
||||
|
||||
/* Disable SHF_MERGE support. Even if gas supports it, the IRIX ld does not
|
||||
without a special elspec(5) file.
|
||||
|
||||
FIXME: Only do this if not using GNU ld. */
|
||||
#undef HAVE_GAS_SHF_MERGE
|
||||
#define HAVE_GAS_SHF_MERGE 0
|
|
@ -1,75 +0,0 @@
|
|||
/* Definitions of target machine for GNU compiler. IRIX 5 with GNU ld.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{static: -non_shared} \
|
||||
%{!static: \
|
||||
%{!shared: %{!non_shared: %{!call_shared: -call_shared}}}} \
|
||||
%{rpath} -init __gcc_init -fini __gcc_fini \
|
||||
-melf32bsmip"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "%(irix_startfile_spec) irix-crti.o%s crtbegin.o%s"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtend.o%s irix-crtn.o%s %(irix_endfile_spec)"
|
||||
|
||||
/* The GNU linker supports one-only sections. */
|
||||
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
|
||||
|
||||
#define INIT_SECTION_ASM_OP "\t.section\t.init,0x1,0x6,4,4"
|
||||
#define FINI_SECTION_ASM_OP "\t.section\t.fini,0x1,0x6,4,4"
|
||||
/* Definitions of target machine for GNU compiler. IRIX 5 with GNU ld.
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{static: -non_shared} \
|
||||
%{!static: \
|
||||
%{!shared: %{!non_shared: %{!call_shared: -call_shared}}}} \
|
||||
%{rpath} -init __do_global_ctors -fini __do_global_dtors \
|
||||
-melf32bsmip"
|
||||
|
||||
/* The GNU linker supports one-only sections. */
|
||||
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
|
|
@ -19,384 +19,39 @@ along with GCC; see the file COPYING. If not, write to
|
|||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* No more special IRIX 5 handling. */
|
||||
#undef TARGET_IRIX5
|
||||
#define TARGET_IRIX5 0
|
||||
/* Allow some special handling for IRIX 6. */
|
||||
#undef TARGET_IRIX6
|
||||
#define TARGET_IRIX6 1
|
||||
|
||||
/* Default to -mabi=n32 and -mips3. */
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS { "mabi=n32" }
|
||||
|
||||
/* The IRIX 6 O32 assembler cannot calculate label differences, while both
|
||||
the N32/N64 assembler and gas can. Override setting in iris5.h file. */
|
||||
#undef DWARF2_UNWIND_INFO
|
||||
#define DWARF2_UNWIND_INFO !TARGET_SGI_O32_AS
|
||||
|
||||
/* The IRIX 6 assembler will sometimes assign labels to the wrong
|
||||
section unless the labels are within .ent/.end blocks. Therefore,
|
||||
we avoid creating such labels. */
|
||||
#define DWARF2_GENERATE_TEXT_SECTION_LABEL 0
|
||||
|
||||
/* wchar_t is defined differently with and without -mabi=64. */
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Same for wint_t. */
|
||||
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE (Pmode == DImode ? "int" : "long int")
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE 32
|
||||
|
||||
/* For IRIX 6, -mabi=64 implies TARGET_LONG64. */
|
||||
/* This is handled in override_options. */
|
||||
|
||||
/* Default to the mips2 ISA for the O32 ABI. */
|
||||
#undef SUBTARGET_CC1_SPEC
|
||||
#define SUBTARGET_CC1_SPEC "%{mabi=32: %{!mips*: -mips2}}"
|
||||
|
||||
/* #line directives let the O32 assembler create object files that cause the
|
||||
O32 linker to crash. */
|
||||
#undef SUBTARGET_CPP_SPEC
|
||||
#define SUBTARGET_CPP_SPEC "%{mabi=32: %{.S:-P}}"
|
||||
|
||||
/* We must pass -D_LONGLONG always, even when -ansi is used, because IRIX 6
|
||||
system header files require it. This is OK, because gcc never warns
|
||||
when long long is used in system header files. Alternatively, we can
|
||||
add support for the SGI builtin type __long_long. */
|
||||
|
||||
/* 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. They normally get defined if !ansi, for g++ we want
|
||||
them regardless. We don't need this on IRIX 6.5 itself, but it
|
||||
shouldn't hurt other than the namespace pollution. */
|
||||
|
||||
/* Undefine because this includes iris5.h. */
|
||||
#undef TARGET_OS_CPP_BUILTINS
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do { \
|
||||
builtin_define_std ("host_mips"); \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
builtin_define ("_MODERN_C"); \
|
||||
builtin_define ("_SVR4_SOURCE"); \
|
||||
builtin_define_std ("SYSTYPE_SVR4"); \
|
||||
builtin_define ("__DSO__"); \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("sgi"); \
|
||||
builtin_assert ("system=svr4"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("machine=sgi"); \
|
||||
\
|
||||
if (mips_abi == ABI_32) \
|
||||
{ \
|
||||
builtin_define ("_ABIO32=1"); \
|
||||
builtin_define ("_MIPS_SIM=_ABIO32"); \
|
||||
builtin_define ("_MIPS_SZLONG=32"); \
|
||||
builtin_define ("_MIPS_SZPTR=32"); \
|
||||
} \
|
||||
else if (mips_abi == ABI_64) \
|
||||
{ \
|
||||
builtin_define ("_ABI64=3"); \
|
||||
builtin_define ("_MIPS_SIM=_ABI64"); \
|
||||
builtin_define ("_MIPS_SZLONG=64"); \
|
||||
builtin_define ("_MIPS_SZPTR=64"); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
builtin_define ("_ABIN32=2"); \
|
||||
builtin_define ("_MIPS_SIM=_ABIN32"); \
|
||||
builtin_define ("_MIPS_SZLONG=32"); \
|
||||
builtin_define ("_MIPS_SZPTR=32"); \
|
||||
} \
|
||||
\
|
||||
if (!TARGET_FLOAT64) \
|
||||
builtin_define ("_MIPS_FPSET=16"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_FPSET=32"); \
|
||||
\
|
||||
if (!TARGET_INT64) \
|
||||
builtin_define ("_MIPS_SZINT=32"); \
|
||||
else \
|
||||
builtin_define ("_MIPS_SZINT=64"); \
|
||||
\
|
||||
if (!ISA_MIPS1 && !ISA_MIPS2) \
|
||||
builtin_define ("_COMPILER_VERSION=601"); \
|
||||
\
|
||||
/* IRIX 6.5.18 and above provide many ISO C99 \
|
||||
features protected by the __c99 macro. \
|
||||
libstdc++ v3 needs them as well. */ \
|
||||
if ((!c_dialect_cxx () && flag_isoc99) \
|
||||
|| c_dialect_cxx ()) \
|
||||
builtin_define ("__c99"); \
|
||||
\
|
||||
if (c_dialect_cxx ()) \
|
||||
{ \
|
||||
builtin_define ("__EXTENSIONS__"); \
|
||||
builtin_define ("_SGI_SOURCE"); \
|
||||
} \
|
||||
\
|
||||
if (!flag_iso) \
|
||||
{ \
|
||||
builtin_define ("__EXTENSIONS__"); \
|
||||
builtin_define ("_SGI_SOURCE"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* IRIX 6 uses DWARF-2. */
|
||||
#define DWARF2_DEBUGGING_INFO 1
|
||||
#define MIPS_DEBUGGING_INFO 1
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
|
||||
/* 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. */
|
||||
#define DRIVER_SELF_SPECS \
|
||||
"%{!mabi=*: -mabi=n32}", \
|
||||
"%{mabi=32: %{!mips*: -mips2}}"
|
||||
|
||||
/* 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 !TARGET_SGI_O32_AS
|
||||
|
||||
/* 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
|
||||
|
||||
/* There is no GNU as port for IRIX 6 yet, so we set MD_EXEC_PREFIX so that
|
||||
gcc will automatically find SGI as instead of searching the user's path.
|
||||
The latter can fail when building a cross compiler if the user has . in
|
||||
the path before /usr/bin, since then gcc will find and try to use the link
|
||||
to the cross assembler which can't possibly work. */
|
||||
|
||||
#undef MD_EXEC_PREFIX
|
||||
#define MD_EXEC_PREFIX "/usr/bin/"
|
||||
|
||||
/* We have no need for MD_STARTFILE_PREFIX. */
|
||||
#undef MD_STARTFILE_PREFIX
|
||||
#define DWARF2_FRAME_INFO 1
|
||||
|
||||
#undef MACHINE_TYPE
|
||||
#define MACHINE_TYPE "SGI running IRIX 6.x"
|
||||
|
||||
/* Stuff we need for IRIX 6 that isn't in IRIX 5. */
|
||||
|
||||
/* The SGI assembler doesn't like labels before the .ent, so we must output
|
||||
the .ent and function name here, which is the normal place for it. */
|
||||
|
||||
#undef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
|
||||
do { \
|
||||
if (mips_abi != ABI_32) \
|
||||
{ \
|
||||
fputs ("\t.ent\t", STREAM); \
|
||||
assemble_name (STREAM, NAME); \
|
||||
fputs ("\n", STREAM); \
|
||||
assemble_name (STREAM, NAME); \
|
||||
fputs (":\n", STREAM); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Likewise, the SGI assembler doesn't like labels after the .end, so we
|
||||
must output the .end here. */
|
||||
#undef ASM_DECLARE_FUNCTION_SIZE
|
||||
#define ASM_DECLARE_FUNCTION_SIZE(STREAM, NAME, DECL) \
|
||||
do { \
|
||||
if (mips_abi == ABI_32) \
|
||||
{ \
|
||||
tree name_tree = get_identifier (NAME); \
|
||||
TREE_ASM_WRITTEN (name_tree) = 1; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fputs ("\t.end\t", STREAM); \
|
||||
assemble_name (STREAM, NAME); \
|
||||
fputs ("\n", STREAM); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Tell function_prologue in mips.c that we have already output the .ent/.end
|
||||
pseudo-ops. */
|
||||
#undef FUNCTION_NAME_ALREADY_DECLARED
|
||||
#define FUNCTION_NAME_ALREADY_DECLARED (mips_abi != ABI_32)
|
||||
|
||||
#undef SET_ASM_OP /* Has no equivalent. See ASM_OUTPUT_DEF below. */
|
||||
|
||||
#if 0
|
||||
/* This is *NOT* how to equate one symbol to another symbol. The assembler
|
||||
'=' syntax just equates a name to a constant expression.
|
||||
See ASM_OUTPUT_WEAK_ALIAS. */
|
||||
|
||||
#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
|
||||
do { fprintf ((FILE), "\t"); \
|
||||
assemble_name (FILE, LABEL1); \
|
||||
fprintf (FILE, " = "); \
|
||||
assemble_name (FILE, LABEL2); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} while (0)
|
||||
#ifdef IRIX_USING_GNU_LD
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{mabi=32: -melf32bsmip}%{mabi=n32: -melf32bmipn32}%{mabi=64: -melf64bmip}"
|
||||
#else
|
||||
#define IRIX_SUBTARGET_LINK_SPEC \
|
||||
"%{w} -_SYSTYPE_SVR4 -woff 131 \
|
||||
%{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
|
||||
#endif
|
||||
|
||||
/* Define the strings used for the special svr4 .type and .size directives. */
|
||||
|
||||
#define TYPE_ASM_OP "\t.type\t"
|
||||
#define SIZE_ASM_OP "\t.size\t"
|
||||
|
||||
/* IRIX assembler does not support the init_priority C++ attribute. */
|
||||
#undef SUPPORTS_INIT_PRIORITY
|
||||
#define SUPPORTS_INIT_PRIORITY 0
|
||||
|
||||
/* A linker error can empirically be avoided by removing duplicate
|
||||
library search directories. */
|
||||
#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 1
|
||||
|
||||
#define POPSECTION_ASM_OP "\t.popsection"
|
||||
|
||||
/* ??? If no mabi=X option give, but a mipsX option is, then should depend
|
||||
on the mipsX option. */
|
||||
/* If no mips[3,4] option given, give the appropriate default for mabi=X */
|
||||
#undef SUBTARGET_ASM_SPEC
|
||||
#define SUBTARGET_ASM_SPEC "%{!mabi*:-n32} %{mabi=32:-32} %{!mips*: %{!mabi*:-mips3} %{mabi=32:-mips2} %{mabi=n32|mabi=64:-mips3}}"
|
||||
|
||||
/* Must pass -g0 to the assembler, otherwise it may overwrite our
|
||||
debug info with its own debug info. */
|
||||
/* Must pass -show instead of -v. */
|
||||
/* Must pass -G 0 to the assembler, otherwise we may get warnings about
|
||||
GOT overflow. */
|
||||
/* Must pass -w to the assembler to quiet warnings about .ent/.end for dwarf2. */
|
||||
#if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GAS) == 0
|
||||
/* We have a separate file for gas. */
|
||||
#undef SUBTARGET_MIPS_AS_ASM_SPEC
|
||||
#define SUBTARGET_MIPS_AS_ASM_SPEC "%{v:-show} -G 0 -w"
|
||||
|
||||
#undef SUBTARGET_ASM_DEBUGGING_SPEC
|
||||
#define SUBTARGET_ASM_DEBUGGING_SPEC "-g0"
|
||||
|
||||
/* The MIPS assembler occasionally misoptimizes. Since GCC should be
|
||||
doing scheduling anyhow, just turn off optimization in the assembler. */
|
||||
#undef SUBTARGET_ASM_OPTIMIZING_SPEC
|
||||
#define SUBTARGET_ASM_OPTIMIZING_SPEC "-O0"
|
||||
#endif
|
||||
|
||||
/* The assembler now accepts .section pseudo-ops, but it does not allow
|
||||
one to change the section in the middle of a function, so we can't use
|
||||
the INIT_SECTION_ASM_OP code in crtstuff. But we can build up the ctor
|
||||
and dtor lists this way, so we use -init and -fini to invoke the
|
||||
do_global_* functions instead of running collect2. */
|
||||
|
||||
#undef BSS_SECTION_ASM_OP
|
||||
#define BSS_SECTION_ASM_OP_32 "\t.data"
|
||||
#define BSS_SECTION_ASM_OP_64 "\t.section\t.bss"
|
||||
#define BSS_SECTION_ASM_OP \
|
||||
(mips_abi != ABI_32 && mips_abi != ABI_O64 \
|
||||
? BSS_SECTION_ASM_OP_64 \
|
||||
: BSS_SECTION_ASM_OP_32)
|
||||
|
||||
#undef READONLY_DATA_SECTION_ASM_OP
|
||||
#define READONLY_DATA_SECTION_ASM_OP_32 "\t.rdata"
|
||||
#define READONLY_DATA_SECTION_ASM_OP_64 "\t.section\t.rodata"
|
||||
#define READONLY_DATA_SECTION_ASM_OP \
|
||||
(mips_abi != ABI_32 && mips_abi != ABI_O64 \
|
||||
? READONLY_DATA_SECTION_ASM_OP_64 \
|
||||
: READONLY_DATA_SECTION_ASM_OP_32)
|
||||
|
||||
/* The default definition in defaults.h cannot cope with the runtime-variable
|
||||
definition of DWARF2_UNWIND_INFO above, so define here explicitly. */
|
||||
#define EH_FRAME_SECTION_NAME ".eh_frame"
|
||||
|
||||
/* MUST_USE_SJLJ_EXCEPTIONS has the same problem. */
|
||||
#define MUST_USE_SJLJ_EXCEPTIONS (DWARF2_UNWIND_INFO == 0)
|
||||
|
||||
/* The native IRIX 6 O32 assembler doesn't support named sections, while
|
||||
the N32/N64 assembler does. We need crt{begin, end}.o for the N32/N64
|
||||
ABIs, but there's no way to disable them for just one multilib.
|
||||
Therefore we provide dummy definitions to allow crtstuff.c to compile,
|
||||
but the resulting files are not used for the O32 ABI. */
|
||||
|
||||
#if (defined _ABIO32 && _MIPS_SIM == _ABIO32) \
|
||||
&& ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GAS) == 0
|
||||
|
||||
/* Provide dummy definitions. */
|
||||
#define CTORS_SECTION_ASM_OP ""
|
||||
#define DTORS_SECTION_ASM_OP ""
|
||||
|
||||
/* Undef so JCR_SECTION_NAME isn't defined and __JCR_{LIST, END}__ are not
|
||||
used. */
|
||||
#undef TARGET_ASM_NAMED_SECTION
|
||||
|
||||
/* Undef so __EH_FRAME_BEGIN__/__FRAME_END__ are not used. */
|
||||
#undef EH_FRAME_SECTION_NAME
|
||||
|
||||
#endif /* _MIPS_SIM == _ABIO32 && !GAS */
|
||||
|
||||
/* SGI assembler needs all sorts of extra help to do alignment properly. */
|
||||
#undef ASM_OUTPUT_ALIGN
|
||||
#define ASM_OUTPUT_ALIGN irix_asm_output_align
|
||||
|
||||
#undef MAX_OFILE_ALIGNMENT
|
||||
#define MAX_OFILE_ALIGNMENT (32768*8)
|
||||
|
||||
/* ??? SGI assembler may core dump when compiling with -g.
|
||||
Sometimes as succeeds, but then we get a linker error. (cmds.c in 072.sc)
|
||||
Getting rid of .file solves both problems. */
|
||||
#undef ASM_OUTPUT_FILENAME
|
||||
#define ASM_OUTPUT_FILENAME(STREAM, NUM_SOURCE_FILENAMES, NAME) \
|
||||
do \
|
||||
{ \
|
||||
if (mips_abi == ABI_32) \
|
||||
fprintf (STREAM, "\t.file\t%d ", NUM_SOURCE_FILENAMES); \
|
||||
else \
|
||||
fprintf (STREAM, "\t#.file\t%d ", NUM_SOURCE_FILENAMES); \
|
||||
output_quoted_string (STREAM, NAME); \
|
||||
fputs ("\n", STREAM); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* ??? SGI assembler gives warning whenever .lcomm is used. */
|
||||
#undef ASM_OUTPUT_ALIGNED_LOCAL
|
||||
#define ASM_OUTPUT_ALIGNED_LOCAL(STREAM, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
if (mips_abi != ABI_32 && mips_abi != ABI_O64) \
|
||||
{ \
|
||||
bss_section (); \
|
||||
mips_declare_object (STREAM, NAME, "", ":\n", 0); \
|
||||
ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \
|
||||
ASM_OUTPUT_SKIP (STREAM, SIZE); \
|
||||
} \
|
||||
else \
|
||||
mips_declare_common_object (STREAM, NAME, "\n\t.lcomm\t", \
|
||||
SIZE, ALIGN, false); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* A C statement (sans semicolon) to output to the stdio stream
|
||||
FILE the assembler definition of uninitialized global DECL named
|
||||
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
|
||||
Try to use asm_output_aligned_bss to implement this macro. */
|
||||
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
|
||||
|
||||
#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
|
||||
|
||||
#undef LOCAL_LABEL_PREFIX
|
||||
#define LOCAL_LABEL_PREFIX ((mips_abi == ABI_32 || mips_abi == ABI_O64) \
|
||||
? "$" : ".")
|
||||
|
||||
/* Profiling is supported via libprof1.a not -lc_p as in IRIX 3. */
|
||||
/* ??? If no mabi=X option give, but a mipsX option is, then should depend
|
||||
on the mipsX option. */
|
||||
#undef IRIX_STARTFILE_SPEC
|
||||
#define IRIX_STARTFILE_SPEC \
|
||||
#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}}} \
|
||||
|
@ -413,17 +68,16 @@ while (0)
|
|||
%{!p:/usr/lib64/mips4/crt1.o}}} \
|
||||
%{!mips4:%{pg:/usr/lib64/mips3/gcrt1.o} \
|
||||
%{!pg:%{p:/usr/lib64/mips3/mcrt1.o /usr/lib64/mips3/libprof1.a} \
|
||||
%{!p:/usr/lib64/mips3/crt1.o}}}} \
|
||||
%{!mabi*: \
|
||||
%{mips4:%{pg:/usr/lib32/mips4/gcrt1.o%s} \
|
||||
%{!pg:%{p:/usr/lib32/mips4/mcrt1.o%s /usr/lib32/mips4/libprof1.a%s} \
|
||||
%{!p:/usr/lib32/mips4/crt1.o%s}}} \
|
||||
%{!mips4:%{pg:/usr/lib32/mips3/gcrt1.o%s} \
|
||||
%{!pg:%{p:/usr/lib32/mips3/mcrt1.o%s /usr/lib32/mips3/libprof1.a%s} \
|
||||
%{!p:/usr/lib32/mips3/crt1.o%s}}}}}"
|
||||
%{!p:/usr/lib64/mips3/crt1.o}}}}} \
|
||||
irix-crti.o%s crtbegin.o%s"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "%(irix_startfile_spec) crtbegin.o%s"
|
||||
#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
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
|
@ -431,51 +85,24 @@ while (0)
|
|||
-L/usr/lib32} \
|
||||
%{mabi=64: %{mips4:-L/usr/lib64/mips4} %{!mips4:-L/usr/lib64/mips3} \
|
||||
-L/usr/lib64} \
|
||||
%{!mabi*: %{mips4:-L/usr/lib32/mips4} %{!mips4:-L/usr/lib32/mips3} \
|
||||
-L/usr/lib32} \
|
||||
%{!shared: \
|
||||
-dont_warn_unused %{p:libprof1.a%s}%{pg:libprof1.a%s} -lc -warn_unused}"
|
||||
%{!shared:" \
|
||||
SUBTARGET_DONT_WARN_UNUSED_SPEC \
|
||||
" %{p:libprof1.a%s}%{pg:libprof1.a%s} -lc " \
|
||||
SUBTARGET_WARN_UNUSED_SPEC "}"
|
||||
|
||||
/* Avoid getting two warnings for libgcc.a everytime we link. */
|
||||
#undef LIBGCC_SPEC
|
||||
#define LIBGCC_SPEC "-dont_warn_unused -lgcc -warn_unused"
|
||||
#define LIBGCC_SPEC \
|
||||
SUBTARGET_DONT_WARN_UNUSED_SPEC " -lgcc " SUBTARGET_WARN_UNUSED_SPEC
|
||||
|
||||
/* ??? If no mabi=X option give, but a mipsX option is, then should depend
|
||||
on the mipsX option. */
|
||||
#undef IRIX_ENDFILE_SPEC
|
||||
#define IRIX_ENDFILE_SPEC \
|
||||
"%{!shared: \
|
||||
#undef ENDFILE_SPEC
|
||||
#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}}\
|
||||
%{!mabi*:%{mips4:/usr/lib32/mips4/crtn.o%s}\
|
||||
%{!mips4:/usr/lib32/mips3/crtn.o%s}}}"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtend.o%s %(irix_endfile_spec)"
|
||||
|
||||
/* ??? If no mabi=X option give, but a mipsX option is, then should depend
|
||||
on the mipsX option. */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} %{w} \
|
||||
%{!shared: %{!non_shared: %{!call_shared:%{!r: -call_shared -no_unresolved}}}} \
|
||||
%{rpath} %{!mabi=32: -init __do_global_ctors -fini __do_global_dtors} \
|
||||
%{shared:-hidden_symbol __do_global_ctors,__do_global_ctors_1,__do_global_dtors} \
|
||||
-_SYSTYPE_SVR4 -woff 131 \
|
||||
%{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
|
||||
|
||||
/* We need to disable collecting for the N32 and N64 ABIs. */
|
||||
#define COLLECT_PARSE_FLAG(FLAG) \
|
||||
do { \
|
||||
if (! strcmp (FLAG, "-n32") || ! strcmp (FLAG, "-64")) \
|
||||
do_collecting = 0; \
|
||||
if (! strcmp (FLAG, "-32") || ! strcmp (FLAG, "-o32")) \
|
||||
do_collecting = 1; \
|
||||
} while (0)
|
||||
%{!mips4:/usr/lib64/mips3/crtn.o%s}}}"
|
||||
|
||||
#define MIPS_TFMODE_FORMAT mips_extended_format
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
/* Definitions for MIPS running IRIX 6 using GNU AS
|
||||
Copyright (C) 2003, 2004
|
||||
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 2, 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 COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Definitions of target machine for GNU compiler. IRIX 6 with GNU as. */
|
||||
|
||||
/* Override iris6.h version to always use -init/-fini.
|
||||
|
||||
FIXME: integrate those use separate spec/define for this? */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} %{w} \
|
||||
%{!shared: %{!non_shared: %{!call_shared:%{!r: -call_shared -no_unresolved}}}} \
|
||||
%{rpath} -init __do_global_ctors -fini __do_global_dtors \
|
||||
%{shared:-hidden_symbol __do_global_ctors,__do_global_ctors_1,__do_global_dtors} \
|
||||
-_SYSTYPE_SVR4 -woff 131 \
|
||||
%{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
|
||||
|
||||
/* Disable SHF_MERGE support. Even if gas supports it, the IRIX 6 O32 ld
|
||||
does not without a special elspec(5) file.
|
||||
|
||||
FIXME: Only do this if not using GNU ld. */
|
||||
#if HAVE_GAS_SHF_MERGE
|
||||
#undef HAVE_GAS_SHF_MERGE
|
||||
#define HAVE_GAS_SHF_MERGE (mips_abi != ABI_32)
|
||||
#endif /* HAVE_GAS_SHF_MERGE */
|
||||
|
||||
/* There's no need to perform collecting with GNU as. */
|
||||
#undef COLLECT_PARSE_FLAG
|
|
@ -1,60 +0,0 @@
|
|||
/* Definitions of target machine for GNU compiler. Iris version 6 with
|
||||
GNU ld.
|
||||
Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||
Written by Mark Mitchell <mark@codesourcery.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 2, 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 COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
"%{mabi=n32: %{mips4:-L/usr/lib32/mips4} %{!mips4:-L/usr/lib32/mips3} \
|
||||
-L/usr/lib32} \
|
||||
%{mabi=64: %{mips4:-L/usr/lib64/mips4} %{!mips4:-L/usr/lib64/mips3} \
|
||||
-L/usr/lib64} \
|
||||
%{!mabi*: %{mips4:-L/usr/lib32/mips4} %{!mips4:-L/usr/lib32/mips3} \
|
||||
-L/usr/lib32} \
|
||||
%{!shared: \
|
||||
%{p:libprof1.a%s}%{pg:libprof1.a%s} -lc}"
|
||||
|
||||
/* Use the default libgcc spec. */
|
||||
#undef LIBGCC_SPEC
|
||||
|
||||
/* ??? If no mabi=X option give, but a mipsX option is, then should depend
|
||||
on the mipsX option. */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
%{bestGnum} %{shared} %{non_shared} \
|
||||
%{call_shared} %{no_archive} %{exact_version} \
|
||||
%{static: -non_shared} \
|
||||
%{!static: \
|
||||
%{!shared: %{!non_shared: %{!call_shared: -call_shared}}}} \
|
||||
%{rpath} -init __gcc_init -fini __gcc_fini \
|
||||
%{mabi=32: -melf32bsmip}%{mabi=n32: -melf32bmipn32}%{mabi=64: -melf64bmip}%{!mabi*: -melf32bmipn32}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "%(irix_startfile_spec) irix-crti.o%s crtbegin.o%s"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtend.o%s irix-crtn.o%s %(irix_endfile_spec)"
|
||||
|
||||
/* The GNU linker supports one-only sections. */
|
||||
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
|
||||
|
||||
#define INIT_SECTION_ASM_OP "\t.section\t.init,0x1,0x6,4,4"
|
||||
#define FINI_SECTION_ASM_OP "\t.section\t.fini,0x1,0x6,4,4"
|
|
@ -2,10 +2,31 @@
|
|||
.set noreorder
|
||||
.set nomacro
|
||||
|
||||
.section .init,0x1,0x6,4,4
|
||||
jr $31
|
||||
nop
|
||||
/* The GNU and SGI linkers differ in their implementation of -init and -fini.
|
||||
With the GNU linker, there can only be a single -init option, and the
|
||||
linker simply sets DT_INIT to that value. gcc's initialization and
|
||||
finalization code can go directly in .init, with the prologue and
|
||||
epilogue of the main initialization routine being provided by external
|
||||
object files (*crti.o and *crtn.o in this case).
|
||||
|
||||
The SGI linker instead accepts several -init options. It will set DT_INIT
|
||||
to a linker-created function (placed in .init) that calls each of the -init
|
||||
functions in turn. If there is any user code in .init, this linker-created
|
||||
function will be placed after it. Note that such user code is not treated
|
||||
specially; it will only be called if the -init options arrange for it to
|
||||
be called.
|
||||
|
||||
In theory, the SGI model should allow the crti, crtn and intermediate code
|
||||
to go in .init, just like it can with the GNU linker. However, doing this
|
||||
seems to confuse the linker and triggers an internal error:
|
||||
|
||||
ld32: FATAL 2 : Internal: at ../../ld/mips_code.c mips_code_fixup()
|
||||
text section overflow!
|
||||
|
||||
(seen with MIPSpro 7.30). We therefore put everything in a special
|
||||
.gcc_init section instead. */
|
||||
|
||||
.section .gcc_init,"ax",@progbits
|
||||
.globl __gcc_init
|
||||
__gcc_init:
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
|
@ -17,10 +38,7 @@ __gcc_init:
|
|||
sd $28,8($sp)
|
||||
#endif
|
||||
|
||||
.section .fini,0x1,0x6,4,4
|
||||
jr $31
|
||||
nop
|
||||
|
||||
.section .gcc_fini,"ax",@progbits
|
||||
.globl __gcc_fini
|
||||
__gcc_fini:
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.set noreorder
|
||||
.set nomacro
|
||||
|
||||
.section .init,0x1,0x6,4,4
|
||||
.section .gcc_init,"ax",@progbits
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
lw $31,0($sp)
|
||||
jr $31
|
||||
|
@ -14,7 +14,7 @@
|
|||
daddiu $sp,$sp,16
|
||||
#endif
|
||||
|
||||
.section .fini,0x1,0x6,4,4
|
||||
.section .gcc_fini,"ax",@progbits
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
lw $31,0($sp)
|
||||
jr $31
|
||||
|
|
|
@ -157,9 +157,6 @@ extern HOST_WIDE_INT mips_debugger_offset (rtx, HOST_WIDE_INT);
|
|||
extern void print_operand (FILE *, rtx, int);
|
||||
extern void print_operand_address (FILE *, rtx);
|
||||
extern int mips_output_external (FILE *, tree, const char *);
|
||||
#if TARGET_IRIX
|
||||
extern void irix_output_external_libcall (rtx);
|
||||
#endif
|
||||
extern void mips_output_filename (FILE *, const char *);
|
||||
extern void mips_output_lineno (FILE *, int);
|
||||
extern void mips_output_ascii (FILE *, const char *, size_t, const char *);
|
||||
|
|
|
@ -181,6 +181,9 @@ static void mips_set_tune (const struct mips_cpu_info *);
|
|||
static struct machine_function *mips_init_machine_status (void);
|
||||
static void print_operand_reloc (FILE *, rtx, const char **);
|
||||
static bool mips_assemble_integer (rtx, unsigned int, int);
|
||||
#if TARGET_IRIX
|
||||
static void irix_output_external_libcall (rtx);
|
||||
#endif
|
||||
static void mips_file_start (void);
|
||||
static void mips_file_end (void);
|
||||
static bool mips_rewrite_small_data_p (rtx);
|
||||
|
@ -265,19 +268,6 @@ static tree mips_gimplify_va_arg_expr (tree, tree, tree *, tree *);
|
|||
static bool mips_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode mode,
|
||||
tree, bool);
|
||||
|
||||
#if TARGET_IRIX
|
||||
static void irix_asm_named_section_1 (const char *, unsigned int,
|
||||
unsigned int);
|
||||
static void irix_asm_named_section (const char *, unsigned int);
|
||||
static int irix_section_align_entry_eq (const void *, const void *);
|
||||
static hashval_t irix_section_align_entry_hash (const void *);
|
||||
static void irix_file_start (void);
|
||||
static int irix_section_align_1 (void **, void *);
|
||||
static void copy_file_data (FILE *, FILE *);
|
||||
static void irix_file_end (void);
|
||||
static unsigned int irix_section_type_flags (tree, const char *, int);
|
||||
#endif
|
||||
|
||||
/* Structure to be filled in by compute_frame_size with register
|
||||
save masks, and offsets for the current function. */
|
||||
|
||||
|
@ -663,21 +653,11 @@ const struct mips_cpu_info mips_cpu_info_table[] = {
|
|||
|
||||
#undef TARGET_ASM_FILE_START
|
||||
#undef TARGET_ASM_FILE_END
|
||||
#if TARGET_IRIX
|
||||
#define TARGET_ASM_FILE_START irix_file_start
|
||||
#define TARGET_ASM_FILE_END irix_file_end
|
||||
#else
|
||||
#define TARGET_ASM_FILE_START mips_file_start
|
||||
#define TARGET_ASM_FILE_END mips_file_end
|
||||
#endif
|
||||
#undef TARGET_ASM_FILE_START_FILE_DIRECTIVE
|
||||
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
|
||||
|
||||
#if TARGET_IRIX
|
||||
#undef TARGET_SECTION_TYPE_FLAGS
|
||||
#define TARGET_SECTION_TYPE_FLAGS irix_section_type_flags
|
||||
#endif
|
||||
|
||||
#undef TARGET_INIT_LIBFUNCS
|
||||
#define TARGET_INIT_LIBFUNCS mips_init_libfuncs
|
||||
|
||||
|
@ -3432,7 +3412,7 @@ mips_build_builtin_va_list (void)
|
|||
layout_type (record);
|
||||
return record;
|
||||
}
|
||||
else if (TARGET_IRIX && !TARGET_IRIX5)
|
||||
else if (TARGET_IRIX && TARGET_IRIX6)
|
||||
/* On IRIX 6, this type is 'char *'. */
|
||||
return build_pointer_type (char_type_node);
|
||||
else
|
||||
|
@ -4037,58 +4017,6 @@ override_options (void)
|
|||
if (!TARGET_OLDABI)
|
||||
flag_pcc_struct_return = 0;
|
||||
|
||||
#if defined(USE_COLLECT2)
|
||||
/* For IRIX 5 or IRIX 6 with integrated O32 ABI support, USE_COLLECT2 is
|
||||
always defined when GNU as is not in use, but collect2 is only used
|
||||
for the O32 ABI, so override the toplev.c and target-def.h defaults
|
||||
for flag_gnu_linker, TARGET_ASM_{CONSTRUCTOR, DESTRUCTOR} and
|
||||
TARGET_HAVE_CTORS_DTORS.
|
||||
|
||||
Since the IRIX 5 and IRIX 6 O32 assemblers cannot handle named
|
||||
sections, constructor/destructor handling depends on the ABI in use.
|
||||
|
||||
Since USE_COLLECT2 is defined, we only need to restore the non-collect2
|
||||
defaults for the N32/N64 ABIs. */
|
||||
if (TARGET_IRIX && !TARGET_SGI_O32_AS)
|
||||
{
|
||||
targetm.have_ctors_dtors = true;
|
||||
targetm.asm_out.constructor = default_named_section_asm_out_constructor;
|
||||
targetm.asm_out.destructor = default_named_section_asm_out_destructor;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Handle some quirks of the IRIX 5 and IRIX 6 O32 assemblers. */
|
||||
|
||||
if (TARGET_SGI_O32_AS)
|
||||
{
|
||||
/* They don't recognize `.[248]byte'. */
|
||||
targetm.asm_out.unaligned_op.hi = "\t.align 0\n\t.half\t";
|
||||
targetm.asm_out.unaligned_op.si = "\t.align 0\n\t.word\t";
|
||||
/* The IRIX 6 O32 assembler gives an error for `align 0; .dword',
|
||||
contrary to the documentation, so disable it. */
|
||||
targetm.asm_out.unaligned_op.di = NULL;
|
||||
|
||||
/* They cannot handle named sections. */
|
||||
targetm.have_named_sections = false;
|
||||
/* Therefore, EH_FRAME_SECTION_NAME isn't defined and we must use
|
||||
collect2. */
|
||||
targetm.terminate_dw2_eh_frame_info = true;
|
||||
targetm.asm_out.eh_frame_section = collect2_eh_frame_section;
|
||||
|
||||
/* They cannot handle debug information. */
|
||||
if (write_symbols != NO_DEBUG)
|
||||
{
|
||||
/* Adapt wording to IRIX version: IRIX 5 only had a single ABI,
|
||||
so -mabi=32 isn't usually specified. */
|
||||
if (TARGET_IRIX5)
|
||||
inform ("-g is only supported using GNU as,");
|
||||
else
|
||||
inform ("-g is only supported using GNU as with -mabi=32,");
|
||||
inform ("-g option disabled");
|
||||
write_symbols = NO_DEBUG;
|
||||
}
|
||||
}
|
||||
|
||||
if ((target_flags_explicit & MASK_BRANCHLIKELY) == 0)
|
||||
{
|
||||
/* If neither -mbranch-likely nor -mno-branch-likely was given
|
||||
|
@ -4996,7 +4924,7 @@ mips_output_external (FILE *file ATTRIBUTE_UNUSED, tree decl, const char *name)
|
|||
}
|
||||
|
||||
#if TARGET_IRIX
|
||||
void
|
||||
static void
|
||||
irix_output_external_libcall (rtx fun)
|
||||
{
|
||||
register struct extern_list *p;
|
||||
|
@ -5027,7 +4955,7 @@ mips_output_filename (FILE *stream, const char *name)
|
|||
else if (mips_output_filename_first_time)
|
||||
{
|
||||
mips_output_filename_first_time = 0;
|
||||
SET_FILE_NUMBER ();
|
||||
num_source_filenames += 1;
|
||||
current_function_file = name;
|
||||
ASM_OUTPUT_FILENAME (stream, num_source_filenames, name);
|
||||
/* This tells mips-tfile that stabs will follow. */
|
||||
|
@ -5046,7 +4974,7 @@ mips_output_filename (FILE *stream, const char *name)
|
|||
else if (name != current_function_file
|
||||
&& strcmp (name, current_function_file) != 0)
|
||||
{
|
||||
SET_FILE_NUMBER ();
|
||||
num_source_filenames += 1;
|
||||
current_function_file = name;
|
||||
ASM_OUTPUT_FILENAME (stream, num_source_filenames, name);
|
||||
}
|
||||
|
@ -5070,7 +4998,6 @@ mips_output_lineno (FILE *stream, int line)
|
|||
else
|
||||
{
|
||||
fprintf (stream, "\n\t.loc\t%d %d\n", num_source_filenames, line);
|
||||
LABEL_AFTER_LOC (stream);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5168,9 +5095,8 @@ mips_file_start (void)
|
|||
if (TARGET_MIPS_AS && optimize && flag_delayed_branch)
|
||||
fprintf (asm_out_file, "\t.set\tnobopt\n");
|
||||
|
||||
if (TARGET_GAS)
|
||||
if (TARGET_GAS && !TARGET_IRIX)
|
||||
{
|
||||
#if defined(OBJECT_FORMAT_ELF) && !TARGET_IRIX
|
||||
/* Generate a special section to describe the ABI switches used to
|
||||
produce the resultant binary. This used to be done by the assembler
|
||||
setting bits in the ELF header's flags field, but we have run out of
|
||||
|
@ -5205,16 +5131,12 @@ mips_file_start (void)
|
|||
|
||||
/* Restore the default section. */
|
||||
fprintf (asm_out_file, "\t.previous\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Generate the pseudo ops that System V.4 wants. */
|
||||
#ifndef ABICALLS_ASM_OP
|
||||
#define ABICALLS_ASM_OP "\t.abicalls"
|
||||
#endif
|
||||
if (TARGET_ABICALLS)
|
||||
/* ??? but do not want this (or want pic0) if -non-shared? */
|
||||
fprintf (asm_out_file, "%s\n", ABICALLS_ASM_OP);
|
||||
fprintf (asm_out_file, "\t.abicalls\n");
|
||||
|
||||
if (TARGET_MIPS16)
|
||||
fprintf (asm_out_file, "\t.set\tmips16\n");
|
||||
|
@ -5317,7 +5239,7 @@ mips_output_aligned_decl_common (FILE *stream, tree decl, const char *name,
|
|||
else
|
||||
/* The SGI o32 assembler doesn't accept an alignment. */
|
||||
mips_declare_common_object (stream, name, "\n\t.comm\t",
|
||||
size, align, !TARGET_SGI_O32_AS);
|
||||
size, align, true);
|
||||
}
|
||||
|
||||
/* Declare a common object of SIZE bytes using asm directive INIT_STRING.
|
||||
|
@ -5380,21 +5302,18 @@ void
|
|||
mips_declare_object_name (FILE *stream, const char *name,
|
||||
tree decl ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (!TARGET_SGI_O32_AS)
|
||||
{
|
||||
#ifdef ASM_OUTPUT_TYPE_DIRECTIVE
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "object");
|
||||
ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "object");
|
||||
#endif
|
||||
|
||||
size_directive_output = 0;
|
||||
if (!flag_inhibit_size_directive && DECL_SIZE (decl))
|
||||
{
|
||||
HOST_WIDE_INT size;
|
||||
size_directive_output = 0;
|
||||
if (!flag_inhibit_size_directive && DECL_SIZE (decl))
|
||||
{
|
||||
HOST_WIDE_INT size;
|
||||
|
||||
size_directive_output = 1;
|
||||
size = int_size_in_bytes (TREE_TYPE (decl));
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (stream, name, size);
|
||||
}
|
||||
size_directive_output = 1;
|
||||
size = int_size_in_bytes (TREE_TYPE (decl));
|
||||
ASM_OUTPUT_SIZE_DIRECTIVE (stream, name, size);
|
||||
}
|
||||
|
||||
mips_declare_object (stream, name, "", ":\n", 0);
|
||||
|
@ -5408,8 +5327,7 @@ mips_finish_declare_object (FILE *stream, tree decl, int top_level, int at_end)
|
|||
const char *name;
|
||||
|
||||
name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
|
||||
if (!TARGET_SGI_O32_AS
|
||||
&& !flag_inhibit_size_directive
|
||||
if (!flag_inhibit_size_directive
|
||||
&& DECL_SIZE (decl) != 0
|
||||
&& !at_end && top_level
|
||||
&& DECL_INITIAL (decl) == error_mark_node
|
||||
|
@ -5981,6 +5899,10 @@ mips_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
|
|||
fputs (":\n", file);
|
||||
}
|
||||
|
||||
/* 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;
|
||||
|
||||
if (!flag_inhibit_size_directive)
|
||||
{
|
||||
/* .frame FRAMEREG, FRAMESIZE, RETREG */
|
||||
|
@ -9265,204 +9187,4 @@ mips_emit_prefetch (rtx *operands)
|
|||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if TARGET_IRIX
|
||||
/* Output assembly to switch to section NAME with attribute FLAGS. */
|
||||
|
||||
static void
|
||||
irix_asm_named_section_1 (const char *name, unsigned int flags,
|
||||
unsigned int align)
|
||||
{
|
||||
unsigned int sh_type, sh_flags, sh_entsize;
|
||||
|
||||
sh_flags = 0;
|
||||
if (!(flags & SECTION_DEBUG))
|
||||
sh_flags |= 2; /* SHF_ALLOC */
|
||||
if (flags & SECTION_WRITE)
|
||||
sh_flags |= 1; /* SHF_WRITE */
|
||||
if (flags & SECTION_CODE)
|
||||
sh_flags |= 4; /* SHF_EXECINSTR */
|
||||
if (flags & SECTION_SMALL)
|
||||
sh_flags |= 0x10000000; /* SHF_MIPS_GPREL */
|
||||
if (strcmp (name, ".debug_frame") == 0)
|
||||
sh_flags |= 0x08000000; /* SHF_MIPS_NOSTRIP */
|
||||
if (flags & SECTION_DEBUG)
|
||||
sh_type = 0x7000001e; /* SHT_MIPS_DWARF */
|
||||
else if (flags & SECTION_BSS)
|
||||
sh_type = 8; /* SHT_NOBITS */
|
||||
else
|
||||
sh_type = 1; /* SHT_PROGBITS */
|
||||
|
||||
if (flags & SECTION_CODE)
|
||||
sh_entsize = 4;
|
||||
else
|
||||
sh_entsize = 0;
|
||||
|
||||
fprintf (asm_out_file, "\t.section %s,%#x,%#x,%u,%u\n",
|
||||
name, sh_type, sh_flags, sh_entsize, align);
|
||||
}
|
||||
|
||||
static void
|
||||
irix_asm_named_section (const char *name, unsigned int flags)
|
||||
{
|
||||
if (TARGET_SGI_O32_AS)
|
||||
default_no_named_section (name, flags);
|
||||
else if (mips_abi == ABI_32 && TARGET_GAS)
|
||||
default_elf_asm_named_section (name, flags);
|
||||
else
|
||||
irix_asm_named_section_1 (name, flags, 0);
|
||||
}
|
||||
|
||||
/* In addition to emitting a .align directive, record the maximum
|
||||
alignment requested for the current section. */
|
||||
|
||||
struct irix_section_align_entry GTY (())
|
||||
{
|
||||
const char *name;
|
||||
unsigned int log;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
static htab_t irix_section_align_htab;
|
||||
static FILE *irix_orig_asm_out_file;
|
||||
|
||||
static int
|
||||
irix_section_align_entry_eq (const void *p1, const void *p2)
|
||||
{
|
||||
const struct irix_section_align_entry *old = p1;
|
||||
const char *new = p2;
|
||||
|
||||
return strcmp (old->name, new) == 0;
|
||||
}
|
||||
|
||||
static hashval_t
|
||||
irix_section_align_entry_hash (const void *p)
|
||||
{
|
||||
const struct irix_section_align_entry *old = p;
|
||||
return htab_hash_string (old->name);
|
||||
}
|
||||
|
||||
void
|
||||
irix_asm_output_align (FILE *file, unsigned int log)
|
||||
{
|
||||
const char *section = current_section_name ();
|
||||
struct irix_section_align_entry **slot, *entry;
|
||||
|
||||
if (mips_abi != ABI_32)
|
||||
{
|
||||
if (! section)
|
||||
abort ();
|
||||
|
||||
slot = (struct irix_section_align_entry **)
|
||||
htab_find_slot_with_hash (irix_section_align_htab, section,
|
||||
htab_hash_string (section), INSERT);
|
||||
entry = *slot;
|
||||
if (! entry)
|
||||
{
|
||||
entry = (struct irix_section_align_entry *)
|
||||
xmalloc (sizeof (struct irix_section_align_entry));
|
||||
*slot = entry;
|
||||
entry->name = section;
|
||||
entry->log = log;
|
||||
entry->flags = current_section_flags ();
|
||||
}
|
||||
else if (entry->log < log)
|
||||
entry->log = log;
|
||||
}
|
||||
|
||||
fprintf (file, "\t.align\t%u\n", log);
|
||||
}
|
||||
|
||||
/* The IRIX assembler does not record alignment from .align directives,
|
||||
but takes it from the first .section directive seen. Play file
|
||||
switching games so that we can emit a .section directive at the
|
||||
beginning of the file with the proper alignment attached. */
|
||||
|
||||
static void
|
||||
irix_file_start (void)
|
||||
{
|
||||
mips_file_start ();
|
||||
|
||||
if (mips_abi == ABI_32)
|
||||
return;
|
||||
|
||||
irix_orig_asm_out_file = asm_out_file;
|
||||
asm_out_file = tmpfile ();
|
||||
|
||||
irix_section_align_htab = htab_create (31, irix_section_align_entry_hash,
|
||||
irix_section_align_entry_eq, NULL);
|
||||
}
|
||||
|
||||
static int
|
||||
irix_section_align_1 (void **slot, void *data ATTRIBUTE_UNUSED)
|
||||
{
|
||||
const struct irix_section_align_entry *entry
|
||||
= *(const struct irix_section_align_entry **) slot;
|
||||
|
||||
irix_asm_named_section_1 (entry->name, entry->flags, 1 << entry->log);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
copy_file_data (FILE *to, FILE *from)
|
||||
{
|
||||
char buffer[8192];
|
||||
size_t len;
|
||||
rewind (from);
|
||||
if (ferror (from))
|
||||
fatal_error ("can't rewind temp file: %m");
|
||||
|
||||
while ((len = fread (buffer, 1, sizeof (buffer), from)) > 0)
|
||||
if (fwrite (buffer, 1, len, to) != len)
|
||||
fatal_error ("can't write to output file: %m");
|
||||
|
||||
if (ferror (from))
|
||||
fatal_error ("can't read from temp file: %m");
|
||||
|
||||
if (fclose (from))
|
||||
fatal_error ("can't close temp file: %m");
|
||||
}
|
||||
|
||||
static void
|
||||
irix_file_end (void)
|
||||
{
|
||||
if (mips_abi != ABI_32)
|
||||
{
|
||||
/* Emit section directives with the proper alignment at the top of the
|
||||
real output file. */
|
||||
FILE *temp = asm_out_file;
|
||||
asm_out_file = irix_orig_asm_out_file;
|
||||
htab_traverse (irix_section_align_htab, irix_section_align_1, NULL);
|
||||
|
||||
/* Copy the data emitted to the temp file to the real output file. */
|
||||
copy_file_data (asm_out_file, temp);
|
||||
}
|
||||
|
||||
mips_file_end ();
|
||||
}
|
||||
|
||||
|
||||
/* Implement TARGET_SECTION_TYPE_FLAGS. Make sure that .sdata and
|
||||
.sbss sections get the SECTION_SMALL flag: this isn't set by the
|
||||
default code. */
|
||||
|
||||
static unsigned int
|
||||
irix_section_type_flags (tree decl, const char *section, int relocs_p)
|
||||
{
|
||||
unsigned int flags;
|
||||
|
||||
flags = default_section_type_flags (decl, section, relocs_p);
|
||||
|
||||
if (strcmp (section, ".sdata") == 0
|
||||
|| strcmp (section, ".sbss") == 0
|
||||
|| strncmp (section, ".gnu.linkonce.s.", 16) == 0
|
||||
|| strncmp (section, ".gnu.linkonce.sb.", 17) == 0)
|
||||
flags |= SECTION_SMALL;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
#endif /* TARGET_IRIX */
|
||||
|
||||
#include "gt-mips.h"
|
||||
|
|
|
@ -365,8 +365,7 @@ extern const struct mips_cpu_info *mips_tune_info;
|
|||
|
||||
/* IRIX specific stuff. */
|
||||
#define TARGET_IRIX 0
|
||||
#define TARGET_IRIX5 0
|
||||
#define TARGET_SGI_O32_AS (TARGET_IRIX && mips_abi == ABI_32 && !TARGET_GAS)
|
||||
#define TARGET_IRIX6 0
|
||||
|
||||
/* Define preprocessor macros for the -march and -mtune options.
|
||||
PREFIX is either _MIPS_ARCH or _MIPS_TUNE, INFO is the selected
|
||||
|
@ -1060,12 +1059,6 @@ extern const struct mips_cpu_info *mips_tune_info;
|
|||
#define ASM_ABI_DEFAULT_SPEC "-mabi=eabi"
|
||||
#endif
|
||||
|
||||
/* Only ELF targets can switch the ABI. */
|
||||
#ifndef OBJECT_FORMAT_ELF
|
||||
#undef ASM_ABI_DEFAULT_SPEC
|
||||
#define ASM_ABI_DEFAULT_SPEC ""
|
||||
#endif
|
||||
|
||||
/* TARGET_ASM_SPEC is used to select either MIPS_AS_ASM_SPEC or
|
||||
GAS_ASM_SPEC as the default, depending upon the value of
|
||||
TARGET_DEFAULT. */
|
||||
|
@ -1210,18 +1203,6 @@ extern const struct mips_cpu_info *mips_tune_info;
|
|||
#ifndef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS
|
||||
#endif
|
||||
|
||||
/* If defined, this macro is an additional prefix to try after
|
||||
`STANDARD_EXEC_PREFIX'. */
|
||||
|
||||
#ifndef MD_EXEC_PREFIX
|
||||
#define MD_EXEC_PREFIX "/usr/lib/cmplrs/cc/"
|
||||
#endif
|
||||
|
||||
#ifndef MD_STARTFILE_PREFIX
|
||||
#define MD_STARTFILE_PREFIX "/usr/lib/cmplrs/cc/"
|
||||
#endif
|
||||
|
||||
|
||||
#define DBX_DEBUGGING_INFO 1 /* generate stabs (OSF/rose) */
|
||||
#define MIPS_DEBUGGING_INFO 1 /* MIPS specific debugging info */
|
||||
|
@ -2858,11 +2839,6 @@ while (0)
|
|||
|
||||
|
||||
/* How to tell the debugger about changes of source files. */
|
||||
|
||||
#ifndef SET_FILE_NUMBER
|
||||
#define SET_FILE_NUMBER() ++num_source_filenames
|
||||
#endif
|
||||
|
||||
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
|
||||
mips_output_filename (STREAM, NAME)
|
||||
|
||||
|
@ -2876,14 +2852,6 @@ do \
|
|||
} \
|
||||
while (0)
|
||||
|
||||
/* This is how to output a note the debugger telling it the line number
|
||||
to which the following sequence of instructions corresponds.
|
||||
Silicon graphics puts a label after each .loc. */
|
||||
|
||||
#ifndef LABEL_AFTER_LOC
|
||||
#define LABEL_AFTER_LOC(STREAM)
|
||||
#endif
|
||||
|
||||
#ifndef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
mips_output_lineno (STREAM, LINE)
|
||||
|
|
|
@ -87,3 +87,18 @@ do { \
|
|||
} while (0)
|
||||
|
||||
#define PUT_SDB_EPILOGUE_END(NAME)
|
||||
|
||||
/* We need to use .esize and .etype instead of .size and .type to
|
||||
avoid conflicting with ELF directives. */
|
||||
#undef PUT_SDB_SIZE
|
||||
#define PUT_SDB_SIZE(a) \
|
||||
do { \
|
||||
fprintf (asm_out_file, "\t.esize\t" HOST_WIDE_INT_PRINT_DEC ";", \
|
||||
(HOST_WIDE_INT) (a)); \
|
||||
} while (0)
|
||||
|
||||
#undef PUT_SDB_TYPE
|
||||
#define PUT_SDB_TYPE(a) \
|
||||
do { \
|
||||
fprintf (asm_out_file, "\t.etype\t0x%x;", (a)); \
|
||||
} while (0)
|
||||
|
|
|
@ -1,2 +1,12 @@
|
|||
# Find all of the declarations from the header files
|
||||
FIXPROTO_DEFINES= -D__EXTENSIONS__ -D_SGI_SOURCE -D_LANGUAGE_C_PLUS_PLUS
|
||||
FIXPROTO_DEFINES = -D__EXTENSIONS__ -D_SGI_SOURCE -D_LANGUAGE_C_PLUS_PLUS
|
||||
|
||||
$(T)irix-crti.o: $(srcdir)/config/mips/irix-crti.asm $(GCC_PASSES)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
|
||||
-c -o $@ -x assembler-with-cpp $<
|
||||
|
||||
$(T)irix-crtn.o: $(srcdir)/config/mips/irix-crtn.asm $(GCC_PASSES)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
|
||||
-c -o $@ -x assembler-with-cpp $<
|
||||
|
||||
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o irix-crti.o irix-crtn.o
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
# Build a shared libgcc library.
|
||||
SHLIB_EXT = .so
|
||||
SHLIB_SOLINK = @shlib_base_name@.so
|
||||
SHLIB_SONAME = @shlib_so_name@.so.1
|
||||
SHLIB_NAME = @shlib_dir@@shlib_so_name@.so.1
|
||||
SHLIB_MAP = @shlib_map_file@
|
||||
SHLIB_OBJS = @shlib_objs@
|
||||
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
|
||||
|
||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||
-Wl,-soname,$(SHLIB_SONAME) \
|
||||
-o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) -lc && \
|
||||
rm -f $(SHLIB_SOLINK) && \
|
||||
$(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
|
||||
# ??? Irix 6.5 seems to eat the option fine (if we somehow remove the
|
||||
# -hidden_symbol option, which is documented to be ignored in conjunction
|
||||
# with -exports_file), but fails to actually hide any symbols.
|
||||
# -Wl,-exports_file,$(SHLIB_MAP)
|
||||
|
||||
# $(slibdir) double quoted to protect it from expansion while building
|
||||
# libgcc.mk. We want this delayed until actual install time.
|
||||
SHLIB_INSTALL = \
|
||||
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
|
||||
$(INSTALL_DATA) $(SHLIB_NAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
|
||||
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
|
||||
$(LN_S) $(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
|
@ -1,11 +0,0 @@
|
|||
# omit -g, gcc doesn't support the o32 mdebug debugging format and warns about
|
||||
# every invocation with -g*
|
||||
# add -save-temps to avoid comparison failure due to embedded temp file names
|
||||
BOOT_CFLAGS = -O2 -save-temps
|
||||
|
||||
# omit -g1
|
||||
LIBGCC2_DEBUG_CFLAGS =
|
||||
|
||||
# omit -g
|
||||
FORCE_DEBUG_ADAFLAGS =
|
||||
GNATLIBCFLAGS = -O2
|
|
@ -1,5 +0,0 @@
|
|||
# For svr4 we build crtbegin.o and crtend.o which serve to add begin and
|
||||
# end labels to the .ctors and .dtors section when we link using gcc.
|
||||
|
||||
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
|
||||
CRTSTUFF_T_CFLAGS=-g1
|
|
@ -1,5 +1,3 @@
|
|||
# ??? If no mabi=X option given, but a mipsX option is, then should deal
|
||||
# with that.
|
||||
MULTILIB_OPTIONS=mabi=n32/mabi=32/mabi=64
|
||||
MULTILIB_DIRNAMES=
|
||||
MULTILIB_MATCHES=
|
||||
|
@ -8,12 +6,6 @@ MULTILIB_OSDIRNAMES=. mabi=32 mabi=64
|
|||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
||||
|
||||
# For svr4 we build crtbegin.o and crtend.o which serve to add begin and
|
||||
# end labels to the .ctors and .dtors section when we link using gcc.
|
||||
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
|
||||
|
||||
CRTSTUFF_T_CFLAGS=-g1
|
||||
|
||||
LIB2FUNCS_EXTRA = $(srcdir)/config/mips/_tilib.c
|
||||
|
||||
TPBIT = tp-bit.c
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
$(T)irix-crti.o: $(srcdir)/config/mips/irix-crti.asm $(GCC_PASSES)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
|
||||
-c -o $@ -x assembler-with-cpp $<
|
||||
|
||||
$(T)irix-crtn.o: $(srcdir)/config/mips/irix-crtn.asm $(GCC_PASSES)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
|
||||
-c -o $@ -x assembler-with-cpp $<
|
||||
|
||||
EXTRA_MULTILIB_PARTS += irix-crti.o irix-crtn.o
|
|
@ -0,0 +1,28 @@
|
|||
# Build a shared libgcc library.
|
||||
|
||||
SHLIB_EXT = .so
|
||||
SHLIB_SOLINK = @shlib_base_name@.so
|
||||
SHLIB_SOVERSION = 1
|
||||
SHLIB_SONAME = @shlib_so_name@.so.$(SHLIB_SOVERSION)
|
||||
SHLIB_NAME = @shlib_dir@@shlib_so_name@.so.$(SHLIB_SOVERSION)
|
||||
SHLIB_MAP = @shlib_map_file@
|
||||
SHLIB_OBJS = @shlib_objs@
|
||||
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
|
||||
SHLIB_LC = -lc
|
||||
|
||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||
-Wl,-soname,$(SHLIB_SONAME) \
|
||||
-o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
|
||||
rm -f $(SHLIB_SOLINK) && \
|
||||
$(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
|
||||
# $(slibdir) double quoted to protect it from expansion while building
|
||||
# libgcc.mk. We want this delayed until actual install time.
|
||||
SHLIB_INSTALL = \
|
||||
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
|
||||
$(INSTALL_DATA) $(SHLIB_NAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
|
||||
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
|
||||
$(LN_S) $(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
|
@ -1030,7 +1030,7 @@ esac
|
|||
else
|
||||
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
|
||||
fi
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
|
||||
|
@ -2379,7 +2379,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -2437,7 +2438,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -2553,7 +2555,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -2607,7 +2610,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -2652,7 +2656,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -2696,7 +2701,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3102,7 +3108,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3173,7 +3180,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3232,7 +3240,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3298,7 +3307,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3368,7 +3378,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3438,7 +3449,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3508,7 +3520,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3579,7 +3592,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3651,7 +3665,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3724,7 +3739,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3774,7 +3790,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -3832,7 +3849,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -4044,7 +4062,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -4214,7 +4233,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -4277,7 +4297,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -5242,7 +5263,7 @@ if test "${gcc_cv_prog_makeinfo_modern+set}" = set; then
|
|||
else
|
||||
ac_prog_version=`$MAKEINFO --version 2>&1 |
|
||||
sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
|
||||
echo "configure:5245: version of makeinfo is $ac_prog_version" >&5
|
||||
echo "configure:5266: version of makeinfo is $ac_prog_version" >&5
|
||||
case $ac_prog_version in
|
||||
'') gcc_cv_prog_makeinfo_modern=no;;
|
||||
4.[2-9]*)
|
||||
|
@ -5497,7 +5518,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -5567,7 +5589,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -5732,7 +5755,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -5793,7 +5817,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -5863,7 +5888,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6137,7 +6163,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6210,7 +6237,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6251,7 +6279,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6453,7 +6482,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6527,7 +6557,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6581,7 +6612,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6659,7 +6691,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6713,7 +6746,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6781,7 +6815,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -6911,7 +6946,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -7032,7 +7068,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -7383,7 +7420,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -7500,7 +7538,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -7612,7 +7651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -7770,7 +7810,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8139,7 +8180,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8189,7 +8231,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8264,7 +8307,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8338,7 +8382,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8440,7 +8485,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8525,7 +8571,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8594,7 +8641,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8663,7 +8711,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8746,7 +8795,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8822,7 +8872,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -8888,7 +8939,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -9024,7 +9076,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -9107,7 +9160,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -9397,7 +9451,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -9666,7 +9721,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -9720,7 +9776,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
|
@ -11728,6 +11785,15 @@ if test $gcc_cv_as_mips_explicit_relocs = yes; then
|
|||
fi
|
||||
fi
|
||||
|
||||
if test x$gas_flag = xyes \
|
||||
|| test x"$host" != x"$build" \
|
||||
|| test ! -x "$gcc_cv_as" \
|
||||
|| "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
|
||||
:
|
||||
else
|
||||
echo "*** This configuration requires the GNU assembler" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# ??? Not all targets support dwarf2 debug_line, even within a version
|
||||
|
@ -13408,6 +13474,11 @@ esac
|
|||
|
||||
|
||||
|
||||
if test x"$ac_file" != x-; then
|
||||
{ echo "$as_me:$LINENO: creating $ac_file" >&5
|
||||
echo "$as_me: creating $ac_file" >&6;}
|
||||
rm -f "$ac_file"
|
||||
fi
|
||||
# Let's still pretend it is `configure' which instantiates (i.e., don't
|
||||
# use $as_me), people would be surprised to read:
|
||||
# /* config.h. Generated by config.status. */
|
||||
|
@ -13446,12 +13517,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
|
|||
fi;;
|
||||
esac
|
||||
done` || { (exit 1); exit 1; }
|
||||
|
||||
if test x"$ac_file" != x-; then
|
||||
{ echo "$as_me:$LINENO: creating $ac_file" >&5
|
||||
echo "$as_me: creating $ac_file" >&6;}
|
||||
rm -f "$ac_file"
|
||||
fi
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
sed "$ac_vpsub
|
||||
|
|
|
@ -2674,6 +2674,15 @@ foo: nop
|
|||
else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
|
||||
fi])
|
||||
|
||||
if test x$gas_flag = xyes \
|
||||
|| test x"$host" != x"$build" \
|
||||
|| test ! -x "$gcc_cv_as" \
|
||||
|| "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
|
||||
:
|
||||
else
|
||||
echo "*** This configuration requires the GNU assembler" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# ??? Not all targets support dwarf2 debug_line, even within a version
|
||||
|
|
|
@ -788,14 +788,13 @@ whether you use the GNU assembler. On any other system,
|
|||
@item @samp{m68k-hp-hpux}
|
||||
@item @samp{m68000-hp-hpux}
|
||||
@item @samp{m68000-att-sysv}
|
||||
@item @samp{mips-@var{any}}
|
||||
@item @samp{sparc-sun-solaris2.@var{any}}
|
||||
@item @samp{sparc64-@var{any}-solaris2.@var{any}}
|
||||
@end itemize
|
||||
|
||||
On the systems listed above (except for the HP-PA, the SPARC, for ISC on
|
||||
the 386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
|
||||
you should also use the GNU linker (and specify @option{--with-gnu-ld}).
|
||||
the 386, if you use the GNU assembler, you should also use the GNU linker
|
||||
(and specify @option{--with-gnu-ld}).
|
||||
|
||||
@item @anchor{with-as}--with-as=@var{pathname}
|
||||
Specify that the
|
||||
|
@ -3199,9 +3198,9 @@ to increase its table size for switch statements with the
|
|||
optimization option, you also need to use @option{-Olimit 3000}.
|
||||
|
||||
To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
|
||||
later, and use the @option{--with-gnu-as} and @option{--with-gnu-ld}
|
||||
@command{configure} options when configuring GCC@. You need to use GNU
|
||||
@command{ar} and @command{nm}, also distributed with GNU binutils.
|
||||
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.
|
||||
|
||||
@html
|
||||
<hr />
|
||||
|
@ -3231,12 +3230,7 @@ test.o: ELF 64-bit MSB @dots{}
|
|||
|
||||
then your version of @command{cc} uses the O32 or N64 ABI by default. You
|
||||
should set the environment variable @env{CC} to @samp{cc -n32}
|
||||
before configuring GCC@. SGI's MIPSpro 7.2 assembler may misassemble
|
||||
parts of the compiler, causing bootstrap failures. MIPSpro 7.3 is
|
||||
known to work. MIPSpro C 7.4 may cause bootstrap failures, too, 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.
|
||||
before configuring GCC@.
|
||||
|
||||
If you want the resulting @command{gcc} to run on old 32-bit systems
|
||||
with the MIPS R4400 CPU, you need to ensure that only code for the @samp{mips3}
|
||||
|
@ -3259,6 +3253,10 @@ test.o: ELF N32 MSB mips-4 @dots{}
|
|||
instead, you should set the environment variable @env{CC} to @samp{cc
|
||||
-n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@.
|
||||
|
||||
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
|
||||
you build GCC on a system that doesn't have the N64 libraries installed
|
||||
or cannot run 64-bit binaries,
|
||||
|
|
Loading…
Reference in New Issue