]> Savannah Git Hosting - gnulib.git/commitdiff
coshf: Avoid redefinition error on MSVC.
authorBruno Haible <bruno@clisp.org>
Sat, 17 Dec 2016 18:36:54 +0000 (19:36 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 17 Dec 2016 22:09:06 +0000 (23:09 +0100)
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSHF.
* m4/coshf.m4 (gl_FUNC_COSHF): Set REPLACE_COSHF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_COSHF.
* lib/math.in.h (coshf): Override if REPLACE_COSHF is 1.

ChangeLog
lib/math.in.h
m4/coshf.m4
m4/math_h.m4
modules/math

index b802d75517cc6f3868eba35be0f81aa7c34fae2a..bca6f7897d489be9a59cd5bfd33e8085181f14e0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-12-17  Bruno Haible  <bruno@clisp.org>
+
+       coshf: Avoid redefinition error on MSVC.
+       * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSHF.
+       * m4/coshf.m4 (gl_FUNC_COSHF): Set REPLACE_COSHF to 1 if the function
+       may be defined as an inline function.
+       * modules/math (Makefile.am): Substitute REPLACE_COSHF.
+       * lib/math.in.h (coshf): Override if REPLACE_COSHF is 1.
+
 2016-12-17  Bruno Haible  <bruno@clisp.org>
 
        cosf: Avoid redefinition error on MSVC.
index 6065cfa21418ebb7e172c4482322ed68731870ae..ccaf56cc7aa0d72a1d3a93d290ffe36e1206b28a 100644 (file)
@@ -564,11 +564,20 @@ _GL_WARN_ON_USE (cosl, "cosl is unportable - "
 
 
 #if @GNULIB_COSHF@
-# if !@HAVE_COSHF@
-#  undef coshf
+# if @REPLACE_COSHF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef coshf
+#   define coshf rpl_coshf
+#  endif
+_GL_FUNCDECL_RPL (coshf, float, (float x));
+_GL_CXXALIAS_RPL (coshf, float, (float x));
+# else
+#  if !@HAVE_COSHF@
+#   undef coshf
 _GL_FUNCDECL_SYS (coshf, float, (float x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (coshf, float, (float x));
+# endif
 _GL_CXXALIASWARN (coshf);
 #elif defined GNULIB_POSIXCHECK
 # undef coshf
index 2cc02642d69c5dfb1d455d0f7289425598d0d247..35977e2c319b4eaa9e9d623e7719ef62b0d8aae7 100644 (file)
@@ -1,4 +1,4 @@
-# coshf.m4 serial 2
+# coshf.m4 serial 3
 dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -22,6 +22,10 @@ AC_DEFUN([gl_FUNC_COSHF],
     COSHF_LIBM="$COSH_LIBM"
   else
     HAVE_COSHF=0
+    dnl If the function is declared but does not appear to exist, it may be
+    dnl defined as an inline function. In order to avoid a conflict, we have
+    dnl to define rpl_coshf, not coshf.
+    AC_CHECK_DECLS([coshf], [REPLACE_COSHF=1], , [[#include <math.h>]])
     COSHF_LIBM="$COSH_LIBM"
   fi
   AC_SUBST([COSHF_LIBM])
index 89d3ab2907f60b41586e98b19d40498a531ee1fc..69933897ffb5b73d7b10b0cb02b6481d46527710 100644 (file)
@@ -266,6 +266,7 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   REPLACE_CEILF=0;             AC_SUBST([REPLACE_CEILF])
   REPLACE_CEILL=0;             AC_SUBST([REPLACE_CEILL])
   REPLACE_COSF=0;              AC_SUBST([REPLACE_COSF])
+  REPLACE_COSHF=0;             AC_SUBST([REPLACE_COSHF])
   REPLACE_EXPM1=0;             AC_SUBST([REPLACE_EXPM1])
   REPLACE_EXPM1F=0;            AC_SUBST([REPLACE_EXPM1F])
   REPLACE_EXP2=0;              AC_SUBST([REPLACE_EXP2])
index abe1db4fe31a42429b1bc257d37ff6c2c9340d4b..0fa946b96bb0f7845480d732ef66d4f2d467effd 100644 (file)
@@ -235,6 +235,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
              -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
              -e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \
+             -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \
              -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
              -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
              -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \