]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r208737 (required by OCTEON* kernels):
authorgonzo <gonzo@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 8 Dec 2011 00:47:22 +0000 (00:47 +0000)
committergonzo <gonzo@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 8 Dec 2011 00:47:22 +0000 (00:47 +0000)
commitc28e86e6d621c9a7010f1cb3b84514b5244a3512
tree9a47e577d51bf9952691a9fa54ee41d64e440e64
parent156dfaa0904be1bb85d9fcda3608cc5f55fc7a47
MFC r208737 (required by OCTEON* kernels):
  Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.

  o) Add TARGET_ABI to the MIPS toolchain build process.  This sets the default
     ABI to one of o32, n32 or n64.  If it is not set, o32 is assumed as that is
     the current default.
  o) Set the default GCC cpu type to any specified TARGET_CPUTYPE.  This is
     necessary to have a working "cc" if e.g. mips64 is specified, as binutils
     will refuse to link objects using different ISAs in some cases.
  o) Add support for n32 and n64 ABIs to binutils and GCC.
  o) Add additional required libgcc2 stubs for n32 and n64.
  o) Add support for the "mips64r2" architecture to GCC.  Add the "octeon"
  o) When static linking, wrap default libraries in --start-group and
     --end-group.  This is required for static linking to work on n64 with the
     interdependencies between libraries there.  This is what other OSes that
     support n64 seem to do, as well.
  o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the
     former being what libgcc, etc., check and the latter seemingly being a
     misspelling of a hand merge from a Linux spec.
  o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default
     ISA from the ABI.  Our old defaults were too liberal and assumed that 64-bit
     ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to
     the MIPS32 ISA, when we are supporting or will support some systems based on
     earlier 32-bit and 64-bit ISAs, most notably MIPS-III.
  o) Merge a new opcode file (and support code) from a later version of binutils
     and add flags and code necessary to support Octeon-specific instructions.
     This should also make merging opcodes for other modern architectures easier.

No objections from: imp, jmallet, jchandra
MFC after: 18 months

git-svn-id: svn://svn.freebsd.org/base/stable/8@228337 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
29 files changed:
contrib/binutils/bfd/archures.c
contrib/binutils/bfd/bfd-in2.h
contrib/binutils/bfd/cpu-mips.c
contrib/binutils/bfd/elfxx-mips.c
contrib/binutils/gas/config/tc-mips.c
contrib/binutils/gas/config/tc-mips.h
contrib/binutils/include/elf/mips.h
contrib/binutils/include/opcode/mips.h
contrib/binutils/opcodes/mips-dis.c
contrib/binutils/opcodes/mips-opc.c
contrib/binutils/opcodes/mips16-opc.c
contrib/gcc/config/fixdfdi.c [new file with mode: 0644]
contrib/gcc/config/fixsfdi.c [new file with mode: 0644]
contrib/gcc/config/fixunsdfsi.c [new file with mode: 0644]
contrib/gcc/config/fixunssfsi.c [new file with mode: 0644]
contrib/gcc/config/floatdidf.c [new file with mode: 0644]
contrib/gcc/config/floatdisf.c [new file with mode: 0644]
contrib/gcc/config/floatundidf.c [new file with mode: 0644]
contrib/gcc/config/floatundisf.c [new file with mode: 0644]
contrib/gcc/config/mips/freebsd.h
contrib/gcc/config/mips/mips.c
contrib/gcc/config/mips/mips.h
contrib/gcc/config/mips/mips.md
gnu/lib/libgcc/Makefile
gnu/lib/libgomp/Makefile
gnu/usr.bin/binutils/Makefile.inc0
gnu/usr.bin/binutils/ld/Makefile.mips
gnu/usr.bin/binutils/libbfd/Makefile.mips
gnu/usr.bin/binutils/libbfd/bfd.h