summaryrefslogtreecommitdiff
path: root/libraries/base/configure.ac
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2009-06-24 12:54:22 +0000
committerIan Lynagh <igloo@earth.li>2009-06-24 12:54:22 +0000
commit6664b785276bfe8e48106b82be96c266e302924c (patch)
tree294231b5d0aaf061f3cce2cc7471699151611b06 /libraries/base/configure.ac
parentfe11112d4bf03863e900edfdef5285ba8a87eb69 (diff)
downloadhaskell-6664b785276bfe8e48106b82be96c266e302924c.tar.gz
Fix iconv detection on OpenBSD
Matthias Kilian discovered that iconv_open is #define'd to something else on OpenBSD, so the test needs to include the iconv header.
Diffstat (limited to 'libraries/base/configure.ac')
-rw-r--r--libraries/base/configure.ac18
1 files changed, 16 insertions, 2 deletions
diff --git a/libraries/base/configure.ac b/libraries/base/configure.ac
index cd153c3bc0..ce85ed010f 100644
--- a/libraries/base/configure.ac
+++ b/libraries/base/configure.ac
@@ -99,8 +99,22 @@ FP_CHECK_CONST([O_BINARY], [#include <fcntl.h>], [0])
# Check for idiosyncracies in some mingw impls of directory handling.
FP_READDIR_EOF_ERRNO
-AC_CHECK_LIB(iconv, iconv_open,
- [EXTRA_LIBS="$EXTRA_LIBS iconv"])
+# We can't just use AC_SEARCH_LIBS for this, as on OpenBSD the iconv.h
+# header needs to be included as iconv_open is #define'd to something
+# else. We therefore use our own FP_SEARCH_LIBS_PROTO, which allows us
+# to give prototype text.
+FP_SEARCH_LIBS_PROTO(iconv,
+ [
+#include <stddef.h>
+#include <iconv.h>
+ ],
+ [iconv_t cd;
+ cd = iconv_open("", "");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ iconv,
+ [EXTRA_LIBS="$EXTRA_LIBS $ac_lib"],
+ [exit 1])
AC_SUBST(EXTRA_LIBS)
AC_CONFIG_FILES([base.buildinfo])