From 11ed11e7836929ea099df954b74b4272784a1f75 Mon Sep 17 00:00:00 2001 From: Alexander Polakov Date: Thu, 3 Sep 2009 22:51:10 +0400 Subject: [PATCH] citrus: iconv support for static binaries Compile iconv into libc.a. --- lib/libc/citrus/Makefile.inc | 2 ++ lib/libc/citrus/citrus_module.c | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/libc/citrus/Makefile.inc b/lib/libc/citrus/Makefile.inc index 175c732a4d..8bb313a5e8 100644 --- a/lib/libc/citrus/Makefile.inc +++ b/lib/libc/citrus/Makefile.inc @@ -28,4 +28,6 @@ CFLAGS+=-D_I18N_STATIC SRCS+= citrus_${var:L}.c CFLAGS+=-D_I18N_STATIC_${var} .endfor +# iconv support +SRCS+=citrus_iconv_std.c citrus_mapper_std.c citrus_mapper_serial.c .endif # STATIC_LOCALES diff --git a/lib/libc/citrus/citrus_module.c b/lib/libc/citrus/citrus_module.c index b6b2d5da02..2ef549f9e9 100644 --- a/lib/libc/citrus/citrus_module.c +++ b/lib/libc/citrus/citrus_module.c @@ -337,8 +337,18 @@ _citrus_unload_module(_citrus_module_t handle) /* * Compiled-in multibyte locale support for statically linked programs. */ - #include "citrus_ctype.h" +#include "sys/queue.h" +#include "citrus_types.h" +#include "citrus_hash.h" +#include "citrus_namespace.h" +#include "citrus_region.h" +#include "citrus_iconv_local.h" +#include "citrus_mapper_local.h" +#include "modules/citrus_mapper_serial.h" +#include "modules/citrus_mapper_std.h" +#include "modules/citrus_iconv_std.h" + #ifdef _I18N_STATIC_BIG5 #include "modules/citrus_big5.h" #endif @@ -363,10 +373,15 @@ _citrus_unload_module(_citrus_module_t handle) #define _CITRUS_LOCALE_TABLE_ENTRY(_n_) \ { #_n_, "ctype", _CITRUS_GETOPS_FUNC(_n_, ctype) } +#define _CITRUS_MODULE_TABLE_ENTRY(_n_, _if_) \ +{ #_n_, #_if_, _CITRUS_GETOPS_FUNC(_n_, _if_) } /* - * Table of compiled-in locales. + * Table of compiled-in modules. */ -struct citrus_metadata locale_table[] = { +struct citrus_metadata module_table[] = { + _CITRUS_MODULE_TABLE_ENTRY(iconv_std, iconv), + _CITRUS_MODULE_TABLE_ENTRY(mapper_std, mapper), + _CITRUS_MODULE_TABLE_ENTRY(mapper_serial, mapper), #ifdef _I18N_STATIC_BIG5 _CITRUS_LOCALE_TABLE_ENTRY(BIG5), #endif @@ -390,7 +405,7 @@ struct citrus_metadata locale_table[] = { SET_DECLARE(citrus_set, struct citrus_metadata); -DATA_SET(citrus_set, locale_table); +DATA_SET(citrus_set, module_table); #define MAGIC_HANDLE (void *)(0xC178C178) -- 2.11.4.GIT