gcc/libgcc
Joseph Myers 21184026d5 Always support float128 on x86.
In <https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, Nick
reported i386-elf and ia64-elf failing to build because of
float128_type_node being NULL, but being used by the back end for
__float128.

The global float128_type_node is only available conditionally, if
target hooks indicate TFmode is not only available as a scalar mode
and of the right format, but also supported in libgcc.  The back-end
support, however, expects the type always to be available for
__float128 even if the libgcc support is missing.

Although a target-specific node could be restored in the case where
libgcc support is missing, it seems better to address the missing
libgcc support.  Thus, this patch enables TFmode soft-fp in libgcc
globally for all x86 targets - the only special cases needed being for
targets that use soft-fp for SFmode and DFmode, one of which already
had the support for TFmode as well (so I based the i[34567]86-*-rtems*
configuration on that present for i[34567]86-*-elfiamcu).  The i386
implementation of TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P is then
removed as no longer needed.

I can provide such a patch for ia64 if useful, but am not in a
position to test it (and while I'm reasonably confident that enabling
this support would be right for ia64-elf and ia64-freebsd, I've no
real idea if enabling libgcc support for TFmode, with or without also
enabling it for XFmode, would be safe for ia64-vms).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
	Likewise.
	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.

libgcc:
	* config.host (i[34567]86-*-* | x86_64-*-*): Enable TFmode soft-fp
	where not already enabled.

From-SVN: r239775
2016-08-26 12:13:42 +01:00
..
config [mips] Fix linux header use in libgcc 2016-08-25 14:08:27 +00:00
soft-fp Update soft-fp from glibc (PR libgcc/77265). 2016-08-16 22:30:56 +01:00
ChangeLog Always support float128 on x86. 2016-08-26 12:13:42 +01:00
Makefile.in Add new *_atomic counter update function 2016-08-10 13:14:56 +00:00
config.host Always support float128 on x86. 2016-08-26 12:13:42 +01:00
config.in Support PIE on Solaris 2015-09-24 09:00:22 +00:00
configure config.guess: Remove SH5 support. 2016-04-30 09:11:03 +00:00
configure.ac re PR target/70381 (On powerpc, -mfloat128 is on by default for all VSX systems) 2016-04-11 19:45:35 +00:00
crtstuff.c Update copyright years. 2016-01-04 15:30:50 +01:00
dfp-bit.c Update copyright years. 2016-01-04 15:30:50 +01:00
dfp-bit.h Update copyright years. 2016-01-04 15:30:50 +01:00
divmod.c Update copyright years. 2016-01-04 15:30:50 +01:00
empty.mk
emutls.c Update copyright years. 2016-01-04 15:30:50 +01:00
enable-execute-stack-empty.c enable-execute-stack-empty.c (__enable_execute_stack): Add prototype. 2011-06-22 13:20:07 +02:00
enable-execute-stack-mprotect.c Update copyright years. 2016-01-04 15:30:50 +01:00
find-symver.awk Update copyright years. 2016-01-04 15:30:50 +01:00
fixed-bit.c Update copyright years. 2016-01-04 15:30:50 +01:00
fixed-bit.h Update copyright years. 2016-01-04 15:30:50 +01:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsisf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsitf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsixf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
fp-bit.c Update copyright years. 2016-01-04 15:30:50 +01:00
fp-bit.h Update copyright years. 2016-01-04 15:30:50 +01:00
gbl-ctors.h Update copyright years. 2016-01-04 15:30:50 +01:00
gen-fixed.sh fixed-obj.mk: New file to support fine-grain fixed-point functions. 2007-09-17 22:18:13 +00:00
generic-morestack-thread.c Update copyright years. 2016-01-04 15:30:50 +01:00
generic-morestack.c S/390: Add -fsplit-stack support 2016-02-15 10:20:18 +00:00
generic-morestack.h Update copyright years. 2016-01-04 15:30:50 +01:00
gstdint.h dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. 2008-06-11 00:43:09 +01:00
gthr-posix.h Update copyright years. 2016-01-04 15:30:50 +01:00
gthr-single.h Update copyright years. 2016-01-04 15:30:50 +01:00
gthr.h Update copyright years. 2016-01-04 15:30:50 +01:00
libgcc-std.ver.in Update copyright years. 2016-01-04 15:30:50 +01:00
libgcc2.c remove unused CTOR_LISTS_DEFINED_EXTERNALLY macro 2016-07-06 23:55:52 +00:00
libgcc2.h Update copyright years. 2016-01-04 15:30:50 +01:00
libgcov-driver-system.c re PR bootstrap/71400 (profiledbootstrap failed) 2016-06-06 15:24:24 +00:00
libgcov-driver.c On behalf of Aaron Conole <aconole@redhat.com> 2016-06-02 12:22:01 +00:00
libgcov-interface.c Update copyright years. 2016-01-04 15:30:50 +01:00
libgcov-merge.c Update copyright years. 2016-01-04 15:30:50 +01:00
libgcov-profiler.c Add new *_atomic counter update function 2016-08-10 13:14:56 +00:00
libgcov-util.c gcov-tool: Do not segfault in merge operation (PR 2016-08-15 11:23:27 +00:00
libgcov.h Add new *_atomic counter update function 2016-08-10 13:14:56 +00:00
memcmp.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memcpy.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memmove.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memset.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
mkheader.sh Update copyright years. 2016-01-04 15:30:50 +01:00
mkmap-flat.awk Update copyright years. 2016-01-04 15:30:50 +01:00
mkmap-symver.awk Update copyright years. 2016-01-04 15:30:50 +01:00
offloadstuff.c re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without) 2016-02-25 12:23:52 +00:00
shared-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
siditi-object.mk Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
static-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
sync.c Update copyright years. 2016-01-04 15:30:50 +01:00
udivmod.c Update copyright years. 2016-01-04 15:30:50 +01:00
udivmodsi4.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-arm-common.inc Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-c.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-compat.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-compat.h Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2-fde.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2-fde.h Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-dw2.h Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-generic.h Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-pe.h Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-seh.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind-sjlj.c Update copyright years. 2016-01-04 15:30:50 +01:00
unwind.inc Update copyright years. 2016-01-04 15:30:50 +01:00
vtv_end.c Update copyright years. 2016-01-04 15:30:50 +01:00
vtv_end_preinit.c Update copyright years. 2016-01-04 15:30:50 +01:00
vtv_start.c Update copyright years. 2016-01-04 15:30:50 +01:00
vtv_start_preinit.c Update copyright years. 2016-01-04 15:30:50 +01:00