From 73775d8f28bd8f5c40b524fe1ede63d3dfaff171 Mon Sep 17 00:00:00 2001 From: Patrick Lam Date: Tue, 25 Apr 2006 15:33:07 +0000 Subject: [PATCH] Fix the issues with GNU libiconv vs. libc iconv (which especially appear on Solarii). Approach suggested by Tim Mooney. reviewed by: plam --- ChangeLog | 12 +++++++++++- configure.in | 37 +++++++++++++++++++++++++++++++++++-- src/Makefile.am | 2 +- src/fcfreetype.c | 3 +-- 4 files changed, 48 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c0a366d..2b990bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -2006-04-24 Patrick Lam +2006-04-25 Patrick Lam * ChangeLog: * README: * configure.in: @@ -6,6 +6,16 @@ Bump version to 2.3.95. +2006-04-25 Behdad Esfahbod + reviewed by: plam + + * configure.in: + * src/Makefile.am: + * src/fcfreetype.c: + + Fix the issues with GNU libiconv vs. libc iconv (which especially + appear on Solarii). Approach suggested by Tim Mooney. + 2006-04-24 Dominic Lachowicz reviewed by: plam diff --git a/configure.in b/configure.in index 884bbe8..acdc1f1 100644 --- a/configure.in +++ b/configure.in @@ -135,7 +135,7 @@ dnl ========================================================================== # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC -AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h]) +AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -145,7 +145,40 @@ AC_TYPE_PID_T # Checks for library functions. AC_FUNC_VPRINTF AC_FUNC_MMAP -AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv sysconf ftruncate chsize rand_r]) +AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand_r]) + +# +# Checks for iconv +# +AC_MSG_CHECKING([for a usable iconv]) +ICONV_LIBS="" +AC_TRY_LINK([#include ], + [iconv_open ("from", "to");], + [use_iconv=1], + [use_iconv=0]) +if test x$use_iconv = x1; then + AC_MSG_RESULT([libc]) +else + # try using libiconv + fontconfig_save_libs="$LIBS" + LIBS="$LIBS -liconv" + + AC_TRY_LINK([#include ], + [iconv_open ("from", "to");], + [use_iconv=true], + [use_iconv=false]) + + if test x$use_iconv = x1; then + ICONV_LIBS="-liconv" + AC_MSG_RESULT([libiconv]) + else + AC_MSG_RESULT([no]) + fi + + LIBS="$fontconfig_save_libs" +fi +AC_SUBST(ICONV_LIBS) +AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.]) # # Checks for FreeType diff --git a/src/Makefile.am b/src/Makefile.am index 750b8d2..01c9c5e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -106,7 +106,7 @@ lib_LTLIBRARIES = libfontconfig.la libfontconfig_la_LDFLAGS = \ -version-info @LT_VERSION_INFO@ -no-undefined $(export_symbols) -libfontconfig_la_LIBADD = $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) +libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) install-data-local: install-ms-import-lib install-libtool-import-lib diff --git a/src/fcfreetype.c b/src/fcfreetype.c index f31aef8..9eb591e 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -554,8 +554,7 @@ FcFontCapabilities(FT_Face face); #define NUM_FC_MAC_ROMAN_FAKE (int) (sizeof (fcMacRomanFake) / sizeof (fcMacRomanFake[0])) -#if HAVE_ICONV && HAVE_ICONV_H -#define USE_ICONV 1 +#if USE_ICONV #include #endif -- 2.39.5