+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
+ t-slibgcc-dummy.
+ * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
+ * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
+ * config/mips/t-iris: Remove.
+ * config/mips/t-irix6: New file.
+ * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
+
2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* Makefile.in (LIB2ADDEHDEP): Remove.
;;
mips-sgi-irix6.5*)
tm_file="elfos.h ${tm_file} mips/iris6.h"
- tmake_file="mips/t-iris mips/t-iris6 mips/t-slibgcc-irix"
+ tmake_file="mips/t-irix6 t-slibgcc-dummy"
extra_options="${extra_options} rpath.opt mips/iris6.opt"
target_cpu_default="MASK_ABICALLS"
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
+++ /dev/null
-/* Copyright (C) 2004, 2008 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
- .abicalls
- .set noreorder
- .set nomacro
-
-/* 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
- addiu $sp,$sp,-16
- sw $31,0($sp)
-#else
- daddiu $sp,$sp,-16
- sd $31,0($sp)
- sd $28,8($sp)
-#endif
-
- .section .gcc_fini,"ax",@progbits
- .globl __gcc_fini
-__gcc_fini:
-#if _MIPS_SIM == _ABIO32
- addiu $sp,$sp,-16
- sw $31,0($sp)
-#else
- daddiu $sp,$sp,-16
- sd $31,0($sp)
- sd $28,8($sp)
-#endif
-
-/* This object will typically be included in the final link for both
- shared libraries and executable, and we need to hide the symbols to
- prevent possible symbol preemption warnings from the SGI linker. */
-.hidden __gcc_init
-.hidden __gcc_fini
-
+++ /dev/null
-/* Copyright (C) 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 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
- .abicalls
- .set noreorder
- .set nomacro
-
- .section .gcc_init,"ax",@progbits
-#if _MIPS_SIM == _ABIO32
- lw $31,0($sp)
- jr $31
- addiu $sp,$sp,16
-#else
- ld $31,0($sp)
- ld $28,8($sp)
- jr $31
- daddiu $sp,$sp,16
-#endif
-
- .section .gcc_fini,"ax",@progbits
-#if _MIPS_SIM == _ABIO32
- lw $31,0($sp)
- jr $31
- addiu $sp,$sp,16
-#else
- ld $31,0($sp)
- ld $28,8($sp)
- jr $31
- daddiu $sp,$sp,16
-#endif
+++ /dev/null
-$(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
+++ /dev/null
-# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2010 Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-#
-# GCC is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GCC is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-MULTILIB_OPTIONS=mabi=n32/mabi=64
-MULTILIB_DIRNAMES=n32 64
-MULTILIB_MATCHES=
-MULTILIB_OSDIRNAMES=../lib32 ../lib64
-
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
-
-TPBIT = tp-bit.c
-
-tp-bit.c: $(srcdir)/config/fp-bit.c
- echo '#ifdef __MIPSEL__' > tp-bit.c
- echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c
- echo '#endif' >> tp-bit.c
- echo '#define QUIET_NAN_NEGATED' >> tp-bit.c
- echo '#if __LDBL_MANT_DIG__ == 106' >> tp-bit.c
- echo '# define TFLOAT' >> tp-bit.c
- cat $(srcdir)/config/fp-bit.c >> tp-bit.c
- echo '#endif' >> tp-bit.c
--- /dev/null
+MULTILIB_OPTIONS=mabi=n32/mabi=64
+MULTILIB_DIRNAMES=n32 64
+MULTILIB_MATCHES=
+MULTILIB_OSDIRNAMES=../lib32 ../lib64
+++ /dev/null
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-#
-# GCC is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GCC is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-# Build a shared libgcc library.
-
-SHLIB_EXT = .so
-SHLIB_SOLINK = @shlib_base_name@.so
-SHLIB_SOVERSION = 1
-SHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
-SHLIB_MAP = @shlib_map_file@
-SHLIB_OBJS = @shlib_objs@
-SHLIB_DIR = @multilib_dir@
-SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
-SHLIB_LC = -lc
-
-SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
- -Wl,-soname,$(SHLIB_SONAME) \
- -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
- $(SHLIB_OBJS) $(SHLIB_LC) && \
- rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
- mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
- $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
- else true; fi && \
- mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
- $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(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_DIR)/$(SHLIB_SONAME) \
- $$(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 = $$(libgcc_objdir)/libgcc-std.ver
+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.host (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
+ Set tmake_file, extra_parts.
+ * config/mips/irix-crti.S: Move from ../gcc/config/mips/irix-crti.asm.
+ Remove O32 support.
+ * config/mips/irix-crtn.S: Move from ../gcc/config/mips/irix-crtn.asm.
+ Remove O32 support.
+ * config/mips/t-irix6: New file.
+ * config/mips/t-slibgcc-irix: New file.
+
2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/s390/t-tpf (LIB2ADDEHDEP): Remove.
microblaze*-*-*)
tmake_file="microblaze/t-microblaze"
;;
-mips-sgi-irix[56]*)
+mips-sgi-irix6.5*)
+ tmake_file="mips/t-irix6 t-slibgcc mips/t-slibgcc-irix"
+ extra_parts="crtbegin.o crtend.o irix-crti.o irix-crtn.o"
;;
mips*-*-netbsd*) # NetBSD/mips, either endian.
;;
--- /dev/null
+/* Copyright (C) 2004, 2008, 2011 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+ .abicalls
+ .set noreorder
+ .set nomacro
+
+/* 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:
+ daddiu $sp,$sp,-16
+ sd $31,0($sp)
+ sd $28,8($sp)
+
+ .section .gcc_fini,"ax",@progbits
+ .globl __gcc_fini
+__gcc_fini:
+ daddiu $sp,$sp,-16
+ sd $31,0($sp)
+ sd $28,8($sp)
+
+/* This object will typically be included in the final link for both
+ shared libraries and executable, and we need to hide the symbols to
+ prevent possible symbol preemption warnings from the SGI linker. */
+.hidden __gcc_init
+.hidden __gcc_fini
+
--- /dev/null
+/* Copyright (C) 2004, 2011 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+ .abicalls
+ .set noreorder
+ .set nomacro
+
+ .section .gcc_init,"ax",@progbits
+ ld $31,0($sp)
+ ld $28,8($sp)
+ jr $31
+ daddiu $sp,$sp,16
+
+ .section .gcc_fini,"ax",@progbits
+ ld $31,0($sp)
+ ld $28,8($sp)
+ jr $31
+ daddiu $sp,$sp,16
--- /dev/null
+# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
+# 2006, 2010, 2011 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+irix-crti.o: $(srcdir)/config/mips/irix-crti.S
+ $(crt_compile) -c $<
+
+irix-crtn.o: $(srcdir)/config/mips/irix-crtn.S
+ $(crt_compile) -c $<
+
+TPBIT = tp-bit.c
+
+$(gcc_objdir)/tp-bit.c: $(gcc_srcdir)/config/fp-bit.c
+ echo '#ifdef __MIPSEL__' > $@
+ echo '# define FLOAT_BIT_ORDER_MISMATCH' >> $@
+ echo '#endif' >> $@
+ echo '#define QUIET_NAN_NEGATED' >> $@
+ echo '#if __LDBL_MANT_DIG__ == 106' >> $@
+ echo '# define TFLOAT' >> $@
+ cat $< >> $@
+ echo '#endif' >> $@
--- /dev/null
+# Build a shared libgcc library with the SGI linker.
+
+SHLIB_LDFLAGS = -Wl,-soname,$(SHLIB_SONAME) \
+ -Wl,-exports_file,$(SHLIB_MAP)
+
+SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.awk
+SHLIB_MAPFILES = libgcc-std.ver