From 0e956fc164b97347279045e60033e6f2f176df3b Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Wed, 3 Sep 2003 07:18:18 +0000 Subject: [PATCH] Add support for enabling use of libintl. Add support for libstd++ in full locale mode, and remove the need for config hacks when using uClibc stub locale support. TODO -- gdb intl support is still broken. uClibc should auto-download the pregenerated locale data --- Makefile | 4 + make/bash.mk | 5 +- make/bison.mk | 3 +- make/coreutils.mk | 5 +- make/diffutils.mk | 2 +- make/dropbear_sshd.mk | 2 +- make/ed.mk | 2 +- make/file.mk | 2 +- make/findutils.mk | 2 +- make/flex.mk | 2 +- make/gawk.mk | 2 +- make/gcc_target.mk | 66 ++++----- make/gdb.mk | 6 +- make/gdbserver.mk | 2 +- make/grep.mk | 2 +- make/gzip.mk | 2 +- make/libglib12.mk | 2 +- make/libtool.mk | 2 +- make/links.mk | 2 +- make/lrzsz.mk | 2 +- make/make.mk | 2 +- make/mke2fs.mk | 2 +- make/ncurses.mk | 4 +- make/newt.mk | 2 +- make/ntp.mk | 2 +- make/openssh.mk | 3 +- make/patch.mk | 2 +- make/pciutils.mk | 2 +- make/pppd.mk | 2 +- make/sed.mk | 2 +- make/socat.mk | 2 +- make/strace.mk | 2 +- make/tar.mk | 2 +- make/tn5250.mk | 2 +- make/uclibc_toolchain.mk | 21 +-- make/uclibc_toolchain_2_95.mk | 4 +- make/util-linux.mk | 2 +- make/valgrind.mk | 2 +- make/wtools.mk | 2 +- sources/gcc-810-libstd++-locale.patch | 200 ++++++++++++++++++++++++++ 40 files changed, 287 insertions(+), 92 deletions(-) create mode 100644 sources/gcc-810-libstd++-locale.patch diff --git a/Makefile b/Makefile index 87dc0af62e..521debf4ff 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ TARGETS= +DISABLE_NLS= ############################################################# # # EDIT this stuff to suit your system and preferences @@ -69,6 +70,9 @@ OPTIMIZE_FOR_CPU=$(ARCH) 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 diff --git a/make/bash.mk b/make/bash.mk index 23370612a5..21a31d0601 100644 --- a/make/bash.mk +++ b/make/bash.mk @@ -17,6 +17,9 @@ bash-source: $(DL_DIR)/$(BASH_SOURCE) $(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 @@ -38,7 +41,7 @@ $(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --with-curses \ --enable-alias \ ); diff --git a/make/bison.mk b/make/bison.mk index 2803cdccb0..f1dbf46074 100644 --- a/make/bison.mk +++ b/make/bison.mk @@ -22,6 +22,7 @@ $(BISON_DIR)/.unpacked: $(DL_DIR)/$(BISON_SOURCE) $(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) \ @@ -36,7 +37,7 @@ $(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(BISON_DIR)/.configured diff --git a/make/coreutils.mk b/make/coreutils.mk index e3e7fa39aa..0d1d723d97 100644 --- a/make/coreutils.mk +++ b/make/coreutils.mk @@ -38,7 +38,7 @@ $(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --disable-rpath \ --disable-dependency-tracking \ ); @@ -46,6 +46,9 @@ $(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked # 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 diff --git a/make/diffutils.mk b/make/diffutils.mk index 2778d60607..6ef49da666 100644 --- a/make/diffutils.mk +++ b/make/diffutils.mk @@ -36,7 +36,7 @@ $(DIFFUTILS_DIR)/.configured: $(DIFFUTILS_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(DIFFUTILS_DIR)/.configured diff --git a/make/dropbear_sshd.mk b/make/dropbear_sshd.mk index 61a50fe90c..eb91235281 100644 --- a/make/dropbear_sshd.mk +++ b/make/dropbear_sshd.mk @@ -38,7 +38,7 @@ $(DROPBEAR_SSHD_DIR)/.configured: $(DROPBEAR_SSHD_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --with-shared \ ); touch $(DROPBEAR_SSHD_DIR)/.configured diff --git a/make/ed.mk b/make/ed.mk index f1108e34d2..c2754683c9 100644 --- a/make/ed.mk +++ b/make/ed.mk @@ -33,7 +33,7 @@ $(ED_DIR)/.configured: $(ED_DIR)/.unpacked --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(ED_DIR)/.configured diff --git a/make/file.mk b/make/file.mk index 5556c5fb20..eea380ae2e 100644 --- a/make/file.mk +++ b/make/file.mk @@ -40,7 +40,7 @@ $(FILE_DIR)/.configured: $(FILE_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --enable-fsect-man5 \ ); touch $(FILE_DIR)/.configured diff --git a/make/findutils.mk b/make/findutils.mk index 5454e9ddb9..518b5771f9 100644 --- a/make/findutils.mk +++ b/make/findutils.mk @@ -38,7 +38,7 @@ $(FINDUTILS_DIR)/.configured: $(FINDUTILS_DIR)/.unpacked --localstatedir=/var/lib \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(FINDUTILS_DIR)/.configured diff --git a/make/flex.mk b/make/flex.mk index 0edd074d10..89855d76cc 100644 --- a/make/flex.mk +++ b/make/flex.mk @@ -41,7 +41,7 @@ $(FLEX_DIR)/.configured: $(FLEX_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(FLEX_DIR)/.configured diff --git a/make/gawk.mk b/make/gawk.mk index a01dcb11f7..da60945cfc 100644 --- a/make/gawk.mk +++ b/make/gawk.mk @@ -37,7 +37,7 @@ $(GAWK_DIR)/.configured: $(GAWK_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(GAWK_DIR)/.configured diff --git a/make/gcc_target.mk b/make/gcc_target.mk index 34bda8e52a..3377b66459 100644 --- a/make/gcc_target.mk +++ b/make/gcc_target.mk @@ -148,18 +148,18 @@ $(TARGET_DIR)/usr/bin/ld: $(BINUTILS_DIR2)/binutils/objdump 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 @@ -275,18 +275,6 @@ $(GCC_DIR)/.g++_build_hacks: $(GCC_DIR)/.gcc_build_hacks $(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 @@ -340,7 +328,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc_build_hacks --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) \ @@ -376,18 +364,18 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled 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) @@ -401,7 +389,9 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled -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* diff --git a/make/gdb.mk b/make/gdb.mk index e696b65ec8..7bff3399ff 100644 --- a/make/gdb.mk +++ b/make/gdb.mk @@ -15,11 +15,15 @@ $(DL_DIR)/$(GDB_SOURCE): $(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) \ @@ -34,7 +38,7 @@ $(GDB_DIR)/.configured: $(GDB_DIR)/.unpacked --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 \ diff --git a/make/gdbserver.mk b/make/gdbserver.mk index 103184cefc..1ab44a2367 100644 --- a/make/gdbserver.mk +++ b/make/gdbserver.mk @@ -27,7 +27,7 @@ $(GDB_WDIR)/.configured: $(GDB_DIR)/.unpacked --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 \ diff --git a/make/grep.mk b/make/grep.mk index eadf0df4b5..7c205833c4 100644 --- a/make/grep.mk +++ b/make/grep.mk @@ -36,7 +36,7 @@ $(GNUGREP_DIR)/.configured: $(GNUGREP_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --disable-perl-regexp \ --without-included-regex \ ); diff --git a/make/gzip.mk b/make/gzip.mk index b1aba9a2f0..8098dd9333 100644 --- a/make/gzip.mk +++ b/make/gzip.mk @@ -40,7 +40,7 @@ $(GZIP_DIR)/.configured: $(GZIP_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ $(GZIP_LARGEFILE) \ ); touch $(GZIP_DIR)/.configured diff --git a/make/libglib12.mk b/make/libglib12.mk index fee7f3b288..75bb38e7af 100644 --- a/make/libglib12.mk +++ b/make/libglib12.mk @@ -35,7 +35,7 @@ $(LIBGLIB12_DIR)/.configured: $(LIBGLIB12_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --enable-shared \ ); touch $(LIBGLIB12_DIR)/.configured diff --git a/make/libtool.mk b/make/libtool.mk index e924da9ea2..308d4338c6 100644 --- a/make/libtool.mk +++ b/make/libtool.mk @@ -36,7 +36,7 @@ $(LIBTOOL_DIR)/.configured: $(LIBTOOL_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(LIBTOOL_DIR)/.configured diff --git a/make/links.mk b/make/links.mk index a54e4b0af6..732fd83396 100644 --- a/make/links.mk +++ b/make/links.mk @@ -33,7 +33,7 @@ $(LINKS_DIR)/.configured: $(LINKS_DIR)/.unpacked --localstatedir=/tmp \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(LINKS_DIR)/.configured diff --git a/make/lrzsz.mk b/make/lrzsz.mk index 3fedaa90c0..493dbfc2f1 100644 --- a/make/lrzsz.mk +++ b/make/lrzsz.mk @@ -51,7 +51,7 @@ $(LRZSZ_DIR)/.configured: $(LRZSZ_DIR)/.unpacked --localstatedir=/tmp \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --disable-timesync \ ); perl -i -p -e "s/-lnsl//;" $(LRZSZ_DIR)/src/Makefile diff --git a/make/make.mk b/make/make.mk index fdf3dc1be0..353d4a09c5 100644 --- a/make/make.mk +++ b/make/make.mk @@ -36,7 +36,7 @@ $(GNUMAKE_DIR)/.configured: $(GNUMAKE_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(GNUMAKE_DIR)/.configured diff --git a/make/mke2fs.mk b/make/mke2fs.mk index f6b169717a..6168cfaed4 100644 --- a/make/mke2fs.mk +++ b/make/mke2fs.mk @@ -41,7 +41,7 @@ $(MKE2FS_DIR)/.configured: $(MKE2FS_DIR)/.unpacked --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 diff --git a/make/ncurses.mk b/make/ncurses.mk index 45c009f9ee..c6cd23c774 100644 --- a/make/ncurses.mk +++ b/make/ncurses.mk @@ -5,7 +5,7 @@ # ############################################################# # Copyright (C) 2002 by Ken Restivo -# $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 @@ -58,7 +58,7 @@ $(NCURSES_DIR)/.configured: $(NCURSES_DIR)/.dist --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 \ ); diff --git a/make/newt.mk b/make/newt.mk index 04c5c8b7c8..9812007d93 100644 --- a/make/newt.mk +++ b/make/newt.mk @@ -38,7 +38,7 @@ $(NEWT_DIR)/.configured: $(NEWT_DIR)/.source --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(NEWT_DIR)/.configured; diff --git a/make/ntp.mk b/make/ntp.mk index d949d30662..f691b66789 100644 --- a/make/ntp.mk +++ b/make/ntp.mk @@ -39,7 +39,7 @@ $(NTP_DIR)/.configured: $(NTP_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --with-shared \ ); touch $(NTP_DIR)/.configured diff --git a/make/openssh.mk b/make/openssh.mk index 91fc741a37..73a1b0dd66 100644 --- a/make/openssh.mk +++ b/make/openssh.mk @@ -35,11 +35,10 @@ $(OPENSSH_DIR)/.configured: $(OPENSSH_DIR)/.unpacked --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 diff --git a/make/patch.mk b/make/patch.mk index 90ed1ad9d8..17fe5176f0 100644 --- a/make/patch.mk +++ b/make/patch.mk @@ -36,7 +36,7 @@ $(GNUPATCH_DIR)/.configured: $(GNUPATCH_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(GNUPATCH_DIR)/.configured diff --git a/make/pciutils.mk b/make/pciutils.mk index ede63c12af..f8608d8fce 100644 --- a/make/pciutils.mk +++ b/make/pciutils.mk @@ -43,7 +43,7 @@ $(PCIUTILS_DIR)/.configured: $(PCIUTILS_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(PCIUTILS_DIR)/.configured diff --git a/make/pppd.mk b/make/pppd.mk index 6622543a9f..da7684070c 100644 --- a/make/pppd.mk +++ b/make/pppd.mk @@ -41,7 +41,7 @@ $(PPPD_DIR)/.configured: $(PPPD_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(PPPD_DIR)/.configured diff --git a/make/sed.mk b/make/sed.mk index 3342fb4067..f7b3a137b8 100644 --- a/make/sed.mk +++ b/make/sed.mk @@ -36,7 +36,7 @@ $(SED_DIR)/.configured: $(SED_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(SED_DIR)/.configured diff --git a/make/socat.mk b/make/socat.mk index 35bc6326f5..ed44803e20 100644 --- a/make/socat.mk +++ b/make/socat.mk @@ -42,7 +42,7 @@ $(SOCAT_WORKDIR)/Makefile: $(SOCAT_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); $(SOCAT_WORKDIR)/socat: $(SOCAT_WORKDIR)/Makefile diff --git a/make/strace.mk b/make/strace.mk index 50de74d93d..36be73a1af 100644 --- a/make/strace.mk +++ b/make/strace.mk @@ -35,7 +35,7 @@ $(STRACE_DIR)/.configured: $(STRACE_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(STRACE_DIR)/.configured diff --git a/make/tar.mk b/make/tar.mk index 9fc76031ee..0e1ea04eb8 100644 --- a/make/tar.mk +++ b/make/tar.mk @@ -36,7 +36,7 @@ $(GNUTAR_DIR)/.configured: $(GNUTAR_DIR)/.unpacked --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ ); touch $(GNUTAR_DIR)/.configured diff --git a/make/tn5250.mk b/make/tn5250.mk index d360b0ca31..083630f6f9 100644 --- a/make/tn5250.mk +++ b/make/tn5250.mk @@ -26,7 +26,7 @@ $(TN5250_DIR)/.configured: $(TN5250_DIR)/.dist --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ - --disable-nls \ + $(DISABLE_NLS) \ --with-slang --without-x --without-ssl \ ); touch $(TN5250_DIR)/.configured diff --git a/make/uclibc_toolchain.mk b/make/uclibc_toolchain.mk index cdc5321a77..a69e5e3133 100644 --- a/make/uclibc_toolchain.mk +++ b/make/uclibc_toolchain.mk @@ -271,7 +271,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.gcc_build_hacks --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 @@ -338,7 +338,10 @@ $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked $(BUILD_DIR)/linux/.configure 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 @@ -390,18 +393,6 @@ $(GCC_DIR)/.g++_build_hacks: $(GCC_DIR)/.patched $(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 @@ -428,7 +419,7 @@ $(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) \ diff --git a/make/uclibc_toolchain_2_95.mk b/make/uclibc_toolchain_2_95.mk index adf7be89d9..2f9c719efd 100644 --- a/make/uclibc_toolchain_2_95.mk +++ b/make/uclibc_toolchain_2_95.mk @@ -295,7 +295,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.gcc_build_hacks --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 @@ -488,7 +488,7 @@ $(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) \ diff --git a/make/util-linux.mk b/make/util-linux.mk index bca50e9d9d..90d854a0b1 100644 --- a/make/util-linux.mk +++ b/make/util-linux.mk @@ -32,7 +32,7 @@ $(UTIL-LINUX_DIR)/.configured: $(UTIL-LINUX_DIR)/.unpacked --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 diff --git a/make/valgrind.mk b/make/valgrind.mk index bd92ec4e5d..75f5782318 100644 --- a/make/valgrind.mk +++ b/make/valgrind.mk @@ -37,7 +37,7 @@ $(VALGRIND_DIR)/.configured: $(VALGRIND_DIR)/.patched --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 \ diff --git a/make/wtools.mk b/make/wtools.mk index 3c1ca0bc35..5e27721af0 100644 --- a/make/wtools.mk +++ b/make/wtools.mk @@ -5,7 +5,7 @@ ############################################################# # 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): diff --git a/sources/gcc-810-libstd++-locale.patch b/sources/gcc-810-libstd++-locale.patch new file mode 100644 index 0000000000..ab476a6934 --- /dev/null +++ b/sources/gcc-810-libstd++-locale.patch @@ -0,0 +1,200 @@ +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 + #include + ++#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 + ++#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 + messages<_CharT>::messages(size_t __refs) +@@ -61,7 +67,11 @@ + messages<_CharT>::open(const basic_string& __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(((union { const char *__s; unsigned int __w; }){ __s: __cloc->decimal_point_wc }).__w); ++ _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __cloc->thousands_sep_wc }).__w); ++#else + _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); + _M_thousands_sep = static_cast(((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::_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::_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; -- 2.30.2