bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset: Fix autoconf test


From: Bruno Haible
Subject: wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset: Fix autoconf test
Date: Fri, 29 May 2020 13:21:20 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-177-generic; KDE/5.18.0; x86_64; ; )

On IRIX 6.5, with cc, I'm seeing a compilation error:

cc -n32 -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1 
-I/u/guest/bruno/prefix-n32-cc/include  -g -c -o wcsdup.o wcsdup.c
cc-1119 cc: ERROR File = wcsdup-impl.h, Line = 24
  The "return" expression type differs from the function return type.

      return wmemcpy (copy, s, n);
             ^

1 error detected in the compilation of "wcsdup.c".
gmake[4]: *** [Makefile:3494: wcsdup.o] Error 2

The cause is that the test program in wmemcpy.m4 is only compiled, not linked;
this succeeds even without a wmemcpy() function being declared. Thus,
HAVE_WMEMCPY gets the value 1, and gnulib's wchar.h replacement does not
declare 'wmemcpy'. Then wcsdup.c fails to compile.

This patch fixes it.


2020-05-29  Bruno Haible  <bruno@clisp.org>

        wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset: Fix autoconf test.
        * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Link, not only compile, the test
        program.
        * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Likewise.
        * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Likewise.
        * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Likewise.
        * m4/wmemset.m4 (gl_FUNC_WMEMSET): Likewise.

diff --git a/m4/wmemchr.m4 b/m4/wmemchr.m4
index b8bbf07..62bd89c 100644
--- a/m4/wmemchr.m4
+++ b/m4/wmemchr.m4
@@ -1,4 +1,4 @@
-# wmemchr.m4 serial 3
+# wmemchr.m4 serial 4
 dnl Copyright (C) 2011-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_WMEMCHR],
   dnl We cannot use AC_CHECK_FUNCS here, because the MSVC 9 header files
   dnl provide this function as an inline function definition.
   AC_CACHE_CHECK([for wmemchr], [gl_cv_func_wmemchr],
-    [AC_COMPILE_IFELSE(
+    [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
diff --git a/m4/wmemcmp.m4 b/m4/wmemcmp.m4
index 4584d1f..701e73f 100644
--- a/m4/wmemcmp.m4
+++ b/m4/wmemcmp.m4
@@ -1,4 +1,4 @@
-# wmemcmp.m4 serial 3
+# wmemcmp.m4 serial 4
 dnl Copyright (C) 2011-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_WMEMCMP],
   dnl We cannot use AC_CHECK_FUNCS here, because the MSVC 9 header files
   dnl provide this function as an inline function definition.
   AC_CACHE_CHECK([for wmemcmp], [gl_cv_func_wmemcmp],
-    [AC_COMPILE_IFELSE(
+    [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
diff --git a/m4/wmemcpy.m4 b/m4/wmemcpy.m4
index 3309248..c9d749d 100644
--- a/m4/wmemcpy.m4
+++ b/m4/wmemcpy.m4
@@ -1,4 +1,4 @@
-# wmemcpy.m4 serial 3
+# wmemcpy.m4 serial 4
 dnl Copyright (C) 2011-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_WMEMCPY],
   dnl We cannot use AC_CHECK_FUNCS here, because the MSVC 9 header files
   dnl provide this function as an inline function definition.
   AC_CACHE_CHECK([for wmemcpy], [gl_cv_func_wmemcpy],
-    [AC_COMPILE_IFELSE(
+    [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
diff --git a/m4/wmemmove.m4 b/m4/wmemmove.m4
index 61598e4..adbc12d 100644
--- a/m4/wmemmove.m4
+++ b/m4/wmemmove.m4
@@ -1,4 +1,4 @@
-# wmemmove.m4 serial 3
+# wmemmove.m4 serial 4
 dnl Copyright (C) 2011-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_WMEMMOVE],
   dnl We cannot use AC_CHECK_FUNCS here, because the MSVC 9 header files
   dnl provide this function as an inline function definition.
   AC_CACHE_CHECK([for wmemmove], [gl_cv_func_wmemmove],
-    [AC_COMPILE_IFELSE(
+    [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
diff --git a/m4/wmemset.m4 b/m4/wmemset.m4
index e6aa3fb..0148ea3 100644
--- a/m4/wmemset.m4
+++ b/m4/wmemset.m4
@@ -1,4 +1,4 @@
-# wmemset.m4 serial 3
+# wmemset.m4 serial 4
 dnl Copyright (C) 2011-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_WMEMSET],
   dnl We cannot use AC_CHECK_FUNCS here, because the MSVC 9 header files
   dnl provide this function as an inline function definition.
   AC_CACHE_CHECK([for wmemset], [gl_cv_func_wmemset],
-    [AC_COMPILE_IFELSE(
+    [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]