diff options
23 files changed, 309 insertions, 106 deletions
@@ -1,3 +1,14 @@ +2010.02-rc2, Not yet released: + + Fixes all over the tree and new features. + + Updated/fixed packages: alsa-lib, alsa-utils, argus, at, + gst-plugins-good, libpcap, rsync, tcl, xproto_trapproto + + Issues resolved (http://bugs.uclibc.org): + + #1069: [PATCH] The AT91BOOTSTRAP makefile contains a typo + 2010.02-rc1, Released February 9th, 2010: Fixes all over the tree and new features. @@ -371,6 +371,7 @@ ifneq ($(BR2_TOOLCHAIN_EXTERNAL),y) endif endif @mkdir -p $(STAGING_DIR)/usr/include + @mkdir -p $(STAGING_DIR)/usr/bin $(BUILD_DIR)/.root: mkdir -p $(TARGET_DIR) diff --git a/configs/at91sam9260pf_defconfig b/configs/at91sam9260pf_defconfig index c668e0335..de513a681 100644 --- a/configs/at91sam9260pf_defconfig +++ b/configs/at91sam9260pf_defconfig @@ -58,7 +58,7 @@ BR2_SVN="svn co" BR2_ZCAT="gzip -d -c" BR2_BZCAT="bzcat" BR2_TAR_OPTIONS="" -BR2_DL_DIR="/usr/local/install/downloads" +BR2_DL_DIR="$(TOPDIR)/dl" # # Mirrors and Download locations diff --git a/package/argus/argus-3.0.0.rc.34-01-use-pcap-header.patch b/package/argus/argus-3.0.0.rc.34-01-use-pcap-header.patch new file mode 100644 index 000000000..2060c9363 --- /dev/null +++ b/package/argus/argus-3.0.0.rc.34-01-use-pcap-header.patch @@ -0,0 +1,27 @@ +Instead of hardcoding a wrong prototype for a libcap function, include +the correct header. + +Index: argus-3.0.0.rc.34/argus/ArgusSource.c +=================================================================== +--- argus-3.0.0.rc.34.orig/argus/ArgusSource.c 2010-02-09 22:57:21.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusSource.c 2010-02-09 22:57:29.000000000 +0100 +@@ -53,6 +53,7 @@ + #define PPP_HDRLEN 4 /* length of PPP header */ + #endif + ++#include <pcap.h> + + void ArgusGetInterfaceStatus (struct ArgusSourceStruct *src); + +Index: argus-3.0.0.rc.34/argus/ArgusSource.h +=================================================================== +--- argus-3.0.0.rc.34.orig/argus/ArgusSource.h 2010-02-09 22:57:35.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusSource.h 2010-02-09 22:57:54.000000000 +0100 +@@ -381,7 +381,6 @@ + + int ArgusCreatePktFromFddi(const struct fddi_header *, struct ether_header *, int); + +-extern char *bpf_image(struct bpf_insn *, int); + + + #else /* defined(ArgusSource) */ diff --git a/package/at/at-3.1.12-0007-include-config-h.patch b/package/at/at-3.1.12-0007-include-config-h.patch new file mode 100644 index 000000000..8afc502c8 --- /dev/null +++ b/package/at/at-3.1.12-0007-include-config-h.patch @@ -0,0 +1,16 @@ +Make sure to include config.h so that NEEDS_* macros are properly +taken into account. This was a problem for NEEDS_YYWRAP, which was set +to 1 in config.h, but the corresponding code wasn't compiled in. + +Index: at-3.1.12/parsetime.l +=================================================================== +--- at-3.1.12.orig/parsetime.l 2010-02-10 00:17:46.000000000 +0100 ++++ at-3.1.12/parsetime.l 2010-02-10 00:18:07.000000000 +0100 +@@ -4,6 +4,7 @@ + #include <time.h> + #include "y.tab.h" + #include "parsetime.h" ++#include "config.h" + + char *last_token = NULL; + char **my_argv; diff --git a/package/automake/automake.mk b/package/automake/automake.mk index 65db386c5..eb3b3755e 100644 --- a/package/automake/automake.mk +++ b/package/automake/automake.mk @@ -15,6 +15,12 @@ AUTOMAKE_DEPENDENCIES = autoconf microperl HOST_AUTOMAKE_DEPENDENCIES = host-autoconf +define GTK_DOC_M4_INSTALL + $(INSTALL) -m 0644 package/automake/gtk-doc.m4 $(STAGING_DIR)/usr/share/aclocal/ +endef + +HOST_AUTOMAKE_POST_INSTALL_HOOKS += GTK_DOC_M4_INSTALL + $(eval $(call AUTOTARGETS,package,automake)) $(eval $(call AUTOTARGETS,package,automake,host)) diff --git a/package/automake/gtk-doc.m4 b/package/automake/gtk-doc.m4 new file mode 100644 index 000000000..2cfa1e717 --- /dev/null +++ b/package/automake/gtk-doc.m4 @@ -0,0 +1,61 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + dnl check for tools we added during development + AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + if test x$enable_gtk_doc = xyes; then + ifelse([$1],[], + [PKG_CHECK_EXISTS([gtk-doc],, + AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], + [PKG_CHECK_EXISTS([gtk-doc >= $1],, + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) + fi + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/package/multimedia/alsa-lib/Config.in b/package/multimedia/alsa-lib/Config.in index 84629e66a..98b83139d 100644 --- a/package/multimedia/alsa-lib/Config.in +++ b/package/multimedia/alsa-lib/Config.in @@ -1,5 +1,9 @@ config BR2_PACKAGE_ALSA_LIB bool "alsa-lib" + # Temporary until + # https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4913 + # is fixed + select BR2_PACKAGE_ALSA_LIB_PCM help The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. diff --git a/package/multimedia/alsa-utils/Config.in b/package/multimedia/alsa-utils/Config.in index 54ab3f9cb..04057f480 100644 --- a/package/multimedia/alsa-utils/Config.in +++ b/package/multimedia/alsa-utils/Config.in @@ -24,6 +24,9 @@ config BR2_PACKAGE_ALSA_UTILS_ALSACTL config BR2_PACKAGE_ALSA_UTILS_ALSAMIXER bool "alsamixer" select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_NCURSES_TARGET_PANEL + select BR2_PACKAGE_NCURSES_TARGET_FORM + select BR2_PACKAGE_NCURSES_TARGET_MENU default y config BR2_PACKAGE_ALSA_UTILS_AMIDI diff --git a/package/multimedia/gst-plugins-good/Config.in b/package/multimedia/gst-plugins-good/Config.in index fdb6646ae..a326dc933 100644 --- a/package/multimedia/gst-plugins-good/Config.in +++ b/package/multimedia/gst-plugins-good/Config.in @@ -172,4 +172,8 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC bool "souphttpsrc (http client)" select BR2_PACKAGE_LIBSOUP +config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SPEEX + bool "speex" + select BR2_PACKAGE_SPEEX + endif diff --git a/package/multimedia/gst-plugins-good/gst-plugins-good.mk b/package/multimedia/gst-plugins-good/gst-plugins-good.mk index 7b6f02bea..19a53e6e2 100644 --- a/package/multimedia/gst-plugins-good/gst-plugins-good.mk +++ b/package/multimedia/gst-plugins-good/gst-plugins-good.mk @@ -318,4 +318,11 @@ else GST_PLUGINS_GOOD_CONF_OPT += --disable-soup endif +ifeq ($(BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SPEEX),y) +GST_PLUGINS_GOOD_CONF_OPT += --enable-speex +GST_PLUGINS_GOOD_DEPENDENCIES += speex +else +GST_PLUGINS_GOOD_CONF_OPT += --disable-speex +endif + $(eval $(call AUTOTARGETS,package/multimedia,gst-plugins-good)) diff --git a/package/rsync/rsync.mk b/package/rsync/rsync.mk index 1ed681219..e1bb28e0d 100644 --- a/package/rsync/rsync.mk +++ b/package/rsync/rsync.mk @@ -4,9 +4,9 @@ # ############################################################# -RSYNC_VERSION:=3.0.6 +RSYNC_VERSION:=3.0.7 RSYNC_SOURCE:=rsync-$(RSYNC_VERSION).tar.gz -RSYNC_SITE:=http://rsync.samba.org/ftp/rsync +RSYNC_SITE:=http://rsync.samba.org/ftp/rsync/src RSYNC_INSTALL_STAGING:=NO RSYNC_INSTALL_TARGET:=YES RSYNC_CONF_OPT=$(if $(BR2_ENABLE_DEBUG),--enable-debug,--disable-debug) diff --git a/package/tcl/tcl-strtod.patch b/package/tcl/tcl-8.4.19-strtod.patch index a9974546b..a9974546b 100644 --- a/package/tcl/tcl-strtod.patch +++ b/package/tcl/tcl-8.4.19-strtod.patch diff --git a/package/tcl/tcl-configure-syntax-error.patch b/package/tcl/tcl-configure-syntax-error.patch deleted file mode 100644 index b22e97449..000000000 --- a/package/tcl/tcl-configure-syntax-error.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ur tcl8.4.9/unix/configure tcl8.4.9-patched/unix/configure ---- tcl8.4.9/unix/configure 2004-12-06 18:23:45.000000000 -0600 -+++ tcl8.4.9-patched/unix/configure 2006-07-06 21:02:18.884355250 -0500 -@@ -2131,7 +2131,7 @@ - # results, and the version is kept in special file). - - if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then -- system=MP-RAS-`awk '{print }' /etc/.relid'` -+ system=MP-RAS-`awk '{print }' /etc/.relid` - fi - if test "`uname -s`" = "AIX" ; then - system=AIX-`uname -v`.`uname -r` -@@ -7322,7 +7322,7 @@ - # results, and the version is kept in special file). - - if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then -- system=MP-RAS-`awk '{print }' /etc/.relid'` -+ system=MP-RAS-`awk '{print }' /etc/.relid` - fi - if test "`uname -s`" = "AIX" ; then - system=AIX-`uname -v`.`uname -r` -diff -ur tcl8.4.9/unix/tcl.m4 tcl8.4.9-patched/unix/tcl.m4 ---- tcl8.4.9/unix/tcl.m4 2004-12-06 18:23:45.000000000 -0600 -+++ tcl8.4.9-patched/unix/tcl.m4 2006-07-06 21:02:35.653403250 -0500 -@@ -844,7 +844,7 @@ - # results, and the version is kept in special file). - - if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then -- system=MP-RAS-`awk '{print $3}' /etc/.relid'` -+ system=MP-RAS-`awk '{print $3}' /etc/.relid` - fi - if test "`uname -s`" = "AIX" ; then - system=AIX-`uname -v`.`uname -r` -@@ -2190,7 +2190,7 @@ - # results, and the version is kept in special file). - - if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then -- system=MP-RAS-`awk '{print $3}' /etc/.relid'` -+ system=MP-RAS-`awk '{print $3}' /etc/.relid` - fi - if test "`uname -s`" = "AIX" ; then - system=AIX-`uname -v`.`uname -r` diff --git a/package/tcl/tcl-strstr.patch b/package/tcl/tcl-strstr.patch deleted file mode 100644 index 3bed414cf..000000000 --- a/package/tcl/tcl-strstr.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- tcl8.4.9/compat/strstr.c 2002-01-26 03:10:08.000000000 +0200 -+++ tcl8.4.9/compat/strstr.c 2005-05-30 06:53:40.000000000 +0300 -@@ -33,6 +33,8 @@ - *---------------------------------------------------------------------- - */ - -+#include <unistd.h> -+ - char * - strstr(string, substring) - register char *string; /* String to search. */ diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk index a30cce294..edcc4417a 100644 --- a/package/tcl/tcl.mk +++ b/package/tcl/tcl.mk @@ -3,66 +3,26 @@ # TCL8.4 # ############################################################# -TCL_VERSION:=8.4.9 +TCL_VERSION:=8.4.19 TCL_SOURCE:=tcl$(TCL_VERSION)-src.tar.gz TCL_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/tcl -TCL_DIR:=$(BUILD_DIR)/tcl$(TCL_VERSION) - -$(DL_DIR)/$(TCL_SOURCE): - $(call DOWNLOAD,$(TCL_SITE),$(TCL_SOURCE)) - -$(TCL_DIR)/.source: $(DL_DIR)/$(TCL_SOURCE) - $(ZCAT) $(DL_DIR)/$(TCL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - toolchain/patch-kernel.sh $(TCL_DIR) package/tcl/ tcl\*.patch - touch $(TCL_DIR)/.source - -$(TCL_DIR)/.configured: $(TCL_DIR)/.source - (cd $(TCL_DIR)/unix; rm -f config.cache; \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/usr \ - --sysconfdir=/etc \ +TCL_SUBDIR = unix +TCL_CONF_OPT = \ --enable-shared \ --disable-symbols \ --disable-langinfo \ - --disable-framework \ - ) - touch $(TCL_DIR)/.configured + --disable-framework -$(TCL_DIR)/unix/libtcl8.4.so: $(TCL_DIR)/.configured - $(MAKE) CC=$(TARGET_CC) -C $(TCL_DIR)/unix - -$(TARGET_DIR)/usr/lib/libtcl8.4.so: $(TCL_DIR)/unix/libtcl8.4.so - $(MAKE) INSTALL_ROOT=$(TARGET_DIR) -C $(TCL_DIR)/unix install +define TCL_POST_INSTALL_CLEANUP -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libtcl8.4.so - rm -Rf $(TARGET_DIR)/usr/man -if [ "$(BR2_PACKAGE_TCL_DEL_ENCODINGS)" == "y" ]; then \ rm -Rf $(TARGET_DIR)/usr/lib/tcl8.4/encoding/*; \ fi -if [ "$(BR2_PACKAGE_TCL_SHLIB_ONLY)" == "y" ]; then \ rm -f $(TARGET_DIR)/usr/bin/tclsh8.4; \ fi +endef -tcl: $(TARGET_DIR)/usr/lib/libtcl8.4.so - -tcl-source: $(DL_DIR)/$(TCL_SOURCE) - -tcl-clean: - $(MAKE) prefix=$(TARGET_DIR)/usr -C $(TCL_DIR)/unix uninstall - -$(MAKE) -C $(TCL_DIR)/unix clean +TCL_POST_INSTALL_TARGET_HOOKS += TCL_POST_INSTALL_CLEANUP -tcl-dirclean: - rm -rf $(TCL_DIR) - -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_PACKAGE_TCL),y) -TARGETS+=tcl -endif +$(eval $(call AUTOTARGETS,package,tcl)) diff --git a/package/x11r7/xproto_trapproto/Config.in b/package/x11r7/xproto_trapproto/Config.in index 3d2868f6f..0f9c4708e 100644 --- a/package/x11r7/xproto_trapproto/Config.in +++ b/package/x11r7/xproto_trapproto/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_XPROTO_TRAPPROTO bool "trapproto" + select BR2_PACKAGE_XLIB_LIBXT help trapproto 3.4.3 X.Org Trap protocol headers diff --git a/package/x11r7/xproto_trapproto/xproto_trapproto.mk b/package/x11r7/xproto_trapproto/xproto_trapproto.mk index 5ef5fa590..29c435607 100644 --- a/package/x11r7/xproto_trapproto/xproto_trapproto.mk +++ b/package/x11r7/xproto_trapproto/xproto_trapproto.mk @@ -10,5 +10,6 @@ XPROTO_TRAPPROTO_SITE = http://xorg.freedesktop.org/releases/individual/proto XPROTO_TRAPPROTO_AUTORECONF = NO XPROTO_TRAPPROTO_INSTALL_STAGING = YES XPROTO_TRAPPROTO_INSTALL_TARGET = NO +XPROTO_TRAPPROTO_DEPENDENCIES = xlib_libXt $(eval $(call AUTOTARGETS,package/x11r7,xproto_trapproto)) diff --git a/scripts/get_linux_config.sh b/scripts/get_linux_config.sh index 1950e9d2e..5cd0e371f 100755 --- a/scripts/get_linux_config.sh +++ b/scripts/get_linux_config.sh @@ -35,6 +35,7 @@ function linux_version() KERNEL=`echo ${KCONFIG} | sed s/.*linux-2.6./linux-2.6./g -` THIS_MAJOR=${KERNEL:10:2} THIS_MINOR=${KERNEL:13} + THIS_MINOR=${THIS_MINOR:=0} } # Try to be careful... diff --git a/target/device/Atmel/at91bootstrap/at91bootstrap.mk b/target/device/Atmel/at91bootstrap/at91bootstrap.mk index 32ed3e2f6..f681fa981 100644 --- a/target/device/Atmel/at91bootstrap/at91bootstrap.mk +++ b/target/device/Atmel/at91bootstrap/at91bootstrap.mk @@ -68,7 +68,7 @@ else make MEMORY=$(AT91BOOTSTRAP_MEMORY) \ CROSS_COMPILE=$(TARGET_CROSS) \ -C $(AT91BOOTSTRAP_DIR) boot - make DESTDIR=$(BINARIES_DIR) -C $(AT91BOOTSTRAP_DIR) install || ± + make DESTDIR=$(BINARIES_DIR) -C $(AT91BOOTSTRAP_DIR) install || \ echo "Could not copy bootstrap to BINARIES_DIR" ifneq ($(BR2_TARGET_ATMEL_COPYTO),) make DESTDIR=$(BR2_TARGET_ATMEL_COPYTO) -C $(AT91BOOTSTRAP_DIR) install || \ diff --git a/toolchain/kernel-headers/Config.in b/toolchain/kernel-headers/Config.in index 713bc56e4..a0e21a8ff 100644 --- a/toolchain/kernel-headers/Config.in +++ b/toolchain/kernel-headers/Config.in @@ -71,6 +71,6 @@ config BR2_DEFAULT_KERNEL_HEADERS default "2.6.29.6" if BR2_KERNEL_HEADERS_2_6_29 default "2.6.30.10" if BR2_KERNEL_HEADERS_2_6_30 default "2.6.31.12" if BR2_KERNEL_HEADERS_2_6_31 - default "2.6.32.7" if BR2_KERNEL_HEADERS_2_6_32 + default "2.6.32.8" if BR2_KERNEL_HEADERS_2_6_32 default "2.6" if BR2_KERNEL_HEADERS_SNAP default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION diff --git a/toolchain/kernel-headers/linux-2.6.32.7-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.32.8-scsi-use-__uX-types-for-headers-exported-to-user-space.patch index ac9875dd7..ac9875dd7 100644 --- a/toolchain/kernel-headers/linux-2.6.32.7-scsi-use-__uX-types-for-headers-exported-to-user-space.patch +++ b/toolchain/kernel-headers/linux-2.6.32.8-scsi-use-__uX-types-for-headers-exported-to-user-space.patch diff --git a/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch b/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch new file mode 100644 index 000000000..526dfb178 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch @@ -0,0 +1,153 @@ +From d75ad2e129b3f22296cead3db53c784527deab60 Mon Sep 17 00:00:00 2001 +From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> +Date: Fri, 18 Sep 2009 14:07:31 +0000 +Subject: fix make {,install_}{,host}utils + +Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> +--- +diff --git a/extra/locale/programs/locale.c b/extra/locale/programs/locale.c +index 462a579..dfd2029 100644 +--- a/extra/locale/programs/locale.c ++++ b/extra/locale/programs/locale.c +@@ -10,10 +10,9 @@ + * + */ + +- ++#include <string.h> + #include <stdio.h> + #include <stdlib.h> +-#include <string.h> + #include <langinfo.h> + #include <unistd.h> + #ifdef __UCLIBC_HAS_GETOPT_LONG__ +diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c +index 290e680..3ce884d 100644 +--- a/libc/misc/wchar/wchar.c ++++ b/libc/misc/wchar/wchar.c +@@ -171,7 +171,6 @@ extern size_t _wchar_utf8sntowcs(wchar_t *__restrict pwc, size_t wn, + + extern size_t _wchar_wcsntoutf8s(char *__restrict s, size_t n, + const wchar_t **__restrict src, size_t wn) attribute_hidden; +- + #endif /* _LIBC */ + /**********************************************************************/ + #ifdef L_btowc +@@ -1201,45 +1200,6 @@ typedef struct { + int skip_invalid_input; /* To support iconv -c option. */ + } _UC_iconv_t; + +- +- +-#ifdef L_iconv +- +-#include <iconv.h> +-#include <string.h> +-#include <endian.h> +-#include <byteswap.h> +- +-#if (__BYTE_ORDER != __BIG_ENDIAN) && (__BYTE_ORDER != __LITTLE_ENDIAN) +-#error unsupported endianness for iconv +-#endif +- +-#ifndef __CTYPE_HAS_8_BIT_LOCALES +-#error currently iconv requires 8 bit locales +-#endif +-#ifndef __CTYPE_HAS_UTF_8_LOCALES +-#error currently iconv requires UTF-8 locales +-#endif +- +- +-enum { +- IC_WCHAR_T = 0xe0, +- IC_MULTIBYTE = 0xe0, +-#if __BYTE_ORDER == __BIG_ENDIAN +- IC_UCS_4 = 0xec, +- IC_UTF_32 = 0xe4, +- IC_UCS_2 = 0xe2, +- IC_UTF_16 = 0xea, +-#else +- IC_UCS_4 = 0xed, +- IC_UTF_32 = 0xe5, +- IC_UCS_2 = 0xe3, +- IC_UTF_16 = 0xeb, +-#endif +- IC_UTF_8 = 2, +- IC_ASCII = 1 +-}; +- + /* For the multibyte + * bit 0 means swap endian + * bit 1 means 2 byte +@@ -1247,8 +1207,13 @@ enum { + * + */ + ++#if defined L_iconv && defined _LIBC ++/* Used externally only by iconv utility */ + extern const unsigned char __iconv_codesets[]; + libc_hidden_proto(__iconv_codesets) ++#endif ++ ++#if defined L_iconv || defined L_iconv_main + const unsigned char __iconv_codesets[] = + "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */ + #if __BYTE_ORDER == __BIG_ENDIAN +@@ -1281,7 +1246,48 @@ const unsigned char __iconv_codesets[] = + "\x08\x02""UTF-8\x00" + "\x0b\x01""US-ASCII\x00" + "\x07\x01""ASCII"; /* Must be last! (special case to save a nul) */ ++#endif ++#if defined L_iconv && defined _LIBC + libc_hidden_data_def(__iconv_codesets) ++#endif ++ ++ ++#ifdef L_iconv ++ ++#include <iconv.h> ++#include <string.h> ++#include <endian.h> ++#include <byteswap.h> ++ ++#if (__BYTE_ORDER != __BIG_ENDIAN) && (__BYTE_ORDER != __LITTLE_ENDIAN) ++#error unsupported endianness for iconv ++#endif ++ ++#ifndef __CTYPE_HAS_8_BIT_LOCALES ++#error currently iconv requires 8 bit locales ++#endif ++#ifndef __CTYPE_HAS_UTF_8_LOCALES ++#error currently iconv requires UTF-8 locales ++#endif ++ ++ ++enum { ++ IC_WCHAR_T = 0xe0, ++ IC_MULTIBYTE = 0xe0, ++#if __BYTE_ORDER == __BIG_ENDIAN ++ IC_UCS_4 = 0xec, ++ IC_UTF_32 = 0xe4, ++ IC_UCS_2 = 0xe2, ++ IC_UTF_16 = 0xea, ++#else ++ IC_UCS_4 = 0xed, ++ IC_UTF_32 = 0xe5, ++ IC_UCS_2 = 0xe3, ++ IC_UTF_16 = 0xeb, ++#endif ++ IC_UTF_8 = 2, ++ IC_ASCII = 1 ++}; + + /* Experimentally off - libc_hidden_proto(strcasecmp) */ + +@@ -1575,6 +1581,4 @@ size_t weak_function iconv(iconv_t cd, char **__restrict inbuf, + } + return nrcount; + } +- + #endif +- +-- +cgit v0.8.2.1 |