gcc/libgcc
Joseph Myers 73f01cca84 Always support float128 on ia64 (PR target/77586).
Bug 77586, and previously
<https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, reports
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 ia64 targets.  Support for XFmode in libgcc (that is,
for libgcc2.c XFmode functions, not soft-fp) is also enabled for all
ia64 targets so that ia64 no longer needs to define the
TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P hook.

I've confirmed that ia64-elf builds cc1 with this patch and it passes
-fself-test.  I have not otherwise tested the patch.  It's plausible
that ia64-elf and ia64-freebsd might work as-is, but ia64-vms probably
needs further changes, by someone familiar with VMS shared libraries,
to implement an equivalent of ia64/t-softfp-compat in that case
(avoiding conflicts between __divtf3 from soft-fp and the old alias
for __divxf3).

	PR target/77586
gcc:
	* config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
	* config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
	* config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
	* config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
	(IA64_NO_LIBGCC_TFMODE): Likewise.

libgcc:
	* config.host (ia64*-*-elf*, ia64*-*-freebsd*, ia64-hp-*vms*): Use
	soft-fp.

From-SVN: r240955
2016-10-10 23:43:07 +01:00
..
config crtbegin.S (__do_jv_register_classes): Remove. 2016-10-05 07:50:34 +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 ia64 (PR target/77586). 2016-10-10 23:43:07 +01:00
config.host Always support float128 on ia64 (PR target/77586). 2016-10-10 23:43:07 +01:00
config.in
configure configure.ac: Do not create links, only substitute the filenames. 2016-09-21 12:53:20 +00:00
configure.ac configure.ac: Do not create links, only substitute the filenames. 2016-09-21 12:53:20 +00:00
crtstuff.c defaults.h (JCR_SECTION_NAME, [...]): Remove. 2016-10-04 09:49:44 +02:00
dfp-bit.c
dfp-bit.h
divmod.c
empty.mk
emutls.c
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c
find-symver.awk
fixed-bit.c
fixed-bit.h
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c
fp-bit.h
gbl-ctors.h
gen-fixed.sh
generic-morestack-thread.c
generic-morestack.c S/390: Add -fsplit-stack support 2016-02-15 10:20:18 +00:00
generic-morestack.h
gstdint.h
gthr-posix.h
gthr-single.h
gthr.h
libgcc2.c [Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3) 2016-09-09 09:40:22 +00:00
libgcc2.h [Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3) 2016-09-09 09:40:22 +00:00
libgcc-std.ver.in
libgcov-driver-system.c re PR bootstrap/71400 (profiledbootstrap failed) 2016-06-06 15:24:24 +00:00
libgcov-driver.c gcov: dump in a static dtor instead of in an atexit handler 2016-09-27 11:07:11 +00:00
libgcov-interface.c
libgcov-merge.c Remove __gcov_merge_delta (PR bootstrap/77749) 2016-09-27 10:04:39 +00:00
libgcov-profiler.c Detect whether target can use -fprofile-update=atomic 2016-09-06 14:13:21 +00:00
libgcov-util.c Remove __gcov_merge_delta (PR bootstrap/77749) 2016-09-27 10:04:39 +00:00
libgcov.h gcov: dump in a static dtor instead of in an atexit handler 2016-09-27 11:07:11 +00:00
Makefile.in Remove __gcov_merge_delta (PR bootstrap/77749) 2016-09-27 10:04:39 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh
mkmap-flat.awk
mkmap-symver.awk
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
siditi-object.mk
static-object.mk
sync.c
udivmod.c
udivmodsi4.c
unwind-arm-common.inc
unwind-c.c
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-dip.c
unwind-dw2-fde.c re PR libgcc/71744 (Concurrently throwing exceptions is not scalable) 2016-09-16 21:17:47 +02:00
unwind-dw2-fde.h
unwind-dw2.c
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-seh.c
unwind-sjlj.c
unwind.inc
vtv_end_preinit.c
vtv_end.c
vtv_start_preinit.c
vtv_start.c