svn commit: r237698 - stable/9/lib/libkiconv
Gabor Kovesdan
gabor at FreeBSD.org
Thu Jun 28 09:18:12 UTC 2012
Author: gabor
Date: Thu Jun 28 09:18:11 2012
New Revision: 237698
URL: http://svn.freebsd.org/changeset/base/237698
Log:
MFC 236028, 236185, 236972
- Add support for BSD iconv when it is built into libc
Modified:
stable/9/lib/libkiconv/Makefile
stable/9/lib/libkiconv/xlat16_iconv.c
Directory Properties:
stable/9/lib/libkiconv/ (props changed)
Modified: stable/9/lib/libkiconv/Makefile
==============================================================================
--- stable/9/lib/libkiconv/Makefile Thu Jun 28 08:25:19 2012 (r237697)
+++ stable/9/lib/libkiconv/Makefile Thu Jun 28 09:18:11 2012 (r237698)
@@ -1,7 +1,10 @@
# $FreeBSD$
-LIB= kiconv
SHLIBDIR?= /lib
+
+.include <bsd.own.mk>
+
+LIB= kiconv
SRCS= kiconv_sysctl.c xlat16_iconv.c xlat16_sysctl.c
SRCS+= quirks.c
@@ -17,4 +20,8 @@ CFLAGS+= -I${.CURDIR}/../../sys
WARNS?= 1
+.if ${MK_ICONV} == "no"
+CFLAGS+= -DICONV_DLOPEN
+.endif
+
.include <bsd.lib.mk>
Modified: stable/9/lib/libkiconv/xlat16_iconv.c
==============================================================================
--- stable/9/lib/libkiconv/xlat16_iconv.c Thu Jun 28 08:25:19 2012 (r237697)
+++ stable/9/lib/libkiconv/xlat16_iconv.c Thu Jun 28 09:18:11 2012 (r237698)
@@ -60,10 +60,18 @@ struct xlat16_table {
static struct xlat16_table kiconv_xlat16_open(const char *, const char *, int);
static int chklocale(int, const char *);
+#ifdef ICONV_DLOPEN
static int my_iconv_init(void);
static iconv_t (*my_iconv_open)(const char *, const char *);
static size_t (*my_iconv)(iconv_t, const char **, size_t *, char **, size_t *);
static int (*my_iconv_close)(iconv_t);
+#else
+#include <iconv.h>
+#define my_iconv_init() 0
+#define my_iconv_open iconv_open
+#define my_iconv iconv
+#define my_iconv_close iconv_close
+#endif
static size_t my_iconv_char(iconv_t, const u_char **, size_t *, u_char **, size_t *);
int
@@ -310,6 +318,7 @@ chklocale(int category, const char *code
return (error);
}
+#ifdef ICONV_DLOPEN
static int
my_iconv_init(void)
{
@@ -327,6 +336,7 @@ my_iconv_init(void)
return (0);
}
+#endif
static size_t
my_iconv_char(iconv_t cd, const u_char **ibuf, size_t * ilen, u_char **obuf,
More information about the svn-src-stable-9
mailing list