diff options
author | deischen <deischen@FreeBSD.org> | 2000-06-27 19:27:25 +0800 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2000-06-27 19:27:25 +0800 |
commit | d6a5b4a9a5b5be2d266fcd53fe8597ea66e3a5aa (patch) | |
tree | fa73738168d0f5b8614b184b9d06cf8fcab26a45 /lang/gnat | |
parent | 64322fd38e5c0ab203bf94da92365918ad53d78b (diff) | |
download | freebsd-ports-gnome-d6a5b4a9a5b5be2d266fcd53fe8597ea66e3a5aa.tar.gz freebsd-ports-gnome-d6a5b4a9a5b5be2d266fcd53fe8597ea66e3a5aa.tar.zst freebsd-ports-gnome-d6a5b4a9a5b5be2d266fcd53fe8597ea66e3a5aa.zip |
When initializing the GNAT (i386) run-time, initialize the floating point
control word to use 64-bit (extended) precision instead of FreeBSDs
default 53-bit (double) precision.
Submitted by: Sune Falck <sunef@hem.passagen.se>
Diffstat (limited to 'lang/gnat')
-rw-r--r-- | lang/gnat/files/patch-ai | 30 |
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 () + { |