aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/gnat/files/patch-ai30
1 files changed, 28 insertions, 2 deletions
diff --git a/lang/gnat/files/patch-ai b/lang/gnat/files/patch-ai
index 0e6593362a79..f0a487f505f0 100644
--- a/lang/gnat/files/patch-ai
+++ b/lang/gnat/files/patch-ai
@@ -1,8 +1,8 @@
*** ./ada/a-init.c.orig Fri Sep 24 08:42:43 1999
---- ./ada/a-init.c Sat Nov 6 16:22:51 1999
+--- ./ada/a-init.c Mon Jun 26 21:43:54 2000
***************
*** 1445,1450 ****
---- 1445,1523 ----
+--- 1445,1532 ----
}
@@ -73,12 +73,38 @@
+ (void) sigaction (SIGBUS, &act, NULL);
+ }
+
++ void __gnat_init_float ();
++
+ void
+ __gnat_initialize ()
+ {
+ __gnat_install_handler ();
++
++ /* XXX - Initialize floating-point coprocessor. This call is
++ needed because FreeBSD defaults to 53-bit precision instead
++ of 64-bit precision. We require the full precision for
++ proper operation, given that we have set Max_Digits etc
++ with this in mind. */
++ __gnat_init_float ();
+ }
+
/***************************************/
/* __gnat_initialize (default version) */
/***************************************/
+***************
+*** 1470,1476 ****
+ defined in all Win32 versions, but only actually does something on
+ the i386 version, where it properly initializes the FPU for GNAT use. */
+
+! #if defined (_WIN32) || defined (__INTERIX)
+ void
+ __gnat_init_float ()
+ {
+--- 1552,1558 ----
+ defined in all Win32 versions, but only actually does something on
+ the i386 version, where it properly initializes the FPU for GNAT use. */
+
+! #if defined (_WIN32) || defined (__INTERIX) || defined (__FreeBSD__)
+ void
+ __gnat_init_float ()
+ {