------- Comment #2 from fxcoudert at gcc dot gnu dot org  2008-03-11 07:52 
-------
There's one good thing in FreeBSD: it sure helps finding any reference to a C99
long double function that is not protected by a autoconf macro :)

Can you please try the following patch and tell me whether it helps?

Index: libgfortran/intrinsics/erfc_scaled_inc.c
===================================================================
--- libgfortran/intrinsics/erfc_scaled_inc.c    (revision 133101)
+++ libgfortran/intrinsics/erfc_scaled_inc.c    (working copy)
@@ -35,16 +35,28 @@
 #define KIND_SUFFIX(x,y) CONCAT(x,y)

 #if (KIND == 4)
+
 # define EXP(x) expf(x)
 # define TRUNC(x) truncf(x)
+
 #elif (KIND == 8)
+
 # define EXP(x) exp(x)
 # define TRUNC(x) trunc(x)
+
 #else
-# define EXP(x) expl(x)
-# define TRUNC(x) truncl(x)
+
+# ifdef HAVE_EXPL
+#  define EXP(x) expl(x)
+# endif
+# ifdef HAVE_TRUNCL
+#  define TRUNC(x) truncl(x)
+# endif
+
 #endif

+#if defined(EXP) && defined(TRUNC)
+
 extern TYPE KIND_SUFFIX(erfc_scaled_r,KIND) (TYPE);
 export_proto(KIND_SUFFIX(erfc_scaled_r,KIND));

@@ -167,6 +179,8 @@
   return res;
 }

+#endif
+
 #undef EXP
 #undef TRUNC



-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
         AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
          Component|fortran                     |libfortran
 GCC target triplet|                            |i386-unknown-freebsd7.0
           Keywords|                            |patch
   Last reconfirmed|2008-03-11 02:22:03         |2008-03-11 07:52:37
               date|                            |
            Summary|[4.3/4.2 regression] EXP    |[4.4 regression]
                   |library function not found  |Unconditional use of expl()
                   |in March 7 snapshot under   |in libgfortran
                   |FreeBSD                     |
   Target Milestone|---                         |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35524

Reply via email to