[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
uchar C++ tests: Fix build error on FreeBSD 12
From: |
Bruno Haible |
Subject: |
uchar C++ tests: Fix build error on FreeBSD 12 |
Date: |
Mon, 17 Aug 2020 11:37:52 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-186-generic; KDE/5.18.0; x86_64; ; ) |
Although <cuchar> is a standard C++ header (see
<http://www.cplusplus.com/reference/cuchar/>) and c++ on FreeBSD 12 defines
__cplusplus to 201402, it does not have <cuchar>. This causes a build failure
in test-uchar-c++2.cc.
2020-08-17 Bruno Haible <bruno@clisp.org>
uchar C++ tests: Fix build error on FreeBSD 12.
* modules/uchar-c++-tests (configure.ac): Test whether <cuchar> exists.
(Makefile.am): Don't include test-uchar-c++2.cc in the compilation if
<cuchar> does not exist.
diff --git a/modules/uchar-c++-tests b/modules/uchar-c++-tests
index 4f179f0..2cbc331 100644
--- a/modules/uchar-c++-tests
+++ b/modules/uchar-c++-tests
@@ -10,11 +10,34 @@ Depends-on:
ansi-c++-opt
configure.ac:
+AC_REQUIRE([gl_ANSI_CXX])
+if test "$CXX" != no; then
+ dnl On FreeBSD 12, 'c++' defines __cplusplus to 201402, although it does not
+ dnl have the <cuchar> header file from C++11.
+ AC_CACHE_CHECK([whether the C++ compiler has <cuchar>],
+ [gl_cv_cxxheader_cuchar],
+ [AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <cuchar>]],
+ [[]])
+ ],
+ [gl_cv_cxxheader_cuchar=yes],
+ [gl_cv_cxxheader_cuchar=no])
+ AC_LANG_POP([C++])
+ ])
+else
+ gl_cv_cxxheader_cuchar=no
+fi
+AM_CONDITIONAL([CXX_HAVE_CUCHAR], [test $gl_cv_cxxheader_cuchar != no])
Makefile.am:
if ANSICXX
TESTS += test-uchar-c++
check_PROGRAMS += test-uchar-c++
-test_uchar_c___SOURCES = test-uchar-c++.cc test-uchar-c++2.cc
+test_uchar_c___SOURCES = test-uchar-c++.cc
+if CXX_HAVE_CUCHAR
+test_uchar_c___SOURCES += test-uchar-c++2.cc
+endif
test_uchar_c___LDADD = $(LDADD) $(LIB_MBRTOWC)
endif
- uchar C++ tests: Fix build error on FreeBSD 12,
Bruno Haible <=