This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/69611] New: Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: "andreast at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 01 Feb 2016 21:56:41 +0000
- Subject: [Bug bootstrap/69611] New: Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69611
Bug ID: 69611
Summary: Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit
floating point support.
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: bootstrap
Assignee: unassigned at gcc dot gnu.org
Reporter: andreast at gcc dot gnu.org
Target Milestone: ---
PowerPC FreeBSD does not support 128-bit floating point yet.
Bootstrap on this target is broken because of undefined references to
__sfp_handle_exceptions.
We build gcc with softfp for our 32-bit embedded targets.
Now the the sfp-machine.h is included even in the non 128-bit t-float128 case.
The definition of the __sfp_handle_exceptions is done in the mentioned header
file while the implementation is done in the sfp-exceptions.c which is only
built when 128-bit float is supported.
To fix this issue we propose to guard the affected region in sfp-machine.h with
this:
Index: config/rs6000/sfp-machine.h
===================================================================
--- config/rs6000/sfp-machine.h (revision 233015)
+++ config/rs6000/sfp-machine.h (working copy)
@@ -110,7 +110,7 @@
floating point on pre-ISA 3.0 machines without the IEEE 128-bit floating
point support. */
-#ifndef __NO_FPRS__
+#if defined(__FLOAT128__)
#define ISA_BIT(x) (1LL << (63 - x))
/* Use the same bits of the FPSCR. */
@@ -151,7 +151,7 @@
} while (0)
# define FP_ROUNDMODE (_fpscr & FP_RND_MASK)
-#endif /* !__NO_FPRS__ */
+#endif /* __FLOAT128__ */
I discussed this with Michael Meissner on #irc. He agrees on this approach.
I'm running a bootstrap and will provide test results from FreeBSD PowerPC
asap.
I'd appreciate a testrun on a GNU/Linux target. I do not have such a setup yet.
TIA,
Andreas
- Follow-Ups:
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: joseph at codesourcery dot com
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: meissner at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: meissner at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: meissner at linux dot vnet.ibm.com
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: dje at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: joseph at codesourcery dot com
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: andreast at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: andreast at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: wschmidt at gcc dot gnu.org
- [Bug bootstrap/69611] Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.
- From: andreast at gcc dot gnu.org