summaryrefslogtreecommitdiff
blob: 9e56ab314b2139449fe209c0a5c84cbb4f69df1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Index: config.lib
===================================================================
--- config.lib	(revision 14474)
+++ config.lib	(working copy)
@@ -1225,10 +1225,12 @@
 
 	if [ "$with_iconv" != "0" ]; then
 		CFLAGS="$CFLAGS -DWITH_ICONV"
-		LIBS="$LIBS -liconv"
-		if [ "$with_iconv" != "2" ]; then
-			CFLAGS="$CFLAGS -I$with_iconv/include"
-			LIBS="$LIBS -L$with_iconv/lib"
+		if [ "$link_to_iconv" = "yes" ]; then
+			LIBS="$LIBS -liconv"
+			if [ "$with_iconv" != "2" ]; then
+				CFLAGS="$CFLAGS -I$with_iconv/include"
+				LIBS="$LIBS -L$with_iconv/lib"
+			fi
 		fi
 
 		if [ "$have_broken_iconv" != "no" ]; then
@@ -2161,6 +2163,27 @@
 	log 2 "  exit code $ret"
 	if [ "$ret" = "0" ]; then have_broken_iconv="no"; else have_broken_iconv="yes"; fi
 	log 1 "checking if iconv has non-const inbuf... $have_broken_iconv"
+
+	cat > tmp.iconv.cpp << EOF
+#include "src/stdafx.h"
+#include <iconv.h>
+int main() {
+	static char buf[1024];
+	iconv_t convd = 0;
+	char *inbuf = "";
+	char *outbuf  = buf;
+	size_t outlen = 1023;
+	size_t inlen  = 0;
+	return iconv(convd, &inbuf, &inlen, &outbuf, &outlen);
+}
+EOF
+	execute="$cxx_host $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
+	eval $execute >&/dev/null
+	ret=$?
+	log 2 "executing $execute"
+	log 2 "  exit code $ret"
+	if [ "$ret" = "0" ]; then link_to_iconv="no"; else link_to_iconv="yes"; fi
+	log 1 "checking whether to link to iconv... $link_to_iconv"
 	rm -f tmp.iconv tmp.iconv.cpp
 }