TARGETS=
+DISABLE_NLS=
#############################################################
#
# EDIT this stuff to suit your system and preferences
EXTRA_GCC_CONFIG_OPTIONS=
#EXTRA_GCC_CONFIG_OPTIONS=--without-float
+# Uncomment the following if you don't want gettext support.
+DISABLE_NLS:=--disable-nls
+
#############################################################
#
# The list of stuff to build for the target filesystem
$(BASH_DIR)/.unpacked: $(DL_DIR)/$(BASH_SOURCE)
$(BASH_CAT) $(DL_DIR)/$(BASH_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ # This is broken when -lintl is added to LIBS
+ perl -i -p -e 's,LIBS_FOR_BUILD =.*,LIBS_FOR_BUILD =,g' \
+ $(BASH_DIR)/builtins/Makefile.in
touch $(BASH_DIR)/.unpacked
$(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--with-curses \
--enable-alias \
);
$(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked
(cd $(BISON_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
+ gt_cv_func_gnugettext2_libintl=yes \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(BISON_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--disable-rpath \
--disable-dependency-tracking \
);
# is not set when cross compiling
perl -i -p -e 's,.*UTILS_OPEN_MAX.*,#define UTILS_OPEN_MAX 1019,g' \
$(COREUTILS_DIR)/config.h
+ # This is undefined when crosscompiling...
+ perl -i -p -e 's,.*HAVE_PROC_UPTIME.*,#define HAVE_PROC_UPTIME 1,g' \
+ $(COREUTILS_DIR)/config.h
touch $(COREUTILS_DIR)/.configured
$(COREUTILS_DIR)/$(COREUTILS_BINARY): $(COREUTILS_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(DIFFUTILS_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--with-shared \
);
touch $(DROPBEAR_SSHD_DIR)/.configured
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(ED_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--enable-fsect-man5 \
);
touch $(FILE_DIR)/.configured
--localstatedir=/var/lib \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(FINDUTILS_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(FLEX_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(GAWK_DIR)/.configured
GCC_FOR_TARGET=$(TARGET_CROSS)gcc \
CXX_FOR_TARGET=$(TARGET_CROSS)g++ \
RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
- prefix=$(TARGET_DIR)/usr \
- exec_prefix=$(TARGET_DIR)/usr \
- bindir=$(TARGET_DIR)/usr/bin \
- sbindir=$(TARGET_DIR)/usr/sbin \
- libexecdir=$(TARGET_DIR)/usr/lib \
- datadir=$(TARGET_DIR)/usr/share \
- sysconfdir=$(TARGET_DIR)/etc \
- localstatedir=$(TARGET_DIR)/var \
- libdir=$(TARGET_DIR)/usr/lib \
- infodir=$(TARGET_DIR)/usr/info \
- mandir=$(TARGET_DIR)/usr/man \
- includedir=$(TARGET_DIR)/usr/include \
+ prefix=/usr \
+ exec_prefix=/usr \
+ bindir=/usr/bin \
+ sbindir=/usr/sbin \
+ libexecdir=/usr/lib \
+ datadir=/usr/share \
+ sysconfdir=/etc \
+ localstatedir=/var \
+ libdir=/usr/lib \
+ infodir=/usr/info \
+ mandir=/usr/man \
+ includedir=/usr/include \
DESTDIR=$(TARGET_DIR) install
rm -rf $(TARGET_DIR)/info $(TARGET_DIR)/man $(TARGET_DIR)/share/doc \
$(TARGET_DIR)/share/locale
$(GCC_DIR)/libstdc++-v3/src/Makefile.am $(GCC_DIR)/libstdc++-v3/src/Makefile.in;
perl -i -p -e "s,3\.0\.0,9.9.0,g;" $(GCC_DIR)/libstdc++-v3/acinclude.m4 \
$(GCC_DIR)/libstdc++-v3/aclocal.m4 $(GCC_DIR)/libstdc++-v3/configure;
- #
- # For now, we don't support locale-ified ctype (we will soon),
- # so bypass that problem for now...
- #
- perl -i -p -e "s,defined.*_GLIBCPP_USE_C99.*,1,g;" \
- $(GCC_DIR)/libstdc++-v3/config/locale/generic/c_locale.cc;
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_base.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_inline.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_noninline.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
touch $(GCC_DIR)/.g++_build_hacks
endif
--with-local-prefix=/usr/local \
--libdir=/usr/lib \
--disable-shared $(MULTILIB) \
- --enable-target-optspace --disable-nls \
+ --enable-target-optspace $(DISABLE_NLS) \
--with-gnu-ld --disable-__cxa_atexit \
--enable-languages=$(TARGET_LANGUAGES) \
$(EXTRA_GCC_CONFIG_OPTIONS) \
GCC_FOR_TARGET=$(TARGET_CROSS)gcc \
CXX_FOR_TARGET=$(TARGET_CROSS)g++ \
RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
- prefix=$(TARGET_DIR)/usr \
- exec_prefix=$(TARGET_DIR)/usr \
- bindir=$(TARGET_DIR)/usr/bin \
- sbindir=$(TARGET_DIR)/usr/sbin \
- libexecdir=$(TARGET_DIR)/usr/lib \
- datadir=$(TARGET_DIR)/usr/share \
- sysconfdir=$(TARGET_DIR)/etc \
- localstatedir=$(TARGET_DIR)/var \
- libdir=$(TARGET_DIR)/usr/lib \
- infodir=$(TARGET_DIR)/usr/info \
- mandir=$(TARGET_DIR)/usr/man \
- includedir=$(TARGET_DIR)/usr/include \
+ prefix=/usr \
+ exec_prefix=/usr \
+ bindir=/usr/bin \
+ sbindir=/usr/sbin \
+ libexecdir=/usr/lib \
+ datadir=/usr/share \
+ sysconfdir=/etc \
+ localstatedir=/var \
+ libdir=/usr/lib \
+ infodir=/usr/info \
+ mandir=/usr/man \
+ includedir=/usr/include \
DESTDIR=$(TARGET_DIR) install
(cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc)
(cd $(TARGET_DIR)/lib; ln -fs /usr/bin/cpp)
-mv $(TARGET_DIR)/lib/*.a $(TARGET_DIR)/usr/lib/
-mv $(TARGET_DIR)/lib/*.la $(TARGET_DIR)/usr/lib/
rm -f $(TARGET_DIR)/lib/libstdc++.so
- -(cd $(TARGET_DIR)/usr/lib; ln -fs /lib/libstdc++.so.5.0.2 libstdc++.so)
+ -(cd $(TARGET_DIR)/usr/lib; ln -fs /lib/libstdc++.so.5.0.5 libstdc++.so)
+ # A nasty hack to work around g++ adding -lgcc_eh to the link
+ -(cd $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/3.3.1/ ; ln -s libgcc.a libgcc_eh.a)
-(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) 2>&1 > /dev/null)
-(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) 2>&1 > /dev/null)
rm -f $(TARGET_DIR)/usr/lib/*.la*
$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE) $(GDB_PATCH)
gunzip -c $(DL_DIR)/$(GDB_SOURCE) | tar -C $(BUILD_DIR) -xvf -
cat $(GDB_PATCH) | patch -p1 -d $(GDB_DIR)
+ #-perl -i -p -e "s,\@INTLLIBS\@,-lintl,g;" $(GDB_DIR)/gdb/Makefile.in
touch $(GDB_DIR)/.unpacked
$(GDB_DIR)/.configured: $(GDB_DIR)/.unpacked
(cd $(GDB_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
+ ac_cv_type_uintptr_t=yes \
+ gt_cv_func_gettext_libintl=yes \
+ ac_cv_func_dcgettext=yes \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--mandir=/usr/man \
--infodir=/usr/info \
--includedir=$(STAGING_DIR)/include \
- --disable-nls \
+ $(DISABLE_NLS) \
--without-uiout --disable-gdbmi \
--disable-tui --disable-gdbtk --without-x \
--disable-sim --enable-gdbserver \
--mandir=/usr/man \
--infodir=/usr/info \
--includedir=$(STAGING_DIR)/include \
- --disable-nls \
+ $(DISABLE_NLS) \
--without-uiout --disable-gdbmi \
--disable-tui --disable-gdbtk --without-x \
--without-included-gettext \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--disable-perl-regexp \
--without-included-regex \
);
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
$(GZIP_LARGEFILE) \
);
touch $(GZIP_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--enable-shared \
);
touch $(LIBGLIB12_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(LIBTOOL_DIR)/.configured
--localstatedir=/tmp \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(LINKS_DIR)/.configured
--localstatedir=/tmp \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--disable-timesync \
);
perl -i -p -e "s/-lnsl//;" $(LRZSZ_DIR)/src/Makefile
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(GNUMAKE_DIR)/.configured
--disable-elf-shlibs --disable-swapfs \
--disable-debugfs --disable-imager \
--disable-resizer --disable-fsck \
- --without-catgets --disable-nls \
+ --without-catgets $(DISABLE_NLS) \
);
touch $(MKE2FS_DIR)/.configured
#
#############################################################
# Copyright (C) 2002 by Ken Restivo <ken@246gt.com>
-# $Id: ncurses.mk,v 1.26 2003/08/22 12:49:54 andersen Exp $
+# $Id: ncurses.mk,v 1.27 2003/09/03 07:18:14 mjn3 Exp $
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
--with-default-terminfo-dir=/usr/share/terminfo \
--libdir=$(STAGING_DIR)/lib \
--with-shared --without-cxx --without-cxx-binding \
- --without-ada --without-progs --disable-nls \
+ --without-ada --without-progs $(DISABLE_NLS) \
--without-profile --without-debug --disable-rpath \
--enable-echo --enable-const --enable-overwrite \
);
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(NEWT_DIR)/.configured;
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--with-shared \
);
touch $(NTP_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
--includedir=$(STAGING_DIR)/include \
--disable-lastlog --disable-utmp \
--disable-utmpx --disable-wtmp --disable-wtmpx \
- --disable-nls --without-x \
+ --without-x $(DISABLE_NLS) \
);
touch $(OPENSSH_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(GNUPATCH_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(PCIUTILS_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(PPPD_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(SED_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
$(SOCAT_WORKDIR)/socat: $(SOCAT_WORKDIR)/Makefile
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(STRACE_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
touch $(GNUTAR_DIR)/.configured
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--with-slang --without-x --without-ssl \
);
touch $(TN5250_DIR)/.configured
--infodir=$(STAGING_DIR)/info \
--with-local-prefix=$(STAGING_DIR)/usr/local \
--oldincludedir=$(STAGING_DIR)/include $(MULTILIB) \
- --enable-target-optspace --disable-nls --with-gnu-ld \
+ --enable-target-optspace $(DISABLE_NLS) --with-gnu-ld \
--disable-shared --enable-languages=c --disable-__cxa_atexit \
$(EXTRA_GCC_CONFIG_OPTIONS) --program-prefix=$(ARCH)-uclibc-);
touch $(GCC_BUILD_DIR1)/.configured
perl -i -p -e 's,^LD_BIN.*,LD_BIN=$(STAGING_DIR)/bin/$(ARCH)-uclibc-ld,g' \
$(UCLIBC_DIR)/extra/gcc-uClibc/Makefile
$(MAKE) -C $(UCLIBC_DIR) oldconfig
- $(MAKE) -C $(UCLIBC_DIR) headers install_dev;
+ $(MAKE) -C $(UCLIBC_DIR) headers
+ zcat $(DL_DIR)/uClibc-locale-030818.tgz | tar -C $(UCLIBC_DIR)/extra/locale -xvf -
+ $(MAKE) -C $(UCLIBC_DIR)/extra/locale pregen
+ $(MAKE) -C $(UCLIBC_DIR) install_dev;
touch $(UCLIBC_DIR)/.configured
$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured
$(GCC_DIR)/libstdc++-v3/src/Makefile.am $(GCC_DIR)/libstdc++-v3/src/Makefile.in;
perl -i -p -e "s,3\.0\.0,9.9.0,g;" $(GCC_DIR)/libstdc++-v3/acinclude.m4 \
$(GCC_DIR)/libstdc++-v3/aclocal.m4 $(GCC_DIR)/libstdc++-v3/configure;
- #
- # For now, we don't support locale-ified ctype (we will soon),
- # so bypass that problem for now...
- #
- perl -i -p -e "s,defined.*_GLIBCPP_USE_C99.*,1,g;" \
- $(GCC_DIR)/libstdc++-v3/config/locale/generic/c_locale.cc;
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/ctype_base.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/ctype_inline.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/
- cp $(GCC_DIR)/libstdc++-v3/config/os/generic/ctype_noninline.h \
- $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/
touch $(GCC_DIR)/.g++_build_hacks
$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.g++_build_hacks
--with-gxx-include-dir=$(STAGING_DIR)/include/c++ \
--oldincludedir=$(STAGING_DIR)/include \
--enable-shared $(MULTILIB) \
- --enable-target-optspace --disable-nls \
+ --enable-target-optspace $(DISABLE_NLS) \
--with-gnu-ld --disable-__cxa_atexit \
--enable-languages=$(TARGET_LANGUAGES) \
$(EXTRA_GCC_CONFIG_OPTIONS) \
--infodir=$(STAGING_DIR)/info \
--with-local-prefix=$(STAGING_DIR)/usr/local \
--oldincludedir=$(STAGING_DIR)/include $(MULTILIB) \
- --enable-target-optspace --disable-nls --with-gnu-ld \
+ --enable-target-optspace $(DISABLE_NLS) --with-gnu-ld \
--disable-shared --enable-languages=c --disable-__cxa_atexit \
$(EXTRA_GCC_CONFIG_OPTIONS) --program-prefix=$(ARCH)-uclibc-);
touch $(GCC_BUILD_DIR1)/.configured
--with-gxx-include-dir=$(STAGING_DIR)/include/c++ \
--oldincludedir=$(STAGING_DIR)/include \
--enable-shared $(MULTILIB) \
- --enable-target-optspace --disable-nls \
+ --enable-target-optspace $(DISABLE_NLS) \
--with-gnu-ld --disable-__cxa_atexit \
--enable-languages=$(TARGET_LANGUAGES) \
$(EXTRA_GCC_CONFIG_OPTIONS) \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
);
perl -pi -e "s,^INSTALLSUID=.*,INSTALLSUID=\\$$\(INSTALL\) -m \\$$\(BINMODE\)," \
$(UTIL-LINUX_DIR)/MCONFIG
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-nls \
+ $(DISABLE_NLS) \
--without-uiout --disable-valgrindmi \
--disable-tui --disable-valgrindtk \
--without-x --without-included-gettext \
#############################################################
#
WTOOLS_SOURCE_URL=http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux
-WTOOLS_SOURCE=wireless_tools.26.pre7.tar.gz
+WTOOLS_SOURCE=wireless_tools.26.tar.gz
WTOOLS_BUILD_DIR=$(BUILD_DIR)/wireless_tools.26
$(DL_DIR)/$(WTOOLS_SOURCE):
--- /dev/null
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-08-31 10:55:17.000000000 -0500
+@@ -195,12 +195,15 @@
+ "LC_TIME",
+ "LC_COLLATE",
+ "LC_MONETARY",
+- "LC_MESSAGES",
++ "LC_MESSAGES"
++#if _GLIBCPP_NUM_CATEGORIES != 0
++ ,
+ "LC_PAPER",
+ "LC_NAME",
+ "LC_ADDRESS",
+ "LC_TELEPHONE",
+ "LC_MEASUREMENT",
+ "LC_IDENTIFICATION"
++#endif
+ };
+ } // namespace std
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h 2003-01-23 12:56:16.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h 2003-08-31 10:55:17.000000000 -0500
+@@ -46,6 +46,10 @@
+ #define _GLIBCPP_C_LOCALE_GNU 1
+
+ #define _GLIBCPP_NUM_CATEGORIES 6
++#ifdef __UCLIBC__
++#undef _GLIBCPP_NUM_CATEGORIES
++#define _GLIBCPP_NUM_CATEGORIES 0
++#endif
+
+ #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ namespace __gnu_cxx
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2002-09-05 02:46:16.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2003-08-31 10:55:17.000000000 -0500
+@@ -48,7 +48,9 @@
+ extern "C" __typeof(towlower_l) __towlower_l;
+ extern "C" __typeof(towupper_l) __towupper_l;
+ extern "C" __typeof(wcscoll_l) __wcscoll_l;
++#ifdef HAVE_WCSFTIME
+ extern "C" __typeof(wcsftime_l) __wcsftime_l;
++#endif
+ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
+ extern "C" __typeof(wctype_l) __wctype_l;
+ extern "C" __typeof(newlocale) __newlocale;
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-08-31 10:55:17.000000000 -0500
+@@ -36,6 +36,13 @@
+ #include <locale>
+ #include <bits/c++locale_internal.h>
+
++#ifdef __UCLIBC__
++extern "C" char *__dcgettext(const char *domainname,
++ const char *msgid, int category);
++#undef gettext
++#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
++#endif
++
+ namespace std
+ {
+ // Specializations.
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h 2003-01-06 16:20:03.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h 2003-08-31 10:55:17.000000000 -0500
+@@ -33,6 +33,12 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#ifdef __UCLIBC__
++extern "C" char *__textdomain(const char *domainname);
++extern "C" char *__bindtextdomain(const char *domainname,
++ const char *dirname);
++#endif
++
+ // Non-virtual member functions.
+ template<typename _CharT>
+ messages<_CharT>::messages(size_t __refs)
+@@ -61,7 +67,11 @@
+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
+ const char* __dir) const
+ {
++#ifdef __UCLIBC__
++ __bindtextdomain(__s.c_str(), __dir);
++#else
+ bindtextdomain(__s.c_str(), __dir);
++#endif
+ return this->do_open(__s, __loc);
+ }
+
+@@ -83,7 +93,11 @@
+ {
+ // No error checking is done, assume the catalog exists and can
+ // be used.
++#ifdef __UCLIBC__
++ __textdomain(__s.c_str());
++#else
+ textdomain(__s.c_str());
++#endif
+ return 0;
+ }
+
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-08-31 10:55:18.000000000 -0500
+@@ -86,8 +86,13 @@
+ else
+ {
+ // Named locale.
++#ifdef __UCLIBC__
++ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->decimal_point_wc }).__w);
++ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->thousands_sep_wc }).__w);
++#else
+ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
+ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
++#endif
+ if (_M_thousands_sep == L'\0')
+ _M_grouping = "";
+ else
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc 2003-02-28 00:09:52.000000000 -0600
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc 2003-08-31 10:55:18.000000000 -0500
+@@ -183,6 +183,7 @@
+ }
+ }
+
++#ifndef __UCLIBC__
+ #ifdef _GLIBCPP_USE_WCHAR_T
+ template<>
+ void
+@@ -328,4 +329,5 @@
+ }
+ }
+ #endif
++#endif
+ }
+diff -urN gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+--- gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2002-09-09 15:26:41.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2003-08-31 10:55:18.000000000 -0500
+@@ -36,11 +36,18 @@
+ struct ctype_base
+ {
+ // Non-standard typedefs.
++#ifdef __UCLIBC__
++ typedef const __ctype_touplow_t* __to_type;
++ // NB: Offsets into ctype<char>::_M_table force a particular size
++ // on the mask type. Because of this, we don't use an enum.
++ typedef __ctype_mask_t mask;
++#else
+ typedef const int* __to_type;
+-
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned short mask;
++#endif
++
+ static const mask upper = _ISupper;
+ static const mask lower = _ISlower;
+ static const mask alpha = _ISalpha;
+diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h 2003-04-18 05:08:05.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h 2003-08-31 10:55:18.000000000 -0500
+@@ -101,9 +101,11 @@
+ using ::labs;
+ using ::ldiv;
+ using ::malloc;
++#if _GLIBCPP_USE_WCHAR_T
+ using ::mblen;
+ using ::mbstowcs;
+ using ::mbtowc;
++#endif
+ using ::qsort;
+ using ::rand;
+ using ::realloc;
+@@ -112,8 +114,10 @@
+ using ::strtol;
+ using ::strtoul;
+ using ::system;
++#if _GLIBCPP_USE_WCHAR_T
+ using ::wcstombs;
+ using ::wctomb;
++#endif
+
+ inline long
+ abs(long __i) { return labs(__i); }
+diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h 2003-04-18 05:08:05.000000000 -0500
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h 2003-08-31 10:55:18.000000000 -0500
+@@ -165,7 +165,9 @@
+ using ::wcscoll;
+ using ::wcscpy;
+ using ::wcscspn;
++#ifdef HAVE_WCSFTIME
+ using ::wcsftime;
++#endif
+ using ::wcslen;
+ using ::wcsncat;
+ using ::wcsncmp;