From 41921bd9290b32661c1c38c9a6c67fe0ec484464 Mon Sep 17 00:00:00 2001 From: ms Date: Fri, 27 Oct 2006 15:08:59 +0000 Subject: [PATCH] uClibc-0.29.8 funktioniert mit GCC 4.0.3 git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@329 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/uClibc/buildroot.config-i586 | 335 ++ config/uClibc/buildroot.config.cmd | 183 + .../uClibc/uClibc.config-i586 | 85 +- lfs/gcc | 2 +- lfs/openldap | 2 +- lfs/uClibc | 35 +- make.sh | 6 +- src/uClibc/Makefile | 6 +- src/uClibc/make/binutils.mk | 2 +- src/uClibc/make/gcc.mk | 569 +-- src/uClibc/make/uclibc.mk | 20 +- src/uClibc/sources/binutils-001-debian.patch | 161 - src/uClibc/sources/binutils-002-uclibc.patch | 240 -- .../binutils/2.16.1/100-uclibc-conf.patch | 586 --- .../2.16.1/110-uclibc-libtool-conf.patch | 218 -- .../2.16.1/300-001_ld_makefile_patch.patch | 52 - .../2.16.1/300-006_better_file_error.patch | 43 - .../300-012_check_ldrunpath_length.patch | 47 - .../2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch | 26 - .../2.16.1/702-binutils-skip-comments.patch | 93 - .../binutils/2.16.1/sh-flags-off-by-one.patch | 21 - src/uClibc/sources/codesets.txt | 2 - .../sources/gcc-001-disable-mathf.patch | 117 - .../sources/gcc-006-include-search.patch | 18 - .../sources/gcc-810-libstd++-locale.patch | 283 -- src/uClibc/sources/gcc-830-nonhidden.patch | 14 - src/uClibc/sources/gcc-840-abi_check.patch | 14 - .../sources/gcc/4.0.3/100-uclibc-conf.patch | 553 --- .../sources/gcc/4.0.3/200-uclibc-locale.patch | 3237 ----------------- .../sources/gcc/4.0.3/300-libstdc++-pic.patch | 45 - .../gcc/4.0.3/301-missing-execinfo_h.patch | 11 - .../sources/gcc/4.0.3/302-c99-snprintf.patch | 11 - .../gcc/4.0.3/303-c99-complex-ugly-hack.patch | 12 - .../sources/gcc/4.0.3/304-index_macro.patch | 24 - .../4.0.3/602-sdk-libstdc++-includes.patch | 22 - .../sources/gcc/4.0.3/800-arm-bigendian.patch | 67 - src/uClibc/sources/i386-gcc-soft-float.patch | 61 - src/uClibc/sources/patch-kernel.sh | 54 - tools/make-functions | 26 +- 39 files changed, 933 insertions(+), 6370 deletions(-) create mode 100644 config/uClibc/buildroot.config-i586 create mode 100644 config/uClibc/buildroot.config.cmd rename src/uClibc/sources/uClibc.config => config/uClibc/uClibc.config-i586 (66%) delete mode 100644 src/uClibc/sources/binutils-001-debian.patch delete mode 100644 src/uClibc/sources/binutils-002-uclibc.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/100-uclibc-conf.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/110-uclibc-libtool-conf.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/300-001_ld_makefile_patch.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/300-006_better_file_error.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/300-012_check_ldrunpath_length.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/702-binutils-skip-comments.patch delete mode 100644 src/uClibc/sources/binutils/2.16.1/sh-flags-off-by-one.patch delete mode 100644 src/uClibc/sources/codesets.txt delete mode 100644 src/uClibc/sources/gcc-001-disable-mathf.patch delete mode 100644 src/uClibc/sources/gcc-006-include-search.patch delete mode 100644 src/uClibc/sources/gcc-810-libstd++-locale.patch delete mode 100644 src/uClibc/sources/gcc-830-nonhidden.patch delete mode 100644 src/uClibc/sources/gcc-840-abi_check.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/100-uclibc-conf.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/200-uclibc-locale.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/300-libstdc++-pic.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/301-missing-execinfo_h.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/302-c99-snprintf.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/303-c99-complex-ugly-hack.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/304-index_macro.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/602-sdk-libstdc++-includes.patch delete mode 100644 src/uClibc/sources/gcc/4.0.3/800-arm-bigendian.patch delete mode 100644 src/uClibc/sources/i386-gcc-soft-float.patch delete mode 100644 src/uClibc/sources/patch-kernel.sh diff --git a/config/uClibc/buildroot.config-i586 b/config/uClibc/buildroot.config-i586 new file mode 100644 index 0000000000..2e351be95d --- /dev/null +++ b/config/uClibc/buildroot.config-i586 @@ -0,0 +1,335 @@ +# +# Automatically generated make config: don't edit +# +BR2_HAVE_DOT_CONFIG=y +# BR2_alpha is not set +# BR2_arm is not set +# BR2_armeb is not set +# BR2_cris is not set +BR2_i386=y +# BR2_m68k is not set +# BR2_mips is not set +# BR2_mipsel is not set +# BR2_nios2 is not set +# BR2_powerpc is not set +# BR2_sh is not set +# BR2_sh64 is not set +# BR2_sparc is not set +# BR2_x86_64 is not set +# BR2_x86_i386 is not set +# BR2_x86_i486 is not set +BR2_x86_i586=y +# BR2_x86_i686 is not set +BR2_ARCH="i586" +BR2_ENDIAN="LITTLE" + +# +# Build options +# +BR2_WGET="wget --passive-ftp" +BR2_SVN="svn co" +BR2_ZCAT="zcat" +BR2_TAR_OPTIONS="" +BR2_DL_DIR="/usr/src/cache" +BR2_SOURCEFORGE_MIRROR="easynews" +BR2_STAGING_DIR="/opt/i586-uClibc" +BR2_TOPDIR_PREFIX="" +BR2_TOPDIR_SUFFIX="" +BR2_GNU_BUILD_SUFFIX="pc-linux-gnu" +BR2_GNU_TARGET_SUFFIX="linux-uclibc" +BR2_JLEVEL=4 + +# +# Toolchain Options +# + +# +# Kernel Header Options +# +# BR2_KERNEL_HEADERS_2_4_25 is not set +# BR2_KERNEL_HEADERS_2_4_27 is not set +# BR2_KERNEL_HEADERS_2_4_29 is not set +# BR2_KERNEL_HEADERS_2_4_31 is not set +# BR2_KERNEL_HEADERS_2_6_9 is not set +# BR2_KERNEL_HEADERS_2_6_11 is not set +BR2_KERNEL_HEADERS_2_6_12=y +# BR2_KERNEL_HEADERS_2_6_18 is not set +BR2_DEFAULT_KERNEL_HEADERS="2.6.12" + +# +# uClibc Options +# +# BR2_UCLIBC_VERSION_SNAPSHOT is not set +# BR2_ENABLE_LOCALE is not set +# BR2_PTHREADS_NONE is not set +# BR2_PTHREADS is not set +BR2_PTHREADS_OLD=y +# BR2_PTHREADS_NATIVE is not set + +# +# Binutils Options +# +# BR2_BINUTILS_VERSION_2_14_90_0_8 is not set +# BR2_BINUTILS_VERSION_2_15 is not set +# BR2_BINUTILS_VERSION_2_15_94_0_2_2 is not set +BR2_BINUTILS_VERSION_2_16_1=y +# BR2_BINUTILS_VERSION_2_16_90_0_3 is not set +# BR2_BINUTILS_VERSION_2_16_91_0_5 is not set +# BR2_BINUTILS_VERSION_2_16_91_0_6 is not set +# BR2_BINUTILS_VERSION_2_16_91_0_7 is not set +# BR2_BINUTILS_VERSION_2_17 is not set +# BR2_BINUTILS_VERSION_2_17_50_0_2 is not set +# BR2_BINUTILS_VERSION_2_17_50_0_3 is not set +# BR2_BINUTILS_VERSION_2_17_50_0_4 is not set +# BR2_BINUTILS_VERSION_2_17_50_0_5 is not set +# BR2_BINUTILS_VERSION_2_17_50_0_6 is not set +BR2_BINUTILS_VERSION="2.16.1" +BR2_EXTRA_BINUTILS_CONFIG_OPTIONS="" + +# +# Gcc Options +# +# BR2_GCC_VERSION_3_3_5 is not set +# BR2_GCC_VERSION_3_3_6 is not set +# BR2_GCC_VERSION_3_4_2 is not set +# BR2_GCC_VERSION_3_4_3 is not set +# BR2_GCC_VERSION_3_4_4 is not set +# BR2_GCC_VERSION_3_4_5 is not set +# BR2_GCC_VERSION_3_4_6 is not set +# BR2_GCC_VERSION_4_0_0 is not set +# BR2_GCC_VERSION_4_0_1 is not set +# BR2_GCC_VERSION_4_0_2 is not set +BR2_GCC_VERSION_4_0_3=y +# BR2_GCC_VERSION_4_1_0 is not set +# BR2_GCC_VERSION_4_1_1 is not set +# BR2_GCC_VERSION_4_2 is not set +# BR2_GCC_IS_SNAP is not set +BR2_GCC_VERSION="4.0.3" +# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set +BR2_EXTRA_GCC_CONFIG_OPTIONS="" +# BR2_INSTALL_LIBSTDCPP is not set +# BR2_INSTALL_OBJC is not set +BR2_GCC_SHARED_LIBGCC=y + +# +# Ccache Options +# +# BR2_CCACHE is not set + +# +# Gdb Options +# +# BR2_PACKAGE_GDB is not set +# BR2_PACKAGE_GDB_SERVER is not set +# BR2_PACKAGE_GDB_HOST is not set + +# +# elf2flt +# +# BR2_ELF2FLT is not set +# BR2_MKLIBS is not set + +# +# Common Toolchain Options +# +# BR2_PACKAGE_SSTRIP_TARGET is not set +# BR2_PACKAGE_SSTRIP_HOST is not set +BR2_ENABLE_MULTILIB=y +BR2_LARGEFILE=y +BR2_TARGET_OPTIMIZATION="-Os -pipe" +BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y + +# +# Package Selection for the target +# + +# +# The default minimal system +# +# BR2_PACKAGE_BUSYBOX is not set + +# +# The minimum needed to build a uClibc development system +# +# BR2_PACKAGE_BASH is not set +# BR2_PACKAGE_BZIP2 is not set +# BR2_PACKAGE_COREUTILS is not set +# BR2_PACKAGE_DIFFUTILS is not set +# BR2_PACKAGE_ED is not set +# BR2_PACKAGE_FINDUTILS is not set +# BR2_PACKAGE_FLEX is not set +# BR2_PACKAGE_GAWK is not set +# BR2_PACKAGE_GCC_TARGET is not set +# BR2_PACKAGE_CCACHE_TARGET is not set +# BR2_PACKAGE_GREP is not set +# BR2_PACKAGE_MAKE is not set +# BR2_PACKAGE_PATCH is not set +# BR2_PACKAGE_SED is not set +# BR2_PACKAGE_TAR is not set + +# +# Other stuff +# +# BR2_PACKAGE_ACPID is not set +# BR2_PACKAGE_ASTERISK is not set +# BR2_PACKAGE_AT is not set +# BR2_PACKAGE_AUTOCONF is not set +# BR2_PACKAGE_AUTOMAKE is not set +# BR2_PACKAGE_BERKELEYDB is not set +# BR2_PACKAGE_BIND is not set +# BR2_PACKAGE_BISON is not set +# BR2_PACKAGE_BOA is not set +# BR2_PACKAGE_BRIDGE is not set +# BR2_PACKAGE_CUSTOMIZE is not set +# BR2_PACKAGE_ISC_DHCP is not set +# BR2_PACKAGE_DIALOG is not set +# BR2_PACKAGE_DIRECTFB is not set +# BR2_PACKAGE_DISTCC is not set +# BR2_PACKAGE_DM is not set +# BR2_PACKAGE_DMRAID is not set +# BR2_PACKAGE_DNSMASQ is not set +# BR2_PACKAGE_DROPBEAR is not set +# BR2_PACKAGE_ETHTOOL is not set +# BR2_PACKAGE_EXPAT is not set +# BR2_PACKAGE_E2FSPROGS is not set +# BR2_PACKAGE_FAKEROOT is not set +# BR2_PACKAGE_FILE is not set +# BR2_PACKAGE_FREETYPE is not set +# BR2_PACKAGE_GETTEXT is not set +# BR2_PACKAGE_LIBINTL is not set +# BR2_PACKAGE_GZIP is not set +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_HDPARM is not set +# BR2_PACKAGE_HOSTAP is not set +# BR2_PACKAGE_HOTPLUG is not set +# BR2_PACKAGE_IOSTAT is not set +# BR2_PACKAGE_IPROUTE2 is not set +# BR2_PACKAGE_IPSEC_TOOLS is not set +# BR2_PACKAGE_IPTABLES is not set +# BR2_PACKAGE_JPEG is not set +# BR2_PACKAGE_LESS is not set +# BR2_PACKAGE_LIBCGI is not set +# BR2_PACKAGE_LIBCGICC is not set +# BR2_PACKAGE_LIBELF is not set +# BR2_PACKAGE_LIBFLOAT is not set +# BR2_PACKAGE_LIBGLIB12 is not set +# BR2_PACKAGE_LIBMAD is not set +# BR2_PACKAGE_LIBPCAP is not set +# BR2_PACKAGE_LIBPNG is not set +# BR2_PACKAGE_LIBSYSFS is not set +# BR2_PACKAGE_LIBTOOL is not set +# BR2_PACKAGE_LIBUSB is not set +# BR2_PACKAGE_LIGHTTPD is not set +# BR2_PACKAGE_LINKS is not set +# BR2_PACKAGE_LRZSZ is not set +# BR2_PACKAGE_LSOF is not set +# BR2_PACKAGE_LTP-TESTSUITE is not set +# BR2_PACKAGE_LTT is not set +# BR2_PACKAGE_LVM2 is not set +# BR2_PACKAGE_LZO is not set +# BR2_PACKAGE_LZMA is not set +# BR2_PACKAGE_M4 is not set +# BR2_PACKAGE_MDADM is not set +# BR2_PACKAGE_MEMTESTER is not set +# BR2_PACKAGE_MICROCOM is not set +# BR2_PACKAGE_MICROPERL is not set +# BR2_PACKAGE_MICROWIN is not set +# BR2_PACKAGE_MKDOSFS is not set +# BR2_PACKAGE_MODULE_INIT_TOOLS is not set +# BR2_PACKAGE_MODUTILS is not set +# BR2_PACKAGE_MPG123 is not set +# BR2_PACKAGE_MROUTED is not set +# BR2_PACKAGE_MTD is not set +# BR2_PACKAGE_NANO is not set +# BR2_PACKAGE_NBD is not set +# BR2_PACKAGE_NCURSES is not set +# BR2_PACKAGE_NETKITBASE is not set +# BR2_PACKAGE_NETKITTELNET is not set +# BR2_PACKAGE_NETSNMP is not set +# BR2_PACKAGE_NEWT is not set +# BR2_PACKAGE_NTP is not set +# BR2_PACKAGE_OPENNTPD is not set +# BR2_PACKAGE_OPENSSH is not set +# BR2_PACKAGE_OPENSSL is not set +# BR2_PACKAGE_OPENVPN is not set +# BR2_PACKAGE_PCIUTILS is not set +# BR2_PACKAGE_PKGCONFIG is not set +# BR2_PACKAGE_PORTAGE is not set +# BR2_PACKAGE_PORTMAP is not set +# BR2_PACKAGE_PPPD is not set +# BR2_PACKAGE_PROCPS is not set +# BR2_PACKAGE_PSMISC is not set +# BR2_PACKAGE_PYTHON is not set +# BR2_PACKAGE_QTE is not set +BR2_QTE_TMAKE_VERSION="1.13" +# BR2_PACKAGE_RAIDTOOLS is not set +# BR2_READLINE is not set +# BR2_PACKAGE_RSYNC is not set +# BR2_PACKAGE_RUBY is not set +# BR2_PACKAGE_RXVT is not set +# BR2_PACKAGE_SDL is not set +# BR2_PACKAGE_SFDISK is not set +# BR2_PACKAGE_SLANG is not set +# BR2_PACKAGE_SMARTMONTOOLS is not set +# BR2_PACKAGE_SOCAT is not set +# BR2_PACKAGE_SQLITE is not set +# BR2_PACKAGE_STRACE is not set +# BR2_PACKAGE_SUDO is not set +# BR2_PACKAGE_SYSKLOGD is not set +# BR2_PACKAGE_SYSVINIT is not set +# BR2_PACKAGE_TCL is not set +# BR2_PACKAGE_TCPDUMP is not set +# BR2_PACKAGE_TFTPD is not set +# BR2_PACKAGE_THTTPD is not set +# BR2_PACKAGE_TINYLOGIN is not set +# BR2_PACKAGE_TINYX is not set +# BR2_PACKAGE_TN5250 is not set +# BR2_PACKAGE_TTCP is not set +# BR2_PACKAGE_UDEV is not set +# BR2_PACKAGE_UDHCP is not set +# BR2_PACKAGE_UEMACS is not set +# BR2_PACKAGE_USBUTILS is not set +# BR2_PACKAGE_UTIL-LINUX is not set +# BR2_PACKAGE_VALGRIND is not set +# BR2_PACKAGE_VTUN is not set +# BR2_PACKAGE_WGET is not set +# BR2_PACKAGE_WHICH is not set +# BR2_PACKAGE_WIPE is not set +# BR2_PACKAGE_WIRELESS_TOOLS is not set +# BR2_PACKAGE_XFSPROGS is not set +# BR2_PACKAGE_ZLIB is not set + +# +# Target Options +# + +# +# filesystem for target device +# +# BR2_TARGET_ROOTFS_CRAMFS is not set +# BR2_TARGET_ROOTFS_CLOOP is not set +# BR2_TARGET_ROOTFS_EXT2 is not set +# BR2_TARGET_ROOTFS_JFFS2 is not set +# BR2_TARGET_ROOTFS_SQUASHFS is not set +# BR2_TARGET_ROOTFS_TAR is not set +# BR2_TARGET_ROOTFS_ISO9660 is not set + +# +# bootloader for target device +# +# BR2_TARGET_GRUB is not set +# BR2_TARGET_SYSLINUX is not set + +# +# Board Support Options +# +# BR2_TARGET_SOEKRIS_NET4521 is not set +# BR2_TARGET_SOEKRIS_NET4801 is not set +# BR2_TARGET_VIA_EPIA_MII is not set + +# +# Generic System Support +# +# BR2_TARGET_GENERIC_ACCESS_POINT is not set +# BR2_TARGET_GENERIC_FIREWALL is not set +# BR2_TARGET_GENERIC_DEV_SYSTEM is not set diff --git a/config/uClibc/buildroot.config.cmd b/config/uClibc/buildroot.config.cmd new file mode 100644 index 0000000000..9a10a0ed4c --- /dev/null +++ b/config/uClibc/buildroot.config.cmd @@ -0,0 +1,183 @@ +deps_config := \ + target/generic/Config.in \ + target/device/jp/Config.in \ + target/device/Sharp/Config.in \ + target/device/Via/Config.in \ + target/device/AMD/Config.in \ + target/device/Hitachi/Config.in \ + target/device/Soekris/Config.in \ + target/device/Config.in \ + target/powerpc/yaboot/Config.in \ + target/x86/syslinux/Config.in \ + target/x86/grub/Config.in \ + target/iso9660/Config.in \ + target/tar/Config.in \ + target/squashfs/Config.in \ + target/jffs2/Config.in \ + target/ext2/Config.in \ + target/cloop/Config.in \ + target/cramfs/Config.in \ + target/Config.in \ + package/zlib/Config.in \ + package/xorg/Config.in \ + package/xfsprogs/Config.in \ + package/wireless-tools/Config.in \ + package/wipe/Config.in \ + package/which/Config.in \ + package/wget/Config.in \ + package/vtun/Config.in \ + package/valgrind/Config.in \ + package/util-linux/Config.in \ + package/usbutils/Config.in \ + package/uemacs/Config.in \ + package/udhcp/Config.in \ + package/udev/Config.in \ + package/ttcp/Config.in \ + package/tn5250/Config.in \ + package/tinyx/Config.in \ + package/tinylogin/Config.in \ + package/thttpd/Config.in \ + package/tftpd/Config.in \ + package/tcpdump/Config.in \ + package/tcl/Config.in \ + package/sysvinit/Config.in \ + package/sysklogd/Config.in \ + package/sudo/Config.in \ + package/strace/Config.in \ + package/sqlite/Config.in \ + package/socat/Config.in \ + package/smartmontools/Config.in \ + package/slang/Config.in \ + package/sfdisk/Config.in \ + package/sdl/Config.in \ + package/rxvt/Config.in \ + package/ruby/Config.in \ + package/rsync/Config.in \ + package/readline/Config.in \ + package/raidtools/Config.in \ + package/qte/Config.in \ + package/python/Config.in \ + package/psmisc/Config.in \ + package/procps/Config.in \ + package/pppd/Config.in \ + package/portmap/Config.in \ + package/portage/Config.in \ + package/pkgconfig/Config.in \ + package/pcmcia/Config.in \ + package/pciutils/Config.in \ + package/openvpn/Config.in \ + package/openssl/Config.in \ + package/openssh/Config.in \ + package/openntpd/Config.in \ + package/ntp/Config.in \ + package/newt/Config.in \ + package/netsnmp/Config.in \ + package/netkittelnet/Config.in \ + package/netkitbase/Config.in \ + package/ncurses/Config.in \ + package/nbd/Config.in \ + package/nano/Config.in \ + package/mtd/Config.in \ + package/mrouted/Config.in \ + package/mpg123/Config.in \ + package/modutils/Config.in \ + package/module-init-tools/Config.in \ + package/mkdosfs/Config.in \ + package/microwin/Config.in \ + package/microperl/Config.in \ + package/microcom/Config.in \ + package/memtester/Config.in \ + package/mdadm/Config.in \ + package/m4/Config.in \ + package/lzma/Config.in \ + package/lzo/Config.in \ + package/lvm2/Config.in \ + package/ltt/Config.in \ + package/ltrace/Config.in \ + package/ltp-testsuite/Config.in \ + package/lsof/Config.in \ + package/lrzsz/Config.in \ + package/links/Config.in \ + package/lighttpd/Config.in \ + package/libusb/Config.in \ + package/libtool/Config.in \ + package/libsysfs/Config.in \ + package/libpng/Config.in \ + package/libpcap/Config.in \ + package/libmad/Config.in \ + package/libgtk12/Config.in \ + package/libglib12/Config.in \ + package/libfloat/Config.in \ + package/libelf/Config.in \ + package/libcgicc/Config.in \ + package/libcgi/Config.in \ + package/less/Config.in \ + package/jpeg/Config.in \ + package/iptables/Config.in \ + package/ipsec-tools/Config.in \ + package/iproute2/Config.in \ + package/iostat/Config.in \ + package/hotplug/Config.in \ + package/hostap/Config.in \ + package/hdparm/Config.in \ + package/haserl/Config.in \ + package/gzip/Config.in \ + package/gettext/Config.in \ + package/freetype/Config.in \ + package/file/Config.in \ + package/fakeroot/Config.in \ + package/e2fsprogs/Config.in \ + package/expat/Config.in \ + package/ethtool/Config.in \ + package/dropbear/Config.in \ + package/dnsmasq/Config.in \ + package/dmraid/Config.in \ + package/dm/Config.in \ + package/distcc/Config.in \ + package/directfb/Config.in \ + package/dillo/Config.in \ + package/dialog/Config.in \ + package/dhcp/Config.in \ + package/customize/Config.in \ + package/bridge/Config.in \ + package/boa/Config.in \ + package/bison/Config.in \ + package/bind/Config.in \ + package/berkeleydb/Config.in \ + package/automake/Config.in \ + package/autoconf/Config.in \ + package/at/Config.in \ + package/asterisk/Config.in \ + package/acpid/Config.in \ + package/tar/Config.in \ + package/sed/Config.in \ + package/patch/Config.in \ + package/make/Config.in \ + package/grep/Config.in \ + toolchain/ccache/Config.in.2 \ + toolchain/gcc/Config.in.2 \ + package/gawk/Config.in \ + package/flex/Config.in \ + package/findutils/Config.in \ + package/ed/Config.in \ + package/diffutils/Config.in \ + package/coreutils/Config.in \ + package/bzip2/Config.in \ + package/bash/Config.in \ + package/busybox/Config.in \ + package/Config.in \ + toolchain/sstrip/Config.in \ + toolchain/mklibs/Config.in \ + toolchain/elf2flt/Config.in \ + toolchain/gdb/Config.in \ + toolchain/ccache/Config.in \ + toolchain/gcc/Config.in \ + toolchain/binutils/Config.in \ + toolchain/uClibc/Config.in \ + toolchain/kernel-headers/Config.in \ + toolchain/Config.in \ + Config.in + +.config include/config.h: $(deps_config) + +$(deps_config): diff --git a/src/uClibc/sources/uClibc.config b/config/uClibc/uClibc.config-i586 similarity index 66% rename from src/uClibc/sources/uClibc.config rename to config/uClibc/uClibc.config-i586 index b869029b7e..0e990d1639 100644 --- a/src/uClibc/sources/uClibc.config +++ b/config/uClibc/uClibc.config-i586 @@ -3,45 +3,56 @@ # # TARGET_alpha is not set # TARGET_arm is not set +# TARGET_bfin is not set # TARGET_cris is not set # TARGET_e1 is not set +# TARGET_frv is not set # TARGET_h8300 is not set TARGET_i386=y # TARGET_i960 is not set # TARGET_m68k is not set # TARGET_microblaze is not set # TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set # TARGET_powerpc is not set # TARGET_sh is not set +# TARGET_sh64 is not set # TARGET_sparc is not set # TARGET_v850 is not set +# TARGET_x86_64 is not set # # Target Architecture Features and Options # HAVE_ELF=y +ARCH_SUPPORTS_LITTLE_ENDIAN=y TARGET_ARCH="i386" # CONFIG_GENERIC_386 is not set -CONFIG_386=y +# CONFIG_386 is not set # CONFIG_486 is not set -# CONFIG_586 is not set +CONFIG_586=y # CONFIG_586MMX is not set # CONFIG_686 is not set +# CONFIG_PENTIUMII is not set # CONFIG_PENTIUMIII is not set # CONFIG_PENTIUM4 is not set # CONFIG_K6 is not set # CONFIG_K7 is not set +# CONFIG_ELAN is not set # CONFIG_CRUSOE is not set # CONFIG_WINCHIPC6 is not set # CONFIG_WINCHIP2 is not set # CONFIG_CYRIXIII is not set +# CONFIG_NEHEMIAH is not set ARCH_LITTLE_ENDIAN=y # ARCH_BIG_ENDIAN is not set # ARCH_HAS_NO_MMU is not set -UCLIBC_HAS_MMU=y -# UCLIBC_HAS_FLOATS is not set -WARNINGS="-Wall" -KERNEL_SOURCE="/usr/src/linux" +ARCH_HAS_MMU=y +UCLIBC_HAS_FLOATS=y +HAS_FPU=y +# DO_C99_MATH is not set +KERNEL_SOURCE="/usr/src/buildroot/toolchain_build_i586/linux" C_SYMBOL_PREFIX="" HAVE_DOT_CONFIG=y @@ -54,21 +65,26 @@ DOPIC=y HAVE_SHARED=y # ARCH_HAS_NO_LDSO is not set BUILD_UCLIBC_LDSO=y -# UCLIBC_PIE_SUPPORT is not set +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set LDSO_LDD_SUPPORT=y -# UCLIBC_CTOR_DTOR is not set -# UCLIBC_PROPOLICE is not set -# UCLIBC_PROFILING is not set +# LDSO_CACHE_SUPPORT is not set +# LDSO_PRELOAD_FILE_SUPPORT is not set +LDSO_BASE_FILENAME="ld.so" +# LDSO_RUNPATH is not set +# DL_FINI_CRT_COMPAT is not set +UCLIBC_CTOR_DTOR=y # HAS_NO_THREADS is not set # UCLIBC_HAS_THREADS is not set +PTHREADS_DEBUG_SUPPORT=y UCLIBC_HAS_LFS=y +# UCLIBC_STATIC_LDCONFIG is not set # MALLOC is not set # MALLOC_SIMPLE is not set MALLOC_STANDARD=y -# MALLOC_GLIBC_COMPAT is not set -# UCLIBC_DYNAMIC_ATEXIT is not set -# HAS_SHADOW is not set -UNIX98PTY_ONLY=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +HAS_SHADOW=y +# UNIX98PTY_ONLY is not set ASSUME_DEVPTS=y UCLIBC_HAS_TM_EXTENSIONS=y UCLIBC_HAS_TZ_CACHING=y @@ -85,18 +101,19 @@ UCLIBC_TZ_FILE_PATH="/etc/TZ" # # String and Stdio Support # +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y # UCLIBC_HAS_CTYPE_ENFORCED is not set UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LOCALE=y -# UCLIBC_PREGENERATED_LOCALE_DATA is not set -# UCLIBC_HAS_XLOCALE is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y # UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set # UCLIBC_HAS_STDIO_BUFSIZ_256 is not set # UCLIBC_HAS_STDIO_BUFSIZ_512 is not set @@ -107,18 +124,18 @@ UCLIBC_HAS_STDIO_BUFSIZ_4096=y UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set -# UCLIBC_HAS_PRINTF_M_SPEC is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y UCLIBC_HAS_ERRNO_MESSAGES=y # UCLIBC_HAS_SYS_ERRLIST is not set UCLIBC_HAS_SIGNUM_MESSAGES=y -UCLIBC_HAS_SYS_SIGLIST=y -# UCLIBC_HAS_GETTEXT_AWARENESS is not set +# UCLIBC_HAS_SYS_SIGLIST is not set UCLIBC_HAS_GNU_GETOPT=y # @@ -134,19 +151,21 @@ UCLIBC_HAS_GLOB=y # SHARED_LIB_LOADER_PREFIX="/lib" RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" +DEVEL_PREFIX="/usr/" + +# +# uClibc security related options +# +# UCLIBC_SECURITY is not set # # uClibc development/debugging options # +CROSS_COMPILER_PREFIX="/opt/i586-uClibc/bin/i586-linux-uclibc-" # DODEBUG is not set +# DODEBUG_PT is not set # DOASSERTS is not set # SUPPORT_LD_DEBUG is not set # SUPPORT_LD_DEBUG_EARLY is not set +WARNINGS="-Wall" # UCLIBC_MJN3_ONLY is not set - -# -# changes by IPFire -# -CONFIG_FEATURE_TAR_LONG_OPTIONS=y -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y diff --git a/lfs/gcc b/lfs/gcc index 2679c35676..5a742f24f1 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -71,7 +71,7 @@ endif ############################################################################### objects = $(DL_FILE) -$(DL_FILE = $(DL_FROM)/$(DL_FILE) +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) $(DL_FILE)_MD5 = 6ff1af12c53cbb3f79b27f2d6a9a3d50 diff --git a/lfs/openldap b/lfs/openldap index 34f7705833..eb741b58fd 100644 --- a/lfs/openldap +++ b/lfs/openldap @@ -30,7 +30,7 @@ VER = 2.3.20 THISAPP = openldap-$(VER) DL_FILE = $(THISAPP).tgz -DL_FROM = $(UTL_IPFIRE) +DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) diff --git a/lfs/uClibc b/lfs/uClibc index ae0e013e5d..217410c58d 100644 --- a/lfs/uClibc +++ b/lfs/uClibc @@ -38,11 +38,13 @@ TARGET = $(DIR_INFO)/$(THISAPP) # Top-level Rules ############################################################################### -objects = $(DL_FILE) +objects = $(DL_FILE) buildroot-snapshot-20061026.tar.bz2 -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +buildroot-snapshot-20061026.tar.bz2 = $(DL_FROM)/buildroot-snapshot-20061026.tar.bz2 -$(DL_FILE)_MD5 = 1ada58d919a82561061e4741fb6abd29 +$(DL_FILE)_MD5 = 1ada58d919a82561061e4741fb6abd29 +buildroot-snapshot-20061026.tar.bz2_MD5 = ecc5d48a780e46a56d1d39207d5868bd install : $(TARGET) @@ -71,28 +73,21 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) - @rm -rf /opt/$(MACHINE)-uClibc - @mkdir -p $(DIR_APP) - cd $(DIR_APP) && cp -R $(DIR_SRC)/src/uClibc/* . - cd $(DIR_APP) && sed -e 's/UCLIBC_HAS_THREADS=y/# UCLIBC_HAS_THREADS is not set/' \ + @rm -rf $(DIR_APP) /opt/$(MACHINE)-uClibc $(DIR_SRC)/buildroot + @cd $(DIR_SRC) && tar xfj $(DIR_DL)/buildroot-snapshot-20061026.tar.bz2 + sed -e 's/UCLIBC_HAS_THREADS=y/# UCLIBC_HAS_THREADS is not set/' \ -e 's/DO_C99_MATH=y/# DO_C99_MATH is not set/' \ -e 's/LDSO_CACHE_SUPPORT=y/# LDSO_CACHE_SUPPORT is not set/' \ -e 's/UCLIBC_HAS_FTW=y/# UCLIBC_HAS_FTW is not set/' \ - -e 's,/usr/src/linux,&-$(KVER),' -i sources/uClibc.config-$(MACHINE) - cd $(DIR_APP) && sed -e 's,^LINUX_DIR.*$$,&-$(KVER),' -i make/uclibc.mk - - -mkdir -p /usr/src/$(THISAPP)/toolchain_build_$(MACHINE)/uClibc_dev/usr - ln -fs /usr/include /usr/src/$(THISAPP)/toolchain_build_$(MACHINE)/uClibc_dev/usr/include - - cd $(DIR_APP) && chmod +x sources/patch-kernel.sh - cd $(DIR_APP) && make JLEVEL=$(MAKETUNING) + -e 's,/usr/src/linux,&-$(KVER),' -i $(DIR_SRC)/config/uClibc/uClibc.config-$(MACHINE) + cp -f $(DIR_SRC)/config/uClibc/uClibc.config-$(MACHINE) $(DIR_SRC)/buildroot/toolchain/uClibc/uClibc.config + cp -f $(DIR_SRC)/config/uClibc/buildroot.config-$(MACHINE) $(DIR_SRC)/buildroot/.config + cp -f $(DIR_SRC)/config/uClibc/buildroot.config.cmd $(DIR_SRC)/buildroot/.config.cmd + cd $(DIR_SRC)/buildroot && make -mkdir -p /install/initrd/bin - cd $(DIR_APP)/toolchain_build_$(MACHINE)/$(THISAPP) && make PREFIX=/opt/$(MACHINE)-uClibc install - cd $(DIR_APP)/toolchain_build_$(MACHINE)/$(THISAPP) && make RUNTIME_PREFIX=/install/initrd/ install_runtime + cd $(DIR_SRC)/buildroot/toolchain_build_$(MACHINE)/$(THISAPP) && make RUNTIME_PREFIX=/install/initrd/ install_runtime chmod 755 /install/initrd/lib/libuClibc-$(VER).so rm -f /install/initrd/lib/{libm*,libcrypt*,libutil*,librt*} - cp -f /opt/$(MACHINE)-uClibc/lib/libgcc_s.so /lib cp -f /opt/$(MACHINE)-uClibc/lib/ld-uClibc-$(VER).so /lib cp -f /opt/$(MACHINE)-uClibc/lib/libuClibc-$(VER).so /lib @@ -100,5 +95,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd /lib && ln -sf ld-uClibc-$(VER).so ld-uClibc.so.0 cd /lib && ln -sf libuClibc-$(VER).so libc.so.0 cd /lib && ln -sf libc.so.0 libc.so - @rm -rf $(DIR_APP) + @rm -rf $(DIR_SRC)/buildroot @$(POSTBUILD) diff --git a/make.sh b/make.sh index 655a00c267..00f4a14726 100644 --- a/make.sh +++ b/make.sh @@ -135,11 +135,11 @@ prepareenv() { echo -ne "Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'` BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'` - if (( 5242880 > $BASE_ASPACE )); then + if (( 2048000 > $BASE_ASPACE )); then BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` - if (( 5242880 - $BASE_USPACE > $BASE_ASPACE )); then + if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then beautify message FAIL - exiterror "Not enough temporary space available, need at least 5GB on $BASE_DEV" + exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV" fi else beautify message DONE diff --git a/src/uClibc/Makefile b/src/uClibc/Makefile index 5dcd74c24f..b8c546e11d 100644 --- a/src/uClibc/Makefile +++ b/src/uClibc/Makefile @@ -99,7 +99,7 @@ JLEVEL=-j3 # ############################################################# USE_UCLIBC_TOOLCHAIN:=true -TARGETS:=uclibc-configured binutils gcc +TARGETS:=uclibc-configured binutils gcc3_3 # Optimize toolchain for which type of CPU? # WARNING!!! CURRENTLY BROKEN!!! LEAVE IT AS $(ARCH)!!! @@ -193,9 +193,7 @@ world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGETS) .PHONY: all world clean dirclean distclean source $(TARGETS) \ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) -include make/binutils.mk -include make/gcc.mk -include make/uclibc.mk +include make/*.mk ############################################################# # diff --git a/src/uClibc/make/binutils.mk b/src/uClibc/make/binutils.mk index 303f153ab3..47011bcb40 100644 --- a/src/uClibc/make/binutils.mk +++ b/src/uClibc/make/binutils.mk @@ -24,7 +24,7 @@ $(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE) (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../lib) (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include) (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include sys-include) - $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xf - + $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(BINUTILS_DIR)/.unpacked $(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked diff --git a/src/uClibc/make/gcc.mk b/src/uClibc/make/gcc.mk index b0b24abbc2..c01c1887c5 100644 --- a/src/uClibc/make/gcc.mk +++ b/src/uClibc/make/gcc.mk @@ -1,7 +1,6 @@ # Makefile for to build a gcc/uClibc toolchain # # Copyright (C) 2002-2003 Erik Andersen -# Copyright (C) 2004 Manuel Novoa III # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,21 +16,28 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -GCC_VERSION:=4.0.3 +ifneq ($(GCC_2_95_TOOLCHAIN),true) -ifeq ($(GCC_SNAP_DATE),) -GCC_OFFICIAL_VER:=$(GCC_VERSION) -GCC_SITE:=http://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION) -#GCC_SITE:=ftp://ftp.ibiblio.org/pub/mirrors/gnu/ftp/gnu/gcc/gcc-$(GCC_OFFICIAL_VER) -else -GCC_OFFICIAL_VER:=$(GCC_VERSION)-$(GCC_SNAP_DATE) -GCC_SITE:=ftp://sources.redhat.com/pub/gcc/snapshots/$(GCC_OFFICIAL_VER) -endif +# Older stuff... +#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/ +#GCC_SOURCE:=gcc-3.3.tar.bz2 +#GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-3.3 +#GCC_CAT:=zcat + +# Shiny new stuff... +GCC_VERSION:=3.4.5 +#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION) +#GCC_SITE:=http://www.binarycode.org/gcc/releases/gcc-$(GCC_VERSION) +GCC_SITE:=http://gcc.get-software.com/releases/gcc-$(GCC_VERSION) -GCC_SOURCE:=gcc-$(GCC_OFFICIAL_VER).tar.bz2 -GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_OFFICIAL_VER) -GCC_CAT:=bzcat -GCC_STRIP_HOST_BINARIES:=true +# +# snapshots.... +#GCC_VERSION:=3.3-20031013 +#GCC_SITE:=http://gcc.get-software.com/snapshots/$(GCC_VERSION) +# +GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2 +GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION) +GCC_CAT:=bzip2 -dc ############################################################# # @@ -39,8 +45,6 @@ GCC_STRIP_HOST_BINARIES:=true # ############################################################# -TARGET_LANGUAGES:=c - ifeq ($(INSTALL_LIBSTDCPP),true) TARGET_LANGUAGES:=c,c++ else @@ -55,219 +59,263 @@ endif GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-initial $(DL_DIR)/$(GCC_SOURCE): -# mkdir -p $(DL_DIR) # $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE) -gcc-unpacked: $(GCC_DIR)/.unpacked $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE) - mkdir -p $(TOOL_BUILD_DIR) - $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xf - -# $(CONFIG_UPDATE) $(GCC_DIR) + $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - + $(GCC_CAT) $(DL_DIR)/gcc-$(GCC_VERSION).tar.bz2 | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(GCC_DIR)/.unpacked -gcc-patched: $(GCC_DIR)/.patched $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked # Apply any files named gcc-*.patch from the source directory to gcc -ifeq ($(GCC_SNAP_DATE),) - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc/$(GCC_VERSION)\*.patch -else -ifneq ($(wildcard toolchain/gcc/$(GCC_OFFICIAL_VER)),) - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc/$(GCC_OFFICIAL_VER)\*.patch -else - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc/$(GCC_VERSION)\*.patch -endif -endif - - # Note: The soft float situation has improved considerably with gcc 3.4.x. - # We can dispense with the custom spec files, as well as libfloat for the arm case. - # However, we still need a patch for arm. There's a similar patch for gcc 3.3.x - # which needs to be integrated so we can kill of libfloat for good, except for - # anyone (?) who might still be using gcc 2.95. mjn3 -ifeq ($(BR2_SOFT_FLOAT),y) -ifeq ("$(strip $(ARCH))","arm") - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional -endif -ifeq ("$(strip $(ARCH))","armeb") - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional -endif - # Not yet updated to 3.4.1. - #ifeq ("$(strip $(ARCH))","i386") - #$(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc i386-gcc-soft-float.patch - #endif -endif + $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc/$(GCC_VERSION)/*.patch touch $(GCC_DIR)/.patched -# The --without-headers option stopped working with gcc 3.0 and has never been -# fixed, so we need to actually have working C library header files prior to -# the step or libgcc will not build... +$(GCC_DIR)/.gcc3_3_build_hacks: $(GCC_DIR)/.patched + # + # Hack things to use the correct shared lib loader + # + (cd $(GCC_DIR); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\ + if [ -n "$$LIST" ] ; then \ + $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\ + -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi); + # + # Prevent gcc from using the unwind-dw2-fde-glibc code used for + # unwinding stack frames for C++ exception handling. The + # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to + # use the generic version instead. + # + $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\ + #ifndef inhibit_libc,g;" $(GCC_DIR)/gcc/unwind-dw2-fde-glibc.c; + # + # Prevent system glibc start files from leaking in uninvited... + # + $(SED) "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 =\ + \"$(STAGING_DIR)/lib/\";,;" $(GCC_DIR)/gcc/gcc.c; + $(SED) "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 =\ + \"$(STAGING_DIR)/usr/lib/\";,;" $(GCC_DIR)/gcc/gcc.c; + # + # Prevent system glibc include files from leaking in uninvited... + # + $(SED) "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=\ + $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in; + $(SED) "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=\ + $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in; + $(SED) "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \ + \"$(STAGING_DIR)/include\",;" $(GCC_DIR)/gcc/cppdefault.h; + # + # Prevent system glibc libraries from being found by collect2 + # when it calls locatelib() and rummages about the system looking + # for libraries with the correct name... + # + $(SED) "s,\"/lib,\"$(STAGING_DIR)/lib,g;" $(GCC_DIR)/gcc/collect2.c + $(SED) "s,\"/usr/,\"$(STAGING_DIR)/usr/,g;" $(GCC_DIR)/gcc/collect2.c + touch $(GCC_DIR)/.gcc3_3_build_hacks -$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched +# The --without-headers option stopped working with gcc 3.0 and has never been +# # fixed, so we need to actually have working C library header files prior to +# # the step or libgcc will not build... +$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.gcc3_3_build_hacks mkdir -p $(GCC_BUILD_DIR1) - (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) \ + echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR1)/gcc/xgcc -B$(GCC_BUILD_DIR1)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR1)/target_gcc + chmod a+x $(GCC_BUILD_DIR1)/target_gcc + (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \ + RANLIB=$(TARGET_CROSS)ranlib \ CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + gcc_cv_as_hidden=no \ $(GCC_DIR)/configure \ - --prefix=$(STAGING_DIR) \ - --build=$(GNU_HOST_NAME) \ + --target=$(GNU_TARGET_NAME) \ --host=$(GNU_HOST_NAME) \ - --target=$(REAL_GNU_TARGET_NAME) \ - --enable-languages=c \ - --with-sysroot=$(TOOL_BUILD_DIR)/uClibc_dev/ \ - --disable-__cxa_atexit \ - --enable-target-optspace \ - --with-gnu-ld \ - --disable-shared \ - $(DISABLE_NLS) \ - $(THREADS) \ - $(MULTILIB) \ + --build=$(GNU_HOST_NAME) \ + --prefix=$(STAGING_DIR) \ + --exec-prefix=$(STAGING_DIR) \ + --bindir=$(STAGING_DIR)/bin \ + --sbindir=$(STAGING_DIR)/sbin \ + --sysconfdir=$(STAGING_DIR)/etc \ + --datadir=$(STAGING_DIR)/share \ + --includedir=$(STAGING_DIR)/include \ + --libdir=$(STAGING_DIR)/lib \ + --localstatedir=$(STAGING_DIR)/var \ + --mandir=$(STAGING_DIR)/man \ + --infodir=$(STAGING_DIR)/info \ + --with-local-prefix=$(STAGING_DIR)/usr/local \ + --oldincludedir=$(STAGING_DIR)/include $(MULTILIB) \ + --enable-target-optspace $(DISABLE_NLS) --with-gnu-ld \ + --disable-shared --enable-languages=c --disable-__cxa_atexit \ $(SOFT_FLOAT_CONFIG_OPTION) \ - $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ - $(EXTRA_GCC_CONFIG_OPTIONS)); + $(EXTRA_GCC_CONFIG_OPTIONS) --program-prefix=$(ARCH)-linux-uclibc-); touch $(GCC_BUILD_DIR1)/.configured $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured - PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc + PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) -C $(GCC_BUILD_DIR1) \ + CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + AR_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-ar \ + RANLIB_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-ranlib \ + CC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc \ + GCC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc touch $(GCC_BUILD_DIR1)/.compiled -$(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled - PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc - #rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov - #rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc $(STAGING_DIR)/share/locale +$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc: $(GCC_BUILD_DIR1)/.compiled + PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \ + CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + -C $(GCC_BUILD_DIR1) install; + #Cleanup then mess when --program-prefix mysteriously fails + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-cpp + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc + if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \ + for app in gcc c++ g++ ; do \ + if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \ + (cd $(STAGING_DIR)/bin; \ + rm -f $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} -msoft-float \$$@" > $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + chmod a+x $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + ); \ + fi; \ + done; \ + fi; \ + rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov + rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \ + $(STAGING_DIR)/share/locale -gcc_initial: uclibc-configured binutils $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc +gcc3_3_initial: binutils uclibc-configured $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc -gcc_initial-clean: +gcc3_3_initial-clean: rm -rf $(GCC_BUILD_DIR1) + rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)* -gcc_initial-dirclean: - rm -rf $(GCC_BUILD_DIR1) $(GCC_DIR) +gcc3_3_initial-dirclean: + rm -rf $(GCC_BUILD_DIR1) ############################################################# # -# second pass compiler build. Build the compiler targeting +# second pass compiler build. Build the compiler targeting # the newly built shared uClibc library. # ############################################################# -# -# Sigh... I had to rework things because using --with-gxx-include-dir -# causes issues with include dir search order for g++. This seems to -# have something to do with "path translations" and possibly doesn't -# affect gcc-target. However, I haven't tested gcc-target yet so no -# guarantees. mjn3 - GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-final -$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/lib/libc.a +$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched mkdir -p $(GCC_BUILD_DIR2) - # Important! Required for limits.h to be fixed. - ln -snf ../include $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include - (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) \ + echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_g++ + chmod a+x $(GCC_BUILD_DIR2)/target_g++ + echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_gcc + chmod a+x $(GCC_BUILD_DIR2)/target_gcc + (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \ + RANLIB=$(TARGET_CROSS)ranlib LD=$(TARGET_CROSS)ld \ + NM=$(TARGET_CROSS)nm \ CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + gcc_cv_as_hidden=no \ $(GCC_DIR)/configure \ - --prefix=$(STAGING_DIR) \ - --build=$(GNU_HOST_NAME) \ + --target=$(GNU_TARGET_NAME) \ --host=$(GNU_HOST_NAME) \ - --target=$(REAL_GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=$(STAGING_DIR) \ + --exec-prefix=$(STAGING_DIR) \ + --bindir=$(STAGING_DIR)/bin \ + --sbindir=$(STAGING_DIR)/sbin \ + --sysconfdir=$(STAGING_DIR)/etc \ + --datadir=$(STAGING_DIR)/share \ + --localstatedir=$(STAGING_DIR)/var \ + --mandir=$(STAGING_DIR)/man \ + --infodir=$(STAGING_DIR)/info \ + --with-local-prefix=$(STAGING_DIR)/usr/local \ + --libdir=$(STAGING_DIR)/lib \ + --includedir=$(STAGING_DIR)/include \ + --with-gxx-include-dir=$(STAGING_DIR)/include/c++ \ + --oldincludedir=$(STAGING_DIR)/include \ + --enable-shared $(MULTILIB) \ + --enable-target-optspace $(DISABLE_NLS) \ + --with-gnu-ld --disable-__cxa_atexit \ --enable-languages=$(TARGET_LANGUAGES) \ - --disable-__cxa_atexit \ - --enable-target-optspace \ - --with-gnu-ld \ - $(GCC_SHARED_LIBGCC) \ - $(DISABLE_NLS) \ - $(THREADS) \ - $(MULTILIB) \ - $(SOFT_FLOAT_CONFIG_OPTION) \ - $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ - $(GCC_USE_SJLJ_EXCEPTIONS) \ - $(EXTRA_GCC_CONFIG_OPTIONS)); + $(EXTRA_GCC_CONFIG_OPTIONS) \ + --program-prefix=$(ARCH)-linux-uclibc- \ + ); touch $(GCC_BUILD_DIR2)/.configured $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured - PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) all + # $(SED) 's/\-lc//' $(GCC_BUILD_DIR2)/gcc/Makefile + PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \ + CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + AR_FOR_TARGET=$(TARGET_CROSS)ar RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \ + LD_FOR_TARGET=$(TARGET_CROSS)ld NM_FOR_TARGET=$(TARGET_CROSS)nm \ + CC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \ + GCC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \ + CXX_FOR_TARGET=$(GCC_BUILD_DIR2)/target_g++ \ + -C $(GCC_BUILD_DIR2) touch $(GCC_BUILD_DIR2)/.compiled -$(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled - PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install - if [ -d "$(STAGING_DIR)/lib64" ] ; then \ - if [ ! -e "$(STAGING_DIR)/lib" ] ; then \ - mkdir "$(STAGING_DIR)/lib" ; \ - fi ; \ - mv "$(STAGING_DIR)/lib64/"* "$(STAGING_DIR)/lib/" ; \ - rmdir "$(STAGING_DIR)/lib64" ; \ - fi +$(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled $(STAGING_DIR)/lib/libc.a + PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \ + CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + -C $(GCC_BUILD_DIR2) install; + -mv $(STAGING_DIR)/bin/gcc $(STAGING_DIR)/usr/bin; + -mv $(STAGING_DIR)/bin/protoize $(STAGING_DIR)/usr/bin; + -mv $(STAGING_DIR)/bin/unprotoize $(STAGING_DIR)/usr/bin; + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-cpp + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++ $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-c++ + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-g++ $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-g++ + -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++filt $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-c++filt + rm -f $(STAGING_DIR)/bin/cpp $(STAGING_DIR)/bin/gcov $(STAGING_DIR)/bin/*gccbug + rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-$(ARCH)-linux-uclibc-* + rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \ + $(STAGING_DIR)/share/locale # Strip the host binaries -ifeq ($(GCC_STRIP_HOST_BINARIES),true) -strip --strip-all -R .note -R .comment $(STAGING_DIR)/bin/* -endif - # Make sure we have 'cc'. - if [ ! -e $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-cc ] ; then \ - ln -snf $(REAL_GNU_TARGET_NAME)-gcc \ - $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-cc ; \ - fi; - if [ ! -e $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/cc ] ; then \ - ln -snf gcc $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/cc ; \ - fi; - # Set up the symlinks to enable lying about target name. - set -e; \ - (cd $(STAGING_DIR); \ - ln -snf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \ - cd bin; \ - for app in $(REAL_GNU_TARGET_NAME)-* ; do \ - ln -snf $${app} \ - $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ + if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \ + for app in gcc c++ g++ ; do \ + if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \ + (cd $(STAGING_DIR)/bin; \ + rm -f $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} -msoft-float \$$@" > $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + chmod a+x $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \ + ); \ + fi; \ done; \ - ); - # - # Now for the ugly 3.3.x soft float hack... - # -ifeq ($(BR2_SOFT_FLOAT),y) -ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.) - # Make sure we have a soft float specs file for this arch - if [ ! -f toolchain/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float ] ; then \ - echo soft float configured but no specs file for this arch ; \ - /bin/false ; \ - fi; - # Replace specs file with one that defaults to soft float mode. - if [ ! -f $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ - echo staging dir specs file is missing ; \ - /bin/false ; \ - fi; - cp toolchain/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -endif -endif - # - # Ok... that's enough of that. - # + fi; \ + set -e; \ + for app in cc gcc c89 cpp c++ g++ ; do \ + if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \ + (cd $(STAGING_DIR)/usr/bin; \ + ln -fs ../../bin/$(ARCH)-linux-uclibc-$${app} $${app}; \ + ); \ + fi; \ + done; + (cd $(STAGING_DIR)/usr/bin; \ + ln -fs gcc cc; \ + ) touch $(GCC_BUILD_DIR2)/.installed -$(TARGET_DIR)/lib/libgcc_s.so.1: $(GCC_BUILD_DIR2)/.installed - # These are in /lib, so... - rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* - -cp -a $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/ -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) - -cp -a $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/lib/ +ifneq ($(TARGET_DIR),) +$(TARGET_DIR)/lib/libstdc++.so.5.0.5: $(GCC_BUILD_DIR2)/.installed + cp -a $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/lib/ + +$(GCC_BUILD_DIR2)/.shared_libgcc: $(GCC_BUILD_DIR2)/.installed + cp -fa $(STAGING_DIR)/lib/libgcc_s.so* $(TARGET_DIR)/lib/ ; \ + touch $(GCC_BUILD_DIR2)/.shared_libgcc + +GCC_TARGETS:=$(GCC_BUILD_DIR2)/.shared_libgcc +ifeq ($(INSTALL_LIBSTDCPP),true) +GCC_TARGETS+=$(TARGET_DIR)/lib/libstdc++.so.5.0.5 endif -ifeq ($(BR2_INSTALL_LIBGCJ),y) - -cp -a $(STAGING_DIR)/lib/libgcj.so* $(TARGET_DIR)/lib/ - -cp -a $(STAGING_DIR)/lib/lib-org-w3c-dom.so* $(TARGET_DIR)/lib/ - -cp -a $(STAGING_DIR)/lib/lib-org-xml-sax.so* $(TARGET_DIR)/lib/ - -mkdir -p $(TARGET_DIR)/usr/lib/security - -cp -a $(STAGING_DIR)/usr/lib/security/libgcj.security $(TARGET_DIR)/usr/lib/security/ - -cp -a $(STAGING_DIR)/usr/lib/security/classpath.security $(TARGET_DIR)/usr/lib/security/ + endif - touch -c $(TARGET_DIR)/lib/libgcc_s.so.1 -gcc: uclibc-configured binutils gcc_initial $(LIBFLOAT_TARGET) uclibc \ +gcc3_3: binutils uclibc-configured gcc3_3_initial $(LIBFLOAT_TARGET) uclibc \ $(GCC_BUILD_DIR2)/.installed $(GCC_TARGETS) -gcc-source: $(DL_DIR)/$(GCC_SOURCE) +gcc3_3-source: $(DL_DIR)/$(GCC_SOURCE) -gcc-clean: +gcc3_3-clean: rm -rf $(GCC_BUILD_DIR2) - for prog in cpp gcc gcc-[0-9]* protoize unprotoize gcov gccbug cc; do \ - rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-$$prog \ - rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-$$prog; \ - done + rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)* -gcc-dirclean: gcc_initial-dirclean +gcc3_3-dirclean: rm -rf $(GCC_BUILD_DIR2) ############################################################# @@ -277,100 +325,123 @@ gcc-dirclean: gcc_initial-dirclean ############################################################# GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target -$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR2)/.installed +TARGET_GCC_ARGS= $(TARGET_CONFIGURE_OPTS) \ + AR_FOR_BUILD=ar \ + AS_FOR_BUILD=as \ + LD_FOR_BUILD=ld \ + NM_FOR_BUILD=nm \ + RANLIB_FOR_BUILD=ranlib \ + CC="$(HOSTCC)" \ + LDFLAGS="$(HOSTLDFLAGS)" \ + CC_FOR_BUILD="$(HOSTCC)" \ + GCC_FOR_BUILD="$(HOSTCC)" \ + CXX_FOR_BUILD="$(HOSTCC)" \ + AR_FOR_TARGET=$(TARGET_CROSS)ar \ + AS_FOR_TARGET=$(TARGET_CROSS)as \ + LD_FOR_TARGET=$(TARGET_CROSS)ld \ + NM_FOR_TARGET=$(TARGET_CROSS)nm \ + CC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + GCC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + CXX="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + CC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + GCC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + CXX_FOR_TARGET="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \ + RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib + +# We need to unpack a pristine source tree to avoid some of +# the previously applied hacks, which do not apply here... +$(GCC_BUILD_DIR3)/.unpacked: $(DL_DIR)/$(GCC_SOURCE) + $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(BUILD_DIR) -xvf - + mv $(BUILD_DIR)/gcc-$(GCC_VERSION) $(GCC_BUILD_DIR3) + touch $(GCC_BUILD_DIR3)/.unpacked + +$(GCC_BUILD_DIR3)/.patched: $(GCC_BUILD_DIR3)/.unpacked + # Apply any files named gcc-*.patch from the source directory to gcc + $(SOURCE_DIR)/patch-kernel.sh $(GCC_BUILD_DIR3) $(SOURCE_DIR) gcc/$(GCC_VERSION)/*.patch + touch $(GCC_BUILD_DIR3)/.patched + +$(GCC_BUILD_DIR3)/.gcc3_3_build_hacks: $(GCC_BUILD_DIR3)/.patched + # + # Hack things to use the correct shared lib loader + # + (cd $(GCC_BUILD_DIR3); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\ + if [ -n "$$LIST" ] ; then \ + $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\ + -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi); + # + # Prevent gcc from using the unwind-dw2-fde-glibc code used for + # unwinding stack frames for C++ exception handling. The + # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to + # use the generic version instead. + # + $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\ + #ifndef inhibit_libc,g;" $(GCC_BUILD_DIR3)/gcc/unwind-dw2-fde-glibc.c; + touch $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks + +$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks mkdir -p $(GCC_BUILD_DIR3) - (cd $(GCC_BUILD_DIR3); PATH=$(TARGET_PATH) \ - $(GCC_DIR)/configure \ + #(cd $(GCC_BUILD_DIR3); ln -fs $(ARCH)-linux-uclibc- build-$(GNU_TARGET_NAME)) + (cd $(GCC_BUILD_DIR3); \ + $(TARGET_GCC_ARGS) \ + gcc_cv_as_hidden=no \ + ./configure \ + --verbose \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=`./config.guess` \ --prefix=/usr \ - --build=$(GNU_HOST_NAME) \ - --host=$(REAL_GNU_TARGET_NAME) \ - --target=$(REAL_GNU_TARGET_NAME) \ - --enable-languages=$(TARGET_LANGUAGES) \ - --with-gxx-include-dir=/usr/include/c++ \ - --disable-__cxa_atexit \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --with-gxx-include-dir=/usr/include/c++/$(GCC_VERSION) \ --enable-target-optspace \ - --with-gnu-ld \ - $(GCC_SHARED_LIBGCC) \ - $(DISABLE_NLS) \ - $(THREADS) \ + --enable-shared \ $(MULTILIB) \ - $(SOFT_FLOAT_CONFIG_OPTION) \ - $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ - $(GCC_USE_SJLJ_EXCEPTIONS) \ - $(EXTRA_GCC_CONFIG_OPTIONS)); + $(DISABLE_NLS) \ + --with-gnu-ld --disable-__cxa_atexit \ + --enable-languages=$(TARGET_LANGUAGES) \ + $(EXTRA_GCC_CONFIG_OPTIONS) \ + ); touch $(GCC_BUILD_DIR3)/.configured $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured - PATH=$(TARGET_PATH) \ - $(MAKE) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3) all + $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3) touch $(GCC_BUILD_DIR3)/.compiled -# -# gcc-lib dir changes names to gcc with 3.4.mumble -# -ifeq ($(findstring 3.4.,$(GCC_VERSION)),3.4.) -GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) -else -GCC_LIB_SUBDIR=lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) -endif -# sigh... we need to find a better way -ifeq ($(findstring 4.0.,$(GCC_VERSION)),4.0.) -GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) -endif -ifeq ($(findstring 4.1.,$(GCC_VERSION)),4.1.) -GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) -endif -ifeq ($(findstring 4.2.,$(GCC_VERSION)),4.2.) -GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) -endif - $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled - PATH=$(TARGET_PATH) \ - $(MAKE) DESTDIR=$(TARGET_DIR) -C $(GCC_BUILD_DIR3) install - # Remove broken specs file (cross compile flag is set). - rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs - # - # Now for the ugly 3.3.x soft float hack... - # -ifeq ($(BR2_SOFT_FLOAT),y) -ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.) - # Add a specs file that defaults to soft float mode. - cp toolchain/gcc/$(GCC_VERSION)/specs-$(ARCH)-soft-float $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs + $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) DESTDIR=$(TARGET_DIR) \ + -C $(GCC_BUILD_DIR3) install + (cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc) + (cd $(TARGET_DIR)/lib; ln -fs /usr/bin/cpp) + rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/include + rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/sys-include + rm -rf $(TARGET_DIR)/usr/include/include $(TARGET_DIR)/usr/usr + -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* # Make sure gcc does not think we are cross compiling - $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -endif -endif - # - # Ok... that's enough of that. - # + $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/specs -(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) - -(cd $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) + -(cd $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/lib; $(STRIP) libstdc++.so.*.*.* > /dev/null 2>&1) - -(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s*.so.*.*.* > /dev/null 2>&1) + -(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s.so.*.*.* > /dev/null 2>&1) # rm -f $(TARGET_DIR)/usr/lib/*.la* - #rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ - # $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc + rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ + $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc # Work around problem of missing syslimits.h - if [ ! -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/include/syslimits.h ] ; then \ - echo "warning: working around missing syslimits.h" ; \ - cp -f $(STAGING_DIR)/$(GCC_LIB_SUBDIR)/include/syslimits.h \ - $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/include/ ; \ - fi - # Make sure we have 'cc'. - if [ ! -e $(TARGET_DIR)/usr/bin/cc ] ; then \ - ln -snf gcc $(TARGET_DIR)/usr/bin/cc ; \ - fi; + cp -f $(STAGING_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/syslimits.h $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/ # These are in /lib, so... - #rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* - #touch -c $(TARGET_DIR)/usr/bin/gcc + # rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so* + touch -c $(TARGET_DIR)/usr/bin/gcc -gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc +gcc3_3_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc -gcc_target-clean: +gcc3_3_target-clean: rm -rf $(GCC_BUILD_DIR3) - rm -f $(TARGET_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)* + rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)* -gcc_target-dirclean: +gcc3_3_target-dirclean: rm -rf $(GCC_BUILD_DIR3) + +endif diff --git a/src/uClibc/make/uclibc.mk b/src/uClibc/make/uclibc.mk index accef5fefd..b2eb0b7b2a 100644 --- a/src/uClibc/make/uclibc.mk +++ b/src/uClibc/make/uclibc.mk @@ -45,7 +45,7 @@ $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked cp $(SOURCE_DIR)/codesets.txt $(UCLIBC_DIR)/extra/locale $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) headers; (cd $(UCLIBC_DIR)/extra/locale; \ - patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \ + patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \ $(MAKE); \ ) $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) install_dev; @@ -59,7 +59,7 @@ $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET) $(MAKE) -C $(UCLIBC_DIR) headers -$(MAKE) -C $(UCLIBC_DIR) pregen (cd $(UCLIBC_DIR)/extra/locale; \ - patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \ + patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \ $(MAKE); \ ) $(MAKE) -C $(UCLIBC_DIR) @@ -94,10 +94,8 @@ endif uclibc-configured: $(UCLIBC_DIR)/.configured -#uclibc: $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc $(STAGING_DIR)/lib/libc.a \ -# $(UCLIBC_TARGETS) - -uclibc: fix_gcc $(STAGING_DIR)/lib/libc.a $(UCLIBC_TARGETS) +uclibc: $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc $(STAGING_DIR)/lib/libc.a \ + $(UCLIBC_TARGETS) uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE) @@ -110,6 +108,9 @@ uclibc-clean: uclibc-dirclean: rm -rf $(UCLIBC_DIR) + + + ############################################################# # # uClibc for the target just needs its header files @@ -135,7 +136,7 @@ $(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/lib/libc.a ifeq ($(GCC_2_95_TOOLCHAIN),true) uclibc_target: gcc2_95 uclibc $(TARGET_DIR)/usr/lib/libc.a else -uclibc_target: gcc uclibc $(TARGET_DIR)/usr/lib/libc.a +uclibc_target: gcc3_3 uclibc $(TARGET_DIR)/usr/lib/libc.a endif uclibc_target-clean: @@ -144,8 +145,3 @@ uclibc_target-clean: uclibc_target-dirclean: rm -f $(TARGET_DIR)/include -fix_gcc: - cd /opt/$(MACHINE)-uClibc/bin && for i in `find . -name "-*" | cut -c 3-`; do \ - cat < $$i > $(MACHINE)-linux-uclibc$$i; \ - chmod 755 $(MACHINE)-linux-uclibc$$i; \ - done diff --git a/src/uClibc/sources/binutils-001-debian.patch b/src/uClibc/sources/binutils-001-debian.patch deleted file mode 100644 index 77b602b80c..0000000000 --- a/src/uClibc/sources/binutils-001-debian.patch +++ /dev/null @@ -1,161 +0,0 @@ ---- binutils-2.11.90.0.19.orig/ld/Makefile.am -+++ binutils-2.11.90.0.19/ld/Makefile.am -@@ -19,7 +19,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ ---- binutils-2.11.90.0.19.orig/ld/Makefile.in -+++ binutils-2.11.90.0.19/ld/Makefile.in -@@ -123,7 +123,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -diff -urN binutils-2.11.90.0.27/gprof/gprof.texi binutils-2.11.90.0.27.new/gprof/gprof.texi ---- binutils-2.11.90.0.27/gprof/gprof.texi Tue Jun 19 14:57:58 2001 -+++ binutils-2.11.90.0.27.new/gprof/gprof.texi Mon Aug 27 10:27:23 2001 -@@ -137,6 +137,10 @@ - If more than one profile file is specified, the @code{gprof} - output shows the sum of the profile information in the given profile files. - -+If you use gcc 2.95.x or 3.0 to compile your binaries, you may need -+to add the @samp{-fprofile-arcs} to the compile command line in order -+for the call graphs to be properly stored in gmon.out. -+ - @code{Gprof} calculates the amount of time spent in each routine. - Next, these times are propagated along the edges of the call graph. - Cycles are discovered, and calls into a cycle are made to share the time -@@ -266,6 +270,11 @@ - to do the linking, simply specify @samp{-pg} in addition to your usual - options. The same option, @samp{-pg}, alters either compilation or linking - to do what is necessary for profiling. Here are examples: -+ -+If you use gcc 2.95.x or 3.0.x, you may need to add the -+@samp{-fprofile-arcs} option to the compile line along with @samp{-pg} -+in order to allow the call-graphs to be properly included in the gmon.out -+file. - - @example - cc -g -c myprog.c utils.c -pg -diff -urN binutils-2.11.92.0.5/bfd/opncls.c binutils-2.11.92.0.5.new/bfd/opncls.c ---- binutils-2.11.92.0.5/bfd/opncls.c Mon Oct 1 18:25:21 2001 -+++ binutils-2.11.92.0.5.new/bfd/opncls.c Sat Oct 13 11:26:59 2001 -@@ -127,6 +127,13 @@ - { - bfd *nbfd; - const bfd_target *target_vec; -+ struct stat s; -+ -+ if (stat (filename, &s) == 0) -+ if (S_ISDIR(s.st_mode)) { -+ bfd_set_error (bfd_error_file_not_recognized); -+ return NULL; -+ } - - nbfd = _bfd_new_bfd (); - if (nbfd == NULL) -diff -urN binutils-2.11.92.0.12.3/opcodes/i386-dis.c binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c ---- binutils-2.11.92.0.12.3/opcodes/i386-dis.c Fri Nov 16 17:05:55 2001 -+++ binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c Mon Dec 31 15:55:04 2001 -@@ -1830,7 +1830,7 @@ - * The function returns the length of this instruction in bytes. - */ - --static char intel_syntax; -+static signed char intel_syntax; - static char open_char; - static char close_char; - static char separator_char; -diff -urN binutils-2.12.90.0.12/ld/emultempl/elf32.em binutils-2.12.90.0.12.new/ld/emultempl/elf32.em ---- binutils-2.12.90.0.12/ld/emultempl/elf32.em Wed Jun 19 00:41:59 2002 -+++ binutils-2.12.90.0.12.new/ld/emultempl/elf32.em Wed Jun 26 10:00:26 2002 -@@ -692,6 +692,8 @@ - && command_line.rpath == NULL) - { - lib_path = (const char *) getenv ("LD_RUN_PATH"); -+ if ((lib_path) && (strlen (lib_path) == 0)) -+ lib_path = NULL; - if (gld${EMULATION_NAME}_search_needed (lib_path, l->name, - force)) - break; -@@ -871,6 +873,8 @@ - rpath = command_line.rpath; - if (rpath == NULL) - rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - if (! (bfd_elf_size_dynamic_sections - (output_bfd, command_line.soname, rpath, - command_line.filter_shlib, -diff -urN binutils-2.13.90.0.18/gprof/gprof.texi binutils-2.13.90.0.18.new/gprof/gprof.texi ---- binutils-2.13.90.0.18/gprof/gprof.texi 2003-02-02 18:29:09.000000000 -0500 -+++ binutils-2.13.90.0.18.new/gprof/gprof.texi 2003-02-02 18:28:37.000000000 -0500 -@@ -185,7 +185,7 @@ - @c man end - - @c man begin SEEALSO --monitor(3), profil(2), cc(1), prof(1), and the Info entry for @file{gprof}. -+profil(2), cc(1), prof(1), and the Info entry for @file{gprof}. - - ``An Execution Profiler for Modular Programs'', - by S. Graham, P. Kessler, M. McKusick; ---- binutils-2.13.90.0.18/bfd/elf64-alpha.c 2003-01-21 19:21:32.000000000 +0100 -+++ binutils-2.13.90.0.18-modif/bfd/elf64-alpha.c 2003-04-11 01:24:26.000000000 +0200 -@@ -4184,9 +4184,12 @@ - - loc = srel->contents; - loc += srel->reloc_count++ * sizeof (Elf64_External_Rela); -- bfd_elf64_swap_reloca_out (abfd, &outrel, loc); -- BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count -- <= srel->_cooked_size); -+ if (loc) -+ { -+ bfd_elf64_swap_reloca_out (abfd, &outrel, loc); -+ BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count -+ <= srel->_cooked_size); -+ } - } - - /* Relocate an Alpha ELF section for a relocatable link. -2003-05-23 H.J. Lu - - * ltmain.sh: Make symlink for shared library if needed. - -opcodes/ - -2003-07-14 H.J. Lu - - * Makefile.in: Regenerated. - -2003-06-11 H.J. Lu - - * Makefile.in: Regenerated. - -2003-05-23 H.J. Lu - - * Makefile.am (libopcodes_la_LIBADD): Use "-L../bfd -lbfd" - instead of "../bfd/libbfd.la". - * Makefile.in: Regenerated. - ---- binutils/ltmain.sh.dso 2002-03-22 00:16:20.000000000 -0800 -+++ binutils/ltmain.sh 2003-07-14 12:50:17.000000000 -0700 -@@ -4413,6 +4413,10 @@ relink_command=\"$relink_command\"" - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? -+ if test -n "$linkname"; then -+ $show "(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)" -+ $run eval '(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)' || exit $? -+ fi - ;; - esac - exit 0 diff --git a/src/uClibc/sources/binutils-002-uclibc.patch b/src/uClibc/sources/binutils-002-uclibc.patch deleted file mode 100644 index 77d20a2228..0000000000 --- a/src/uClibc/sources/binutils-002-uclibc.patch +++ /dev/null @@ -1,240 +0,0 @@ -diff -urN binutils-2.13.90.0.14/bfd/configure binutils-2.13.90.0.14.new/bfd/configure ---- binutils-2.13.90.0.14/bfd/configure 2002-11-14 12:37:55.000000000 -0500 -+++ binutils-2.13.90.0.14.new/bfd/configure 2002-11-19 16:15:42.000000000 -0500 -@@ -1208,7 +1208,7 @@ - bfd_version_string="\"${VERSION}\"" - if test x${is_release} = x; then - bfd_version_date=`sed -n -e 's/.*DATE //p' < ${srcdir}/version.h` -- bfd_version_string="\"${VERSION} ${bfd_version_date}\"" -+ bfd_version_string="\"${VERSION} ${bfd_version_date} uClibc\"" - fi - - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-arm.h binutils-2.14.90.0.6/bfd/elf32-arm.h ---- binutils-2.14.90.0.6.orig/bfd/elf32-arm.h 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-arm.h 2003-10-13 21:05:03.000000000 -0600 -@@ -117,7 +117,7 @@ - - /* The name of the dynamic interpreter. This is put in the .interp - section. */ --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - #define PLT_ENTRY_SIZE 16 -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-cris.c binutils-2.14.90.0.6/bfd/elf32-cris.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-cris.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-cris.c 2003-10-13 21:05:03.000000000 -0600 -@@ -536,7 +536,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-hppa.c binutils-2.14.90.0.6/bfd/elf32-hppa.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-hppa.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-hppa.c 2003-10-13 21:05:03.000000000 -0600 -@@ -115,7 +115,7 @@ - - #define PLT_ENTRY_SIZE 8 - #define GOT_ENTRY_SIZE 4 --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - static const bfd_byte plt_stub[] = - { -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-i370.c binutils-2.14.90.0.6/bfd/elf32-i370.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-i370.c 2003-07-23 09:08:08.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-i370.c 2003-10-13 21:05:03.000000000 -0600 -@@ -305,7 +305,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* Set the howto pointer for an i370 ELF reloc. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-i386.c binutils-2.14.90.0.6/bfd/elf32-i386.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-i386.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-i386.c 2003-10-13 21:05:03.000000000 -0600 -@@ -423,7 +423,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid - copying dynamic variables from a shared lib into an app's dynbss -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-m68k.c binutils-2.14.90.0.6/bfd/elf32-m68k.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-m68k.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-m68k.c 2003-10-13 21:05:03.000000000 -0600 -@@ -187,7 +187,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-ppc.c binutils-2.14.90.0.6/bfd/elf32-ppc.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-ppc.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-ppc.c 2003-10-13 21:05:03.000000000 -0600 -@@ -49,7 +49,7 @@ - - /* The name of the dynamic interpreter. This is put in the .interp - section. */ --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - #define PLT_ENTRY_SIZE 12 -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-s390.c binutils-2.14.90.0.6/bfd/elf32-s390.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-s390.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-s390.c 2003-10-13 21:05:03.000000000 -0600 -@@ -452,7 +452,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid - copying dynamic variables from a shared lib into an app's dynbss -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-sh.c binutils-2.14.90.0.6/bfd/elf32-sh.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-sh.c 2003-08-21 09:28:47.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-sh.c 2003-10-13 21:05:03.000000000 -0600 -@@ -113,7 +113,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - static reloc_howto_type sh_elf_howto_table[] = - { -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-sparc.c binutils-2.14.90.0.6/bfd/elf32-sparc.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-sparc.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-sparc.c 2003-10-13 21:05:03.000000000 -0600 -@@ -507,7 +507,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The nop opcode we use. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-vax.c binutils-2.14.90.0.6/bfd/elf32-vax.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-vax.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-vax.c 2003-10-13 21:05:03.000000000 -0600 -@@ -347,7 +347,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/libexec/ld.elf_so" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf32-xtensa.c binutils-2.14.90.0.6/bfd/elf32-xtensa.c ---- binutils-2.14.90.0.6.orig/bfd/elf32-xtensa.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf32-xtensa.c 2003-10-13 21:05:03.000000000 -0600 -@@ -404,7 +404,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. - (This does _not_ include the space for the literals associated with -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-alpha.c binutils-2.14.90.0.6/bfd/elf64-alpha.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-alpha.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-alpha.c 2003-10-13 21:05:03.000000000 -0600 -@@ -2328,7 +2328,7 @@ - - #define MAX_GOT_SIZE (64*1024) - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* Handle an Alpha specific section when reading an object file. This - is called when elfcode.h finds a section with an unknown type. -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-hppa.c binutils-2.14.90.0.6/bfd/elf64-hppa.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-hppa.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-hppa.c 2003-10-13 21:05:03.000000000 -0600 -@@ -31,7 +31,7 @@ - #define DLT_ENTRY_SIZE 0x8 - #define OPD_ENTRY_SIZE 0x20 - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/pa20_64/dld.sl" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The stub is supposed to load the target address and target's DP - value out of the PLT, then do an external branch to the target -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-ppc.c binutils-2.14.90.0.6/bfd/elf64-ppc.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-ppc.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-ppc.c 2003-10-13 21:05:03.000000000 -0600 -@@ -94,7 +94,7 @@ - - /* The name of the dynamic interpreter. This is put in the .interp - section. */ --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The size in bytes of an entry in the procedure linkage table. */ - #define PLT_ENTRY_SIZE 24 -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-s390.c binutils-2.14.90.0.6/bfd/elf64-s390.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-s390.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-s390.c 2003-10-13 21:05:03.000000000 -0600 -@@ -473,7 +473,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid - copying dynamic variables from a shared lib into an app's dynbss -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-sh64.c binutils-2.14.90.0.6/bfd/elf64-sh64.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-sh64.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-sh64.c 2003-10-13 21:05:03.000000000 -0600 -@@ -54,7 +54,7 @@ - /* Return offset of the relocation in PLT entry. */ - #define elf_sh64_plt_reloc_offset(info) (info->shared ? 52 : 44) - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* The sh linker needs to keep track of the number of relocs that it - decides to copy in check_relocs for each symbol. This is so that -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-sparc.c binutils-2.14.90.0.6/bfd/elf64-sparc.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-sparc.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-sparc.c 2003-10-13 21:05:03.000000000 -0600 -@@ -959,7 +959,7 @@ - #define LARGE_PLT_THRESHOLD 32768 - #define GOT_RESERVED_ENTRIES 1 - --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/sparcv9/ld.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* Fill in the .plt section. */ - -diff -urN binutils-2.14.90.0.6.orig/bfd/elf64-x86-64.c binutils-2.14.90.0.6/bfd/elf64-x86-64.c ---- binutils-2.14.90.0.6.orig/bfd/elf64-x86-64.c 2003-08-21 09:28:48.000000000 -0600 -+++ binutils-2.14.90.0.6/bfd/elf64-x86-64.c 2003-10-13 21:05:03.000000000 -0600 -@@ -258,7 +258,7 @@ - /* The name of the dynamic interpreter. This is put in the .interp - section. */ - --#define ELF_DYNAMIC_INTERPRETER "/lib/ld64.so.1" -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0" - - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid - copying dynamic variables from a shared lib into an app's dynbss diff --git a/src/uClibc/sources/binutils/2.16.1/100-uclibc-conf.patch b/src/uClibc/sources/binutils/2.16.1/100-uclibc-conf.patch deleted file mode 100644 index 7c0a72693f..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/100-uclibc-conf.patch +++ /dev/null @@ -1,586 +0,0 @@ -diff -ur binutils-2.15.97.orig/bfd/config.bfd binutils-2.15.97/bfd/config.bfd ---- binutils-2.15.97.orig/bfd/config.bfd 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/bfd/config.bfd 2005-04-29 20:53:50.000000000 -0400 -@@ -140,7 +140,7 @@ - targ_defvec=ecoffalpha_little_vec - targ_selvecs=bfd_elf64_alpha_vec - ;; -- alpha*-*-linux-gnu* | alpha*-*-elf*) -+ alpha*-*-linux-* | alpha*-*-elf*) - targ_defvec=bfd_elf64_alpha_vec - targ_selvecs=ecoffalpha_little_vec - ;; -@@ -150,7 +150,7 @@ - alpha*-*-*) - targ_defvec=ecoffalpha_little_vec - ;; -- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) -+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) - targ_defvec=bfd_elf64_ia64_little_vec - targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" - ;; -@@ -227,7 +227,7 @@ - targ_defvec=bfd_elf32_littlearm_vec - targ_selvecs=bfd_elf32_bigarm_vec - ;; -- armeb-*-elf | arm*b-*-linux-gnu*) -+ armeb-*-elf | arm*b-*-linux-*) - targ_defvec=bfd_elf32_bigarm_vec - targ_selvecs=bfd_elf32_littlearm_vec - ;; -@@ -235,7 +235,7 @@ - targ_defvec=bfd_elf32_littlearm_vec - targ_selvecs=bfd_elf32_bigarm_vec - ;; -- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ -+ arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ - arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ - arm*-*-eabi* ) - targ_defvec=bfd_elf32_littlearm_vec -@@ -385,7 +385,7 @@ - ;; - - #ifdef BFD64 -- hppa*64*-*-linux-gnu*) -+ hppa*64*-*-linux-*) - targ_defvec=bfd_elf64_hppa_linux_vec - targ_selvecs=bfd_elf64_hppa_vec - ;; -@@ -396,7 +396,7 @@ - ;; - #endif - -- hppa*-*-linux-gnu*) -+ hppa*-*-linux-*) - targ_defvec=bfd_elf32_hppa_linux_vec - targ_selvecs=bfd_elf32_hppa_vec - ;; -@@ -529,7 +529,7 @@ - targ_selvecs=bfd_elf32_i386_vec - targ_underscore=yes - ;; -- i[3-7]86-*-linux-gnu*) -+ i[3-7]86-*-linux-*) - targ_defvec=bfd_elf32_i386_vec - targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" - targ64_selvecs=bfd_elf64_x86_64_vec -@@ -543,7 +543,7 @@ - targ_defvec=bfd_elf64_x86_64_vec - targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" - ;; -- x86_64-*-linux-gnu*) -+ x86_64-*-linux-*) - targ_defvec=bfd_elf64_x86_64_vec - targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" - ;; -@@ -719,7 +719,7 @@ - targ_selvecs=bfd_elf32_m68k_vec - targ_underscore=yes - ;; -- m68*-*-linux-gnu*) -+ m68*-*-linux-*) - targ_defvec=bfd_elf32_m68k_vec - targ_selvecs=m68klinux_vec - ;; -@@ -1005,7 +1005,7 @@ - ;; - #endif - powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ -- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ -+ powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \ - powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) - targ_defvec=bfd_elf32_powerpc_vec - targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" -@@ -1042,7 +1042,7 @@ - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" - ;; - powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ -- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ -+ powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* |\ - powerpcle-*-rtems*) - targ_defvec=bfd_elf32_powerpcle_vec - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" -@@ -1213,7 +1213,7 @@ - targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" - targ_underscore=yes - ;; -- sparc-*-linux-gnu*) -+ sparc-*-linux-*) - targ_defvec=bfd_elf32_sparc_vec - targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" - ;; -@@ -1260,7 +1260,7 @@ - targ_defvec=sunos_big_vec - targ_underscore=yes - ;; -- sparc64-*-linux-gnu*) -+ sparc64-*-linux-*) - targ_defvec=bfd_elf64_sparc_vec - targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" - ;; -@@ -1329,7 +1329,7 @@ - targ_underscore=yes - ;; - -- vax-*-linux-gnu*) -+ vax-*-linux-*) - targ_defvec=bfd_elf32_vax_vec - ;; - -diff -ur binutils-2.15.97.orig/bfd/configure binutils-2.15.97/bfd/configure ---- binutils-2.15.97.orig/bfd/configure 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/bfd/configure 2005-04-29 20:53:50.000000000 -0400 -@@ -9918,7 +9918,7 @@ - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) - COREFILE='' - ;; -- alpha*-*-linux-gnu*) -+ alpha*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/alphalinux.h"' - ;; -@@ -9982,7 +9982,7 @@ - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386mach3.h"' - ;; -- i[3-7]86-*-linux-gnu*) -+ i[3-7]86-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386linux.h"' - ;; -@@ -10020,7 +10020,7 @@ - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/hp300bsd.h"' - ;; -- m68*-*-linux-gnu*) -+ m68*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68klinux.h"' - ;; -@@ -10154,7 +10154,7 @@ - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxult2.h"' - ;; -- vax-*-linux-gnu*) -+ vax-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxlinux.h"' - ;; -diff -ur binutils-2.15.97.orig/bfd/configure.in binutils-2.15.97/bfd/configure.in ---- binutils-2.15.97.orig/bfd/configure.in 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/bfd/configure.in 2005-04-29 20:53:50.000000000 -0400 -@@ -163,7 +163,7 @@ - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) - COREFILE='' - ;; -- alpha*-*-linux-gnu*) -+ alpha*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/alphalinux.h"' - ;; -@@ -248,7 +248,7 @@ - TRAD_HEADER='"hosts/i386mach3.h"' - ;; - changequote(,)dnl -- i[3-7]86-*-linux-gnu*) -+ i[3-7]86-*-linux-*) - changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386linux.h"' -@@ -289,7 +289,7 @@ - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/hp300bsd.h"' - ;; -- m68*-*-linux-gnu*) -+ m68*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68klinux.h"' - ;; -@@ -375,7 +375,7 @@ - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxult2.h"' - ;; -- vax-*-linux-gnu*) -+ vax-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxlinux.h"' - ;; -diff -ur binutils-2.15.97.orig/gas/configure binutils-2.15.97/gas/configure ---- binutils-2.15.97.orig/gas/configure 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/gas/configure 2005-04-29 20:53:50.000000000 -0400 -@@ -4462,7 +4462,7 @@ - _ACEOF - - ;; -- ppc-*-linux-gnu*) -+ ppc-*-linux-*) - case "$endian" in - big) ;; - *) { { echo "$as_me:$LINENO: error: GNU/Linux must be configured big endian" >&5 -diff -ur binutils-2.15.97.orig/gas/configure.in binutils-2.15.97/gas/configure.in ---- binutils-2.15.97.orig/gas/configure.in 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/gas/configure.in 2005-04-29 20:53:50.000000000 -0400 -@@ -161,7 +161,7 @@ - AC_DEFINE(AIX_WEAK_SUPPORT, 1, - [Define if using AIX 5.2 value for C_WEAKEXT.]) - ;; -- ppc-*-linux-gnu*) -+ ppc-*-linux-*) - case "$endian" in - big) ;; - *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;; -diff -ur binutils-2.15.97.orig/gas/configure.tgt binutils-2.15.97/gas/configure.tgt ---- binutils-2.15.97.orig/gas/configure.tgt 2005-04-29 20:48:14.000000000 -0400 -+++ binutils-2.15.97/gas/configure.tgt 2005-04-29 20:53:50.000000000 -0400 -@@ -100,7 +100,7 @@ - alpha-*-*vms*) fmt=evax ;; - alpha-*-osf*) fmt=ecoff ;; - alpha-*-linuxecoff*) fmt=ecoff ;; -- alpha-*-linux-gnu*) fmt=elf em=linux ;; -+ alpha-*-linux-*) fmt=elf em=linux ;; - alpha-*-netbsd*) fmt=elf em=nbsd ;; - alpha-*-openbsd*) fmt=elf em=obsd ;; - -@@ -116,7 +116,7 @@ - arm-*-conix*) fmt=elf ;; - arm-*-linux*aout*) fmt=aout em=linux ;; - arm-*-linux-gnueabi*) fmt=elf em=armlinuxeabi ;; -- arm-*-linux-gnu*) fmt=elf em=linux ;; -+ arm-*-linux-*) fmt=elf em=linux ;; - arm-*-uclinux*) fmt=elf em=linux ;; - arm-*-netbsdelf*) fmt=elf em=nbsd ;; - arm-*-*n*bsd*) fmt=aout em=nbsd ;; -@@ -128,7 +128,7 @@ - - avr-*-*) fmt=elf ;; - -- cris-*-linux-gnu* | crisv32-*-linux-gnu*) -+ cris-*-linux-* | crisv32-*-linux-*) - fmt=multi bfd_gas=yes em=linux ;; - cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;; - -@@ -192,7 +192,7 @@ - i386-*-linux*aout*) fmt=aout em=linux ;; - i386-*-linux*oldld) fmt=aout em=linux ;; - i386-*-linux*coff*) fmt=coff em=linux ;; -- i386-*-linux-gnu*) fmt=elf em=linux ;; -+ i386-*-linux-*) fmt=elf em=linux ;; - i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; - i386-*-sysv[45]*) fmt=elf ;; - i386-*-solaris*) fmt=elf ;; -@@ -238,7 +238,7 @@ - - ia64-*-elf*) fmt=elf ;; - ia64-*-aix*) fmt=elf em=ia64aix ;; -- ia64-*-linux-gnu*) fmt=elf em=linux ;; -+ ia64-*-linux-*) fmt=elf em=linux ;; - ia64-*-hpux*) fmt=elf em=hpux ;; - ia64-*-netbsd*) fmt=elf em=nbsd ;; - -@@ -265,7 +265,7 @@ - m68k-*-rtems*) fmt=elf ;; - m68k-*-hpux*) fmt=hp300 em=hp300 ;; - m68k-*-linux*aout*) fmt=aout em=linux ;; -- m68k-*-linux-gnu*) fmt=elf em=linux ;; -+ m68k-*-linux-*) fmt=elf em=linux ;; - m68k-*-uclinux*) fmt=elf ;; - m68k-*-gnu*) fmt=elf ;; - m68k-*-netbsdelf*) fmt=elf em=nbsd ;; -@@ -332,7 +332,7 @@ - ppc-*-beos*) fmt=coff ;; - ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; - ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; -- ppc-*-linux-gnu*) fmt=elf em=linux ;; -+ ppc-*-linux-*) fmt=elf em=linux ;; - ppc-*-solaris*) fmt=elf ;; - ppc-*-rtems*) fmt=elf ;; - ppc-*-macos*) fmt=coff em=macos ;; -@@ -340,7 +340,7 @@ - ppc-*-kaos*) fmt=elf ;; - ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; - -- s390-*-linux-gnu*) fmt=elf em=linux ;; -+ s390-*-linux-*) fmt=elf em=linux ;; - s390-*-tpf*) fmt=elf ;; - - sh*-*-linux*) fmt=elf em=linux -@@ -369,7 +369,7 @@ - sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;; - sparc-*-coff) fmt=coff ;; - sparc-*-linux*aout*) fmt=aout em=linux ;; -- sparc-*-linux-gnu*) fmt=elf em=linux ;; -+ sparc-*-linux-*) fmt=elf em=linux ;; - sparc-fujitsu-none) fmt=aout ;; - sparc-*-elf) fmt=elf ;; - sparc-*-sysv4*) fmt=elf ;; -@@ -398,7 +398,7 @@ - vax-*-netbsdelf*) fmt=elf em=nbsd ;; - vax-*-netbsd*) fmt=aout em=nbsd ;; - vax-*-bsd* | vax-*-ultrix*) fmt=aout ;; -- vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; -+ vax-*-linux-*) fmt=elf em=linux bfd_gas=yes ;; - - w65-*-*) fmt=coff ;; - -diff -ur binutils-2.15.97.orig/ld/configure.host binutils-2.15.97/ld/configure.host ---- binutils-2.15.97.orig/ld/configure.host 2005-04-29 20:48:15.000000000 -0400 -+++ binutils-2.15.97/ld/configure.host 2005-04-29 20:53:50.000000000 -0400 -@@ -83,7 +83,7 @@ - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` - ;; - --arm*-*-linux-gnu*) -+arm*-*-linux-*) - HOSTING_CRT0='-p '`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` - ;; - -@@ -141,7 +141,7 @@ - HOSTING_LIBS="$HOSTING_LIBS"' -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`' - ;; - --ia64-*-linux-gnu*) -+ia64-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]*\*,ld-linux-ia64,g"` - ;; - -@@ -155,11 +155,11 @@ - HOSTING_LIBS='-L/usr/lib32 '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o ; else ${CC} -print-file-name=crtend.o; fi` /usr/lib32/crtn.o -init __do_global_ctors -fini __do_global_dtors' - ;; - --mips*-*-linux-gnu*) -+mips*-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` - ;; - --m68*-*-linux-gnu*) -+m68*-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` - ;; - -@@ -183,19 +183,19 @@ - HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`' - ;; - --powerpc64*-*-linux-gnu*) -+powerpc64*-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld64.so.1,"` - ;; - --powerpc*-*-linux-gnu*) -+powerpc*-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` - ;; - --s390x-*-linux-gnu*) -+s390x-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld64.so.1,"` - ;; - --s390-*-linux-gnu*) -+s390-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` - ;; - -@@ -209,15 +209,15 @@ - HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' - ;; - --sparc-*-linux-gnu*) -+sparc-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld-linux.so.2,"` - ;; - --sparc64-*-linux-gnu*) -+sparc64-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux.so.2,"` - ;; - --x86_64-*-linux-gnu*) -+x86_64-*-linux-*) - HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux-x86-64.so.2,"` - ;; - -diff -ur binutils-2.15.97.orig/ld/configure.tgt binutils-2.15.97/ld/configure.tgt ---- binutils-2.15.97.orig/ld/configure.tgt 2005-04-29 20:48:15.000000000 -0400 -+++ binutils-2.15.97/ld/configure.tgt 2005-04-29 20:53:50.000000000 -0400 -@@ -30,7 +30,7 @@ - cris-*-*aout*) targ_emul=crisaout - targ_extra_emuls="criself crislinux" - targ_extra_libpath=$targ_extra_emuls ;; --cris-*-linux-gnu* | cris-*-linux-gnu*) -+cris-*-linux-* | crisv32-*-linux-*) - targ_emul=crislinux ;; - cris-*-* | crisv32-*-*) targ_emul=criself - targ_extra_emuls="crisaout crislinux" -@@ -62,14 +62,14 @@ - tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'` - tdir_sun4=sparc-sun-sunos4 - ;; --sparc64-*-linux-gnu*) targ_emul=elf64_sparc -+sparc64-*-linux-*) targ_emul=elf64_sparc - targ_extra_emuls="elf32_sparc sparclinux sun4" - targ_extra_libpath=elf32_sparc - tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` - tdir_sparclinux=${tdir_elf32_sparc}aout - tdir_sun4=sparc-sun-sunos4 - ;; --sparc*-*-linux-gnu*) targ_emul=elf32_sparc -+sparc*-*-linux-*) targ_emul=elf32_sparc - targ_extra_emuls="sparclinux elf64_sparc sun4" - targ_extra_libpath=elf64_sparc - tdir_sparclinux=${targ_alias}aout -@@ -119,8 +119,8 @@ - ia64-*-aix*) targ_emul=elf64_aix ;; - m32r*le-*-elf*) targ_emul=m32rlelf ;; - m32r*-*-elf*) targ_emul=m32relf ;; --m32r*le-*-linux-gnu*) targ_emul=m32rlelf_linux ;; --m32r*-*-linux-gnu*) targ_emul=m32relf_linux ;; -+m32r*le-*-linux-*) targ_emul=m32rlelf_linux ;; -+m32r*-*-linux-*) targ_emul=m32relf_linux ;; - m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf - targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;; - m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf -@@ -131,7 +131,7 @@ - m68*-apple-aux*) targ_emul=m68kaux ;; - maxq-*-coff) targ_emul=maxqcoff;; - *-tandem-none) targ_emul=st2000 ;; --i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;; -+i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370 ;; - i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; - i[3-7]86-*-vsta) targ_emul=vsta ;; - i[3-7]86-go32-rtems*) targ_emul=i386go32 ;; -@@ -155,14 +155,14 @@ - tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` - ;; - i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; --i[3-7]86-*-linux-gnu*) targ_emul=elf_i386 -+i[3-7]86-*-linux-*) targ_emul=elf_i386 - targ_extra_emuls=i386linux - if test x${want64} = xtrue; then - targ_extra_emuls="$targ_extra_emuls elf_x86_64" - fi - tdir_i386linux=${targ_alias}aout - ;; --x86_64-*-linux-gnu*) targ_emul=elf_x86_64 -+x86_64-*-linux-*) targ_emul=elf_x86_64 - targ_extra_emuls="elf_i386 i386linux" - targ_extra_libpath=elf_i386 - tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` -@@ -262,13 +262,13 @@ - arm-*-kaos*) targ_emul=armelf ;; - arm9e-*-elf) targ_emul=armelf ;; - arm*b-*-linux-gnueabi) targ_emul=armelfb_linux_eabi ;; --arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; -+arm*b-*-linux-*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; - arm*-*-linux-gnueabi) targ_emul=armelf_linux_eabi ;; --arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; -+arm*-*-linux-*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; - arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; - arm-*-vxworks) targ_emul=armelf_vxworks ;; - arm*-*-conix*) targ_emul=armelf ;; --thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; -+thumb-*-linux-* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; - strongarm-*-coff) targ_emul=armcoff ;; - strongarm-*-elf) targ_emul=armelf ;; - strongarm-*-kaos*) targ_emul=armelf ;; -@@ -372,7 +372,7 @@ - targ_extra_emuls=m68kelf - tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` - ;; --m68k-*-linux-gnu*) targ_emul=m68kelf -+m68k-*-linux-*) targ_emul=m68kelf - targ_extra_emuls=m68klinux - tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` - ;; -@@ -388,9 +388,9 @@ - m68*-*-psos*) targ_emul=m68kpsos ;; - m68*-*-rtemscoff*) targ_emul=m68kcoff ;; - m68*-*-rtems*) targ_emul=m68kelf ;; --hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;; -+hppa*64*-*-linux-*) targ_emul=hppa64linux ;; - hppa*64*-*) targ_emul=elf64hppa ;; --hppa*-*-linux-gnu*) targ_emul=hppalinux ;; -+hppa*-*-linux-*) targ_emul=hppalinux ;; - hppa*-*-*elf*) targ_emul=hppaelf ;; - hppa*-*-lites*) targ_emul=hppaelf ;; - hppa*-*-netbsd*) targ_emul=hppanbsd ;; -@@ -402,7 +402,7 @@ - vax-*-netbsdaout* | vax-*-netbsd*) - targ_emul=vaxnbsd - targ_extra_emuls=elf32vax ;; --vax-*-linux-gnu*) targ_emul=elf32vax ;; -+vax-*-linux-*) targ_emul=elf32vax ;; - mips*-*-pe) targ_emul=mipspe ; - targ_extra_ofiles="deffilep.o pe-dll.o" ;; - mips*-dec-ultrix*) targ_emul=mipslit ;; -@@ -436,18 +436,18 @@ - mips*-*-vxworks*) targ_emul=elf32ebmip - targ_extra_emuls="elf32elmip" ;; - mips*-*-windiss) targ_emul=elf32mipswindiss ;; --mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32 -+mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 - targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" - targ_extra_libpath="elf32ltsmip elf64ltsmip" - ;; --mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32 -+mips64*-*-linux-*) targ_emul=elf32btsmipn32 - targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" - targ_extra_libpath="elf32btsmip elf64btsmip" - ;; --mips*el-*-linux-gnu*) targ_emul=elf32ltsmip -+mips*el-*-linux-*) targ_emul=elf32ltsmip - targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" - ;; --mips*-*-linux-gnu*) targ_emul=elf32btsmip -+mips*-*-linux-*) targ_emul=elf32btsmip - targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" - ;; - mips*-*-lnews*) targ_emul=mipslnews ;; -@@ -467,7 +467,7 @@ - alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha - tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` - ;; --alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha -+alpha*-*-linux-*) targ_emul=elf64alpha targ_extra_emuls=alpha - tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` - ;; - alpha*-*-osf*) targ_emul=alpha ;; -diff -ur binutils-2.15.97.orig/ld/emultempl/elf32.em binutils-2.15.97/ld/emultempl/elf32.em ---- binutils-2.15.97.orig/ld/emultempl/elf32.em 2005-04-29 20:48:15.000000000 -0400 -+++ binutils-2.15.97/ld/emultempl/elf32.em 2005-04-29 20:53:50.000000000 -0400 -@@ -65,7 +65,7 @@ - - if [ "x${USE_LIBPATH}" = xyes ] ; then - case ${target} in -- *-*-linux-gnu*) -+ *-*-linux-*) - cat >>e${EMULATION_NAME}.c < -@@ -350,7 +350,7 @@ - - EOF - case ${target} in -- *-*-linux-gnu*) -+ *-*-linux-*) - cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name, force)) - break; diff --git a/src/uClibc/sources/binutils/2.16.1/110-uclibc-libtool-conf.patch b/src/uClibc/sources/binutils/2.16.1/110-uclibc-libtool-conf.patch deleted file mode 100644 index ec38caa125..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/110-uclibc-libtool-conf.patch +++ /dev/null @@ -1,218 +0,0 @@ -diff -urN binutils-2.16.90.0.2-dist/bfd/configure binutils-2.16.90.0.2/bfd/configure ---- binutils-2.16.90.0.2-dist/bfd/configure 2005-04-29 12:50:24.000000000 -0500 -+++ binutils-2.16.90.0.2/bfd/configure 2005-04-30 11:34:59.246377032 -0500 -@@ -3584,6 +3584,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -diff -urN binutils-2.16.90.0.2-dist/binutils/configure binutils-2.16.90.0.2/binutils/configure ---- binutils-2.16.90.0.2-dist/binutils/configure 2005-04-29 12:50:26.000000000 -0500 -+++ binutils-2.16.90.0.2/binutils/configure 2005-04-30 11:35:28.900868864 -0500 -@@ -1577,6 +1577,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -diff -urN binutils-2.16.90.0.2-dist/configure binutils-2.16.90.0.2/configure ---- binutils-2.16.90.0.2-dist/configure 2005-04-29 12:50:23.000000000 -0500 -+++ binutils-2.16.90.0.2/configure 2005-04-30 11:31:12.525843792 -0500 -@@ -1111,7 +1111,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) -diff -urN binutils-2.16.90.0.2-dist/configure.in binutils-2.16.90.0.2/configure.in ---- binutils-2.16.90.0.2-dist/configure.in 2005-04-29 12:50:23.000000000 -0500 -+++ binutils-2.16.90.0.2/configure.in 2005-04-30 11:29:51.643139832 -0500 -@@ -328,7 +328,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) -diff -urN binutils-2.16.90.0.2-dist/gas/configure binutils-2.16.90.0.2/gas/configure ---- binutils-2.16.90.0.2-dist/gas/configure 2005-04-29 12:50:27.000000000 -0500 -+++ binutils-2.16.90.0.2/gas/configure 2005-04-30 11:35:21.097055224 -0500 -@@ -3421,6 +3421,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -diff -urN binutils-2.16.90.0.2-dist/gas/testsuite/gas/sh/basic.exp binutils-2.16.90.0.2/gas/testsuite/gas/sh/basic.exp ---- binutils-2.16.90.0.2-dist/gas/testsuite/gas/sh/basic.exp 2005-04-09 14:03:14.000000000 -0500 -+++ binutils-2.16.90.0.2/gas/testsuite/gas/sh/basic.exp 2005-04-30 11:41:57.301822944 -0500 -@@ -20,7 +20,7 @@ - - # Written by Cygnus Support. - --if [istarget "sh*-*-linux-gnu"] { -+if {[istarget "sh*-*-linux-gnu"] || [istarget "sh*-*-linux-uclibc"]} { - global ASFLAGS - set ASFLAGS "$ASFLAGS -big" - } -diff -urN binutils-2.16.90.0.2-dist/gprof/configure binutils-2.16.90.0.2/gprof/configure ---- binutils-2.16.90.0.2-dist/gprof/configure 2005-04-29 12:50:29.000000000 -0500 -+++ binutils-2.16.90.0.2/gprof/configure 2005-04-30 11:35:36.880655752 -0500 -@@ -3419,6 +3419,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -diff -urN binutils-2.16.90.0.2-dist/ld/configure binutils-2.16.90.0.2/ld/configure ---- binutils-2.16.90.0.2-dist/ld/configure 2005-04-29 12:50:30.000000000 -0500 -+++ binutils-2.16.90.0.2/ld/configure 2005-04-30 11:46:15.974498720 -0500 -@@ -1581,6 +1581,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -diff -urN binutils-2.16.90.0.2-dist/ld/testsuite/ld-sh/sh.exp binutils-2.16.90.0.2/ld/testsuite/ld-sh/sh.exp ---- binutils-2.16.90.0.2-dist/ld/testsuite/ld-sh/sh.exp 2005-04-09 14:03:29.000000000 -0500 -+++ binutils-2.16.90.0.2/ld/testsuite/ld-sh/sh.exp 2005-04-30 11:45:07.890849008 -0500 -@@ -62,7 +62,7 @@ - - set testsrec "SH relaxing to S-records" - --if [istarget sh*-linux-gnu] { -+if {[istarget sh*-linux-gnu] || [istarget sh*-*-linux-uclibc]} { - # This target needs the explicit entry address. - catch "exec $objdump -x tmpdir/sh1 | grep start\\ address | sed s/start\\ address//" entry_addr - set srec_relax_arg "-Ttext $entry_addr -relax --oformat srec tmpdir/sh1.o" -@@ -117,7 +117,7 @@ - return - } - --if [istarget sh*-linux-gnu] { -+if {[istarget sh*-linux-gnu] || [istarget sh*-*-linux-uclibc]} { - exec sed -e s/_main/main/ -e s/_trap/trap/ -e s/_stack/stack/ \ - < $srcdir/$subdir/start.s >tmpdir/start.s - } else { -diff -urN binutils-2.16.90.0.2-dist/ld/testsuite/ld-srec/srec.exp binutils-2.16.90.0.2/ld/testsuite/ld-srec/srec.exp ---- binutils-2.16.90.0.2-dist/ld/testsuite/ld-srec/srec.exp 2005-04-29 12:50:30.000000000 -0500 -+++ binutils-2.16.90.0.2/ld/testsuite/ld-srec/srec.exp 2005-04-30 11:44:26.358162936 -0500 -@@ -385,7 +385,7 @@ - setup_xfail "v850*-*-elf" - - # The S-record linker doesn't handle Alpha Elf relaxation. --setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" -+setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" "alpha*-*-linux-uclibc*" - setup_xfail "alpha*-*-netbsd*" - - # The S-record linker hasn't any hope of coping with HPPA relocs. -@@ -424,7 +424,7 @@ - setup_xfail "thumb-*-*" - setup_xfail "powerpc*-*-eabi*" - setup_xfail "v850*-*-elf" --setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" -+setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" "alpha*-*-linux-uclibc*" - setup_xfail "alpha*-*-netbsd*" - setup_xfail "hppa*-*-*" - setup_xfail "ia64-*-*" -diff -urN binutils-2.16.90.0.2-dist/libtool.m4 binutils-2.16.90.0.2/libtool.m4 ---- binutils-2.16.90.0.2-dist/libtool.m4 2004-07-27 23:36:06.000000000 -0500 -+++ binutils-2.16.90.0.2/libtool.m4 2005-04-30 11:35:54.062043784 -0500 -@@ -645,6 +645,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] -diff -urN binutils-2.16.90.0.2-dist/ltconfig binutils-2.16.90.0.2/ltconfig ---- binutils-2.16.90.0.2-dist/ltconfig 2004-11-22 14:33:30.000000000 -0600 -+++ binutils-2.16.90.0.2/ltconfig 2005-04-30 11:22:10.594229920 -0500 -@@ -602,6 +602,7 @@ - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in -+linux-uclibc*) ;; - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac -@@ -1270,6 +1271,23 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+linux-uclibc*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' -+ soname_spec='${libname}${release}.so$major' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ # This implies no fast_install, which is unacceptable. -+ # Some rework will be needed to allow for fast_install -+ # before this can be enabled. -+ hardcode_into_libs=yes -+ # Assume using the uClibc dynamic linker. -+ dynamic_linker="uClibc ld.so" -+ ;; -+ - netbsd*) - need_lib_prefix=no - need_version=no -diff -urN binutils-2.16.90.0.2-dist/opcodes/configure binutils-2.16.90.0.2/opcodes/configure ---- binutils-2.16.90.0.2-dist/opcodes/configure 2005-04-29 12:50:31.000000000 -0500 -+++ binutils-2.16.90.0.2/opcodes/configure 2005-04-30 11:17:07.168357664 -0500 -@@ -3588,6 +3588,11 @@ - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff --git a/src/uClibc/sources/binutils/2.16.1/300-001_ld_makefile_patch.patch b/src/uClibc/sources/binutils/2.16.1/300-001_ld_makefile_patch.patch deleted file mode 100644 index b25d5b7e21..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/300-001_ld_makefile_patch.patch +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -## 001_ld_makefile_patch.dpatch -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Description: correct where ld scripts are installed -## DP: Author: Chris Chimelis -## DP: Upstream status: N/A -## DP: Date: ?? - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 - -@DPATCH@ -diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am binutils-2.14.90.0.6/ld/Makefile.am ---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am 2003-08-21 16:28:48.000000000 +0100 -+++ binutils-2.14.90.0.6/ld/Makefile.am 2003-09-10 23:12:09.000000000 +0100 -@@ -19,7 +19,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in binutils-2.14.90.0.6/ld/Makefile.in ---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in 2003-08-21 16:28:48.000000000 +0100 -+++ binutils-2.14.90.0.6/ld/Makefile.in 2003-09-10 23:12:09.000000000 +0100 -@@ -128,7 +128,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ diff --git a/src/uClibc/sources/binutils/2.16.1/300-006_better_file_error.patch b/src/uClibc/sources/binutils/2.16.1/300-006_better_file_error.patch deleted file mode 100644 index f337611edf..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/300-006_better_file_error.patch +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -e -## 006_better_file_error.dpatch by David Kimdon -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Specify which filename is causing an error if the filename is a -## DP: directory. (#45832) - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 - -@DPATCH@ -diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c ---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100 -+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100 -@@ -150,6 +150,13 @@ - { - bfd *nbfd; - const bfd_target *target_vec; -+ struct stat s; -+ -+ if (stat (filename, &s) == 0) -+ if (S_ISDIR(s.st_mode)) { -+ bfd_set_error (bfd_error_file_not_recognized); -+ return NULL; -+ } - - nbfd = _bfd_new_bfd (); - if (nbfd == NULL) diff --git a/src/uClibc/sources/binutils/2.16.1/300-012_check_ldrunpath_length.patch b/src/uClibc/sources/binutils/2.16.1/300-012_check_ldrunpath_length.patch deleted file mode 100644 index 498651a90c..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/300-012_check_ldrunpath_length.patch +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -e -## 012_check_ldrunpath_length.dpatch by Chris Chimelis -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for -## DP: cases where -rpath isn't specified. (#151024) - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 - -@DPATCH@ -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100 -+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100 -@@ -692,6 +692,8 @@ - && command_line.rpath == NULL) - { - lib_path = (const char *) getenv ("LD_RUN_PATH"); -+ if ((lib_path) && (strlen (lib_path) == 0)) -+ lib_path = NULL; - if (gld${EMULATION_NAME}_search_needed (lib_path, &n, - force)) - break; -@@ -871,6 +873,8 @@ - rpath = command_line.rpath; - if (rpath == NULL) - rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - if (! (bfd_elf_size_dynamic_sections - (output_bfd, command_line.soname, rpath, - command_line.filter_shlib, diff --git a/src/uClibc/sources/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch b/src/uClibc/sources/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch deleted file mode 100644 index 5959c718d2..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- binutils/bfd/elf32-mips.c~ -+++ binutils/bfd/elf32-mips.c -@@ -1613,7 +1613,9 @@ - - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses - page sizes of up to that limit, so we need to respect it. */ --#define ELF_MAXPAGESIZE 0x10000 -+/*#define ELF_MAXPAGESIZE 0x10000*/ -+/* Use 4K to shrink the elf header. NOT for general use! */ -+#define ELF_MAXPAGESIZE 0x1000 - #define elf32_bed elf32_tradbed - - /* Include the target file again for this target. */ ---- binutils/bfd/elfn32-mips.c~ -+++ binutils/bfd/elfn32-mips.c -@@ -2399,7 +2399,9 @@ - - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses - page sizes of up to that limit, so we need to respect it. */ --#define ELF_MAXPAGESIZE 0x10000 -+/*#define ELF_MAXPAGESIZE 0x10000*/ -+/* Use 4K to shrink the elf header. NOT for general use! */ -+#define ELF_MAXPAGESIZE 0x1000 - #define elf32_bed elf32_tradbed - - /* Include the target file again for this target. */ diff --git a/src/uClibc/sources/binutils/2.16.1/702-binutils-skip-comments.patch b/src/uClibc/sources/binutils/2.16.1/702-binutils-skip-comments.patch deleted file mode 100644 index 9ef7a7c9ec..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/702-binutils-skip-comments.patch +++ /dev/null @@ -1,93 +0,0 @@ -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html -Fixes -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3 - -Paths adjusted to match crosstool's patcher. - -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de -From: Andreas Schwab -To: Nathan Sidwell -Cc: Ian Lance Taylor , binutils at sources dot redhat dot com -Date: Fri, 23 Apr 2004 22:27:19 +0200 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line - -Nathan Sidwell writes: - -> Index: read.c -> =================================================================== -> RCS file: /cvs/src/src/gas/read.c,v -> retrieving revision 1.76 -> diff -c -3 -p -r1.76 read.c -> *** read.c 12 Mar 2004 17:48:12 -0000 1.76 -> --- read.c 18 Mar 2004 09:56:05 -0000 -> *************** read_a_source_file (char *name) -> *** 1053,1059 **** -> #endif -> input_line_pointer--; -> /* Report unknown char as ignored. */ -> ! ignore_rest_of_line (); -> } -> -> #ifdef md_after_pass_hook -> --- 1053,1059 ---- -> #endif -> input_line_pointer--; -> /* Report unknown char as ignored. */ -> ! demand_empty_rest_of_line (); -> } -> -> #ifdef md_after_pass_hook - -This means that the unknown character is no longer ignored, despite the -comment. As a side effect a line starting with a line comment character -not followed by APP in NO_APP mode now triggers an error instead of just a -warning, breaking builds of glibc on m68k-linux. Earlier in -read_a_source_file where #APP is handled there is another comment that -claims that unknown comments are ignored, when in fact they aren't (only -the initial line comment character is skipped). - -Note that the presence of #APP will mess up the line counters, but -that appears to be difficult to fix. - -Andreas. - -2004-04-23 Andreas Schwab - - * read.c (read_a_source_file): Ignore unknown text after line - comment character. Fix misleading comment. - ---- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200 -+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200 -@@ -950,10 +950,14 @@ read_a_source_file (char *name) - unsigned int new_length; - char *tmp_buf = 0; - -- bump_line_counters (); - s = input_line_pointer; - if (strncmp (s, "APP\n", 4)) -- continue; /* We ignore it */ -+ { -+ /* We ignore it */ -+ ignore_rest_of_line (); -+ continue; -+ } -+ bump_line_counters (); - s += 4; - - sb_new (&sbuf); -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name) - continue; - #endif - input_line_pointer--; -- /* Report unknown char as ignored. */ -+ /* Report unknown char as error. */ - demand_empty_rest_of_line (); - } - - --- -Andreas Schwab, SuSE Labs, schwab@suse.de -SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 -"And now for something completely different." diff --git a/src/uClibc/sources/binutils/2.16.1/sh-flags-off-by-one.patch b/src/uClibc/sources/binutils/2.16.1/sh-flags-off-by-one.patch deleted file mode 100644 index 19a2f54cab..0000000000 --- a/src/uClibc/sources/binutils/2.16.1/sh-flags-off-by-one.patch +++ /dev/null @@ -1,21 +0,0 @@ -2005-08-25 Kaz Kojima - - * elf32-sh.c (sh_elf_get_flags_from_mach): Fix off-by-one error. - -Index: bfd/elf32-sh.c -=================================================================== -RCS file: /cvs/src/src/bfd/elf32-sh.c,v -retrieving revision 1.128 -retrieving revision 1.129 -diff -u -p -r1.128 -r1.129 ---- binutils/bfd/elf32-sh.c 25 Aug 2005 02:32:10 -0000 1.128 -+++ binutils/bfd/elf32-sh.c 25 Aug 2005 05:10:22 -0000 1.129 -@@ -6655,7 +6655,7 @@ sh_elf_set_mach_from_flags (bfd *abfd) - int - sh_elf_get_flags_from_mach (unsigned long mach) - { -- int i = ARRAY_SIZE (sh_ef_bfd_table); -+ int i = ARRAY_SIZE (sh_ef_bfd_table) - 1; - - for (; i>0; i--) - if (sh_ef_bfd_table[i] == mach) diff --git a/src/uClibc/sources/codesets.txt b/src/uClibc/sources/codesets.txt deleted file mode 100644 index 98530d35cf..0000000000 --- a/src/uClibc/sources/codesets.txt +++ /dev/null @@ -1,2 +0,0 @@ -./charmaps/ASCII.pairs -./charmaps/ISO-8859-1.pairs diff --git a/src/uClibc/sources/gcc-001-disable-mathf.patch b/src/uClibc/sources/gcc-001-disable-mathf.patch deleted file mode 100644 index 4772927025..0000000000 --- a/src/uClibc/sources/gcc-001-disable-mathf.patch +++ /dev/null @@ -1,117 +0,0 @@ ---- gcc-3.3/libstdc++-v3/configure 2003-05-01 20:37:25.000000000 -0600 -+++ gcc-3.3-patched/libstdc++-v3/configure 2003-06-21 00:22:02.000000000 -0600 -@@ -5163,10 +5163,6 @@ - EOF - - cat >> confdefs.h <<\EOF --#define HAVE_FREXPF 1 --EOF -- -- cat >> confdefs.h <<\EOF - #define HAVE_HYPOTF 1 - EOF - -@@ -10293,103 +10289,6 @@ - #define HAVE_MMAP 1 - EOF - -- -- cat >> confdefs.h <<\EOF --#define HAVE_ACOSF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_ASINF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_ATAN2F 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_ATANF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_CEILF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_COPYSIGN 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_COPYSIGNF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_COSF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_COSHF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_EXPF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_FABSF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_FLOORF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_FMODF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_FREXPF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_LDEXPF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_LOG10F 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_LOGF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_MODFF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_POWF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_SINF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_SINHF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_SQRTF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_TANF 1 --EOF -- -- cat >> confdefs.h <<\EOF --#define HAVE_TANHF 1 --EOF -- - ;; - esac - diff --git a/src/uClibc/sources/gcc-006-include-search.patch b/src/uClibc/sources/gcc-006-include-search.patch deleted file mode 100644 index 44a310abe7..0000000000 --- a/src/uClibc/sources/gcc-006-include-search.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- gcc-3.3.1/gcc/cppinit.c.old 2003-08-29 17:08:57.000000000 -0500 -+++ gcc-3.3.1/gcc/cppinit.c 2003-08-29 16:53:36.000000000 -0500 -@@ -787,6 +787,7 @@ - if (path != 0 && *path != 0) - path_include (pfile, path, SYSTEM); - -+#if 0 - /* Search "translated" versions of GNU directories. - These have /usr/local/lib/gcc... replaced by specd_prefix. */ - if (specd_prefix != 0 && cpp_GCC_INCLUDE_DIR_len) -@@ -824,6 +825,7 @@ - } - } - } -+#endif - - /* Search ordinary names for GNU include directories. */ - for (p = cpp_include_defaults; p->fname; p++) diff --git a/src/uClibc/sources/gcc-810-libstd++-locale.patch b/src/uClibc/sources/gcc-810-libstd++-locale.patch deleted file mode 100644 index d43b950e58..0000000000 --- a/src/uClibc/sources/gcc-810-libstd++-locale.patch +++ /dev/null @@ -1,283 +0,0 @@ -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; -diff -urN gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc ---- gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc 2003-10-07 03:40:58.000000000 -0500 -+++ gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc 2003-11-10 14:21:45.000000000 -0600 -@@ -36,6 +36,14 @@ - #include - #include - -+#ifdef __UCLIBC_HAS_XLOCALE__ -+struct __uclibc_locale_struct_header { -+ const __ctype_mask_t *__ctype_b; -+ const __ctype_touplow_t *__ctype_tolower; -+ const __ctype_touplow_t *__ctype_toupper; -+}; -+#endif -+ - namespace std - { - // NB: The other ctype specializations are in src/locale.cc and -@@ -46,9 +54,9 @@ - { - _S_destroy_c_locale(_M_c_locale_ctype); - _S_create_c_locale(_M_c_locale_ctype, __s); -- _M_toupper = _M_c_locale_ctype->__ctype_toupper; -- _M_tolower = _M_c_locale_ctype->__ctype_tolower; -- _M_table = _M_c_locale_ctype->__ctype_b; -+ _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper; -+ _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower; -+ _M_table = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b; - } - - #ifdef _GLIBCPP_USE_WCHAR_T -diff -urN gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h ---- gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h 2002-10-08 18:32:22.000000000 -0500 -+++ gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h 2003-11-10 14:20:37.000000000 -0600 -@@ -35,11 +35,21 @@ - // Information as gleaned from /usr/include/ctype.h - - #if _GLIBCPP_C_LOCALE_GNU -+#ifdef __UCLIBC_HAS_XLOCALE__ -+struct __uclibc_locale_struct_header { -+ const __ctype_mask_t *__ctype_b; -+ const __ctype_touplow_t *__ctype_tolower; -+ const __ctype_touplow_t *__ctype_toupper; -+}; -+#endif -+#endif -+ -+#if _GLIBCPP_C_LOCALE_GNU - const ctype_base::mask* - ctype::classic_table() throw() - { - locale::classic(); -- return _S_c_locale->__ctype_b; -+ return ((struct __uclibc_locale_struct_header *)_S_c_locale)->__ctype_b; - } - #else - const ctype_base::mask* -@@ -65,9 +75,9 @@ - : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) - { - _M_c_locale_ctype = _S_clone_c_locale(__cloc); -- _M_toupper = _M_c_locale_ctype->__ctype_toupper; -- _M_tolower = _M_c_locale_ctype->__ctype_tolower; -- _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b; -+ _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper; -+ _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower; -+ _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b; - } - #else - ctype::ctype(__c_locale, const mask* __table, bool __del, -@@ -96,9 +106,9 @@ - __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) - { - _M_c_locale_ctype = _S_c_locale; -- _M_toupper = _M_c_locale_ctype->__ctype_toupper; -- _M_tolower = _M_c_locale_ctype->__ctype_tolower; -- _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b; -+ _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper; -+ _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower; -+ _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b; - } - #else - ctype::ctype(const mask* __table, bool __del, size_t __refs) : diff --git a/src/uClibc/sources/gcc-830-nonhidden.patch b/src/uClibc/sources/gcc-830-nonhidden.patch deleted file mode 100644 index 649a3dc94b..0000000000 --- a/src/uClibc/sources/gcc-830-nonhidden.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -urN gcc-3.3.2-orig/gcc/mklibgcc.in gcc-3.3.2/gcc/mklibgcc.in ---- gcc-3.3.2-orig/gcc/mklibgcc.in 2003-09-08 19:37:34.000000000 -0500 -+++ gcc-3.3.2/gcc/mklibgcc.in 2003-10-22 02:27:34.000000000 -0500 -@@ -296,7 +296,9 @@ - - libgcc_a_objs="$libgcc_objs $libgcc_st_objs" - -- if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then -+ #if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then -+ if [ "@libgcc_visibility@" = I_AM_DISABLED -a "$SHLIB_LINK" ]; then -+ echo "OUCH!!!!! : @libgcc_visibility@ : $SHLIB_LINK : OUCH!!!!!" - libgcc_a_objs= - echo "" - for o in $libgcc_objs $libgcc_st_objs; do diff --git a/src/uClibc/sources/gcc-840-abi_check.patch b/src/uClibc/sources/gcc-840-abi_check.patch deleted file mode 100644 index e4dfd9aa2b..0000000000 --- a/src/uClibc/sources/gcc-840-abi_check.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- gcc-3.3.2/libstdc++-v3/testsuite/Makefile.in.dist 2003-10-26 00:07:43.000000000 -0500 -+++ gcc-3.3.2/libstdc++-v3/testsuite/Makefile.in 2003-10-26 00:06:35.000000000 -0500 -@@ -204,9 +204,9 @@ - PROGRAMS = $(noinst_PROGRAMS) - - abi_check_OBJECTS = abi_check.$(OBJEXT) --abi_check_LDADD = $(LDADD) -+abi_check_LDADD = -lstdc++ $(LDADD) - abi_check_DEPENDENCIES = --abi_check_LDFLAGS = -+abi_check_LDFLAGS = -L../src - CXXFLAGS = @CXXFLAGS@ - CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) - LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) diff --git a/src/uClibc/sources/gcc/4.0.3/100-uclibc-conf.patch b/src/uClibc/sources/gcc/4.0.3/100-uclibc-conf.patch deleted file mode 100644 index 3be7d0975d..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/100-uclibc-conf.patch +++ /dev/null @@ -1,553 +0,0 @@ ---- gcc-4.0.2/gcc/config/t-linux-uclibc -+++ gcc-4.0.2/gcc/config/t-linux-uclibc -@@ -0,0 +1,5 @@ -+# Remove glibc specific files added in t-linux -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES)) -+ -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH)) ---- gcc-4.0.2/gcc/config.gcc -+++ gcc-4.0.2/gcc/config.gcc -@@ -1778,7 +1778,7 @@ - ;; - sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ -- sh-*-linux* | sh[346lbe]*-*-linux* | \ -+ sh*-*-linux* | sh[346lbe]*-*-linux* | \ - sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - tmake_file="${tmake_file} sh/t-sh sh/t-elf" -@@ -2234,10 +2234,16 @@ - *) - echo "*** Configuration ${target} not supported" 1>&2 - exit 1 - ;; - esac -+ -+# Rather than hook into each target, just do it after all the linux -+# targets have been processed -+case ${target} in -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc" -+esac - - case ${target} in - i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) - tmake_file="${tmake_file} i386/t-gmm_malloc" - ;; ---- gcc-4.0.2/gcc/config/alpha/linux-elf.h -+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h -@@ -27,7 +27,11 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else - #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ ---- gcc-4.0.2/gcc/config/arm/linux-elf.h -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h -@@ -81,14 +81,19 @@ - #define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{h*} %{version:-v} \ - %{b} %{Wl,*:%*} \ - %{static:-Bstatic} \ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC ---- gcc-4.0.2/gcc/config/cris/linux.h -+++ gcc-4.0.2/gcc/config/cris/linux.h -@@ -79,6 +79,25 @@ - #undef CRIS_DEFAULT_CPU_VERSION - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG - -+#ifdef USE_UCLIBC -+ -+#undef CRIS_SUBTARGET_VERSION -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" -+ -+#undef CRIS_LINK_SUBTARGET_SPEC -+#define CRIS_LINK_SUBTARGET_SPEC \ -+ "-mcrislinux\ -+ -rpath-link include/asm/../..%s\ -+ %{shared} %{static}\ -+ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ -+ %{!r:%{O2|O3: --gc-sections}}" -+ -+#else /* USE_UCLIBC */ -+ - #undef CRIS_SUBTARGET_VERSION - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" - -@@ -93,6 +112,8 @@ - %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ - %{!r:%{O2|O3: --gc-sections}}" - -+#endif /* USE_UCLIBC */ -+ - - /* Node: Run-time Target */ - ---- gcc-4.0.2/gcc/config/i386/linux.h -+++ gcc-4.0.2/gcc/config/i386/linux.h -@@ -107,6 +107,11 @@ - #define LINK_EMULATION "elf_i386" - #define DYNAMIC_LINKER "/lib/ld-linux.so.2" - -+#ifdef USE_UCLIBC -+#undef DYNAMIC_LINKER -+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#endif -+ - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - { "link_emulation", LINK_EMULATION },\ ---- gcc-4.0.2/gcc/config/i386/linux64.h -+++ gcc-4.0.2/gcc/config/i386/linux64.h -@@ -54,14 +54,21 @@ - When the -shared link option is used a final link is not being - done. */ - -+#ifdef USE_UCLIBC -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \ - %{static:-static}}" - - #define MULTILIB_DEFAULTS { "m64" } ---- gcc-4.0.2/gcc/config/ia64/linux.h -+++ gcc-4.0.2/gcc/config/ia64/linux.h -@@ -37,13 +37,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - ---- gcc-4.0.2/gcc/config/m68k/linux.h -+++ gcc-4.0.2/gcc/config/m68k/linux.h -@@ -127,12 +127,17 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m m68kelf %{shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static}}" - - /* For compatibility with linux/a.out */ ---- gcc-4.0.2/gcc/config/mips/linux.h -+++ gcc-4.0.2/gcc/config/mips/linux.h -@@ -108,14 +108,19 @@ - - /* Borrowed from sparc/linux.h */ - #undef LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #define LINK_SPEC \ - "%(endian_spec) \ - %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC ---- gcc-4.0.2/gcc/config/pa/pa-linux.h -+++ gcc-4.0.2/gcc/config/pa/pa-linux.h -@@ -82,13 +82,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ ---- gcc-4.0.2/gcc/config/rs6000/linux.h -+++ gcc-4.0.2/gcc/config/rs6000/linux.h -@@ -69,7 +69,11 @@ - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" - - #undef LINK_OS_DEFAULT_SPEC -+#ifdef USE_UCLIBC -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" -+#else - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" -+#endif - - #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" ---- gcc-4.0.2/gcc/config/rs6000/sysv4.h -+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h -@@ -949,6 +949,7 @@ - mcall-linux : %(link_os_linux) ; \ - mcall-gnu : %(link_os_gnu) ; \ - mcall-netbsd : %(link_os_netbsd) ; \ -+ mcall-linux-uclibc : %(link_os_linux_uclibc); \ - mcall-openbsd: %(link_os_openbsd) ; \ - : %(link_os_default) }" - -@@ -1127,6 +1128,10 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" - -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" -+ - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -@@ -1293,6 +1298,7 @@ - { "link_os_sim", LINK_OS_SIM_SPEC }, \ - { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ - { "link_os_linux", LINK_OS_LINUX_SPEC }, \ -+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ - { "link_os_gnu", LINK_OS_GNU_SPEC }, \ - { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ ---- gcc-4.0.2/gcc/config/s390/linux.h -+++ gcc-4.0.2/gcc/config/s390/linux.h -@@ -77,6 +77,13 @@ - #define MULTILIB_DEFAULTS { "m31" } - #endif - -+#ifdef USE_UCLIBC -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -@@ -86,8 +93,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \ -+ %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}" - - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack ---- gcc-4.0.2/gcc/config/sh/linux.h -+++ gcc-4.0.2/gcc/config/sh/linux.h -@@ -67,11 +67,16 @@ - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" - #undef SUBTARGET_LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define SUBTARGET_LINK_SPEC \ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}" - - #undef LIB_SPEC ---- gcc-4.0.2/gcc/config/sparc/linux.h -+++ gcc-4.0.2/gcc/config/sparc/linux.h -@@ -130,14 +130,19 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). ---- gcc-4.0.2/gcc/config/sparc/linux64.h -+++ gcc-4.0.2/gcc/config/sparc/linux64.h -@@ -167,12 +166,17 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}} \ - " - ---- gcc-4.0.2/libtool.m4 -+++ gcc-4.0.2/libtool.m4 -@@ -682,6 +682,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] ---- gcc-4.0.2/ltconfig -+++ gcc-4.0.2/ltconfig -@@ -603,6 +603,7 @@ - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in -+linux-uclibc*) ;; - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac -@@ -1274,6 +1275,23 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+linux-uclibc*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' -+ soname_spec='${libname}${release}.so$major' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ # This implies no fast_install, which is unacceptable. -+ # Some rework will be needed to allow for fast_install -+ # before this can be enabled. -+ hardcode_into_libs=yes -+ # Assume using the uClibc dynamic linker. -+ dynamic_linker="uClibc ld.so" -+ ;; -+ - netbsd*) - need_lib_prefix=no - need_version=no ---- gcc-4.0.2/libffi/configure -+++ gcc-4.0.2/libffi/configure -@@ -3457,6 +3457,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libgfortran/configure -+++ gcc-4.0.2/libgfortran/configure -@@ -3681,6 +3681,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libjava/configure -+++ gcc-4.0.2/libjava/configure -@@ -4351,6 +4351,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libmudflap/configure -+++ gcc-4.0.2/libmudflap/configure -@@ -5380,6 +5380,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libobjc/configure -+++ gcc-4.0.2/libobjc/configure -@@ -3283,6 +3283,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/boehm-gc/configure -+++ gcc-4.0.2/boehm-gc/configure -@@ -4320,6 +4320,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/configure -+++ gcc-4.0.2/configure -@@ -1141,7 +1141,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/configure.in -+++ gcc-4.0.2/configure.in -@@ -350,7 +350,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/contrib/regression/objs-gcc.sh -+++ gcc-4.0.2/contrib/regression/objs-gcc.sh -@@ -105,6 +105,10 @@ - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 ---- gcc-4.0.2/zlib/configure -+++ gcc-4.0.2/zlib/configure -@@ -3426,6 +3426,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff --git a/src/uClibc/sources/gcc/4.0.3/200-uclibc-locale.patch b/src/uClibc/sources/gcc/4.0.3/200-uclibc-locale.patch deleted file mode 100644 index ac4cf97209..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/200-uclibc-locale.patch +++ /dev/null @@ -1,3237 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4 ---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4 2005-04-30 13:06:53.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/acinclude.m4 2005-04-28 20:19:01.000000000 -0500 -@@ -1104,7 +1104,7 @@ - AC_MSG_CHECKING([for C locale to use]) - GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@], - [use MODEL for target locale package], -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) -+ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto]) - - # If they didn't use this option switch, or if they specified --enable - # with no specific model, we'll have to look for one. If they -@@ -1120,6 +1120,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ *-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - AC_EGREP_CPP([_GLIBCXX_ok], [ - #include -@@ -1263,6 +1266,40 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ AC_MSG_RESULT(uclibc) -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ AC_SUBST(glibcxx_MOFILES) -+ AC_SUBST(glibcxx_POFILES) -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,59 @@ -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- -+ -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// Written by Jakub Jelinek -+ -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning clean this up -+#endif -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ -+extern "C" __typeof(iswctype_l) __iswctype_l; -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; -+extern "C" __typeof(strcoll_l) __strcoll_l; -+extern "C" __typeof(strftime_l) __strftime_l; -+extern "C" __typeof(strtod_l) __strtod_l; -+extern "C" __typeof(strtof_l) __strtof_l; -+extern "C" __typeof(strtold_l) __strtold_l; -+extern "C" __typeof(strxfrm_l) __strxfrm_l; -+extern "C" __typeof(towlower_l) __towlower_l; -+extern "C" __typeof(towupper_l) __towupper_l; -+extern "C" __typeof(wcscoll_l) __wcscoll_l; -+extern "C" __typeof(wcsftime_l) __wcsftime_l; -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; -+extern "C" __typeof(wctype_l) __wctype_l; -+extern "C" __typeof(newlocale) __newlocale; -+extern "C" __typeof(freelocale) __freelocale; -+extern "C" __typeof(duplocale) __duplocale; -+extern "C" __typeof(uselocale) __uselocale; -+ -+#endif // GLIBC 2.3 and later -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,160 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#include // For errno -+#include -+#include -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) -+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) -+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) -+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) -+#define __strtof_l(S, E, L) strtof((S), (E)) -+#define __strtod_l(S, E, L) strtod((S), (E)) -+#define __strtold_l(S, E, L) strtold((S), (E)) -+#warning should dummy __newlocale check for C|POSIX ? -+#define __newlocale(a, b, c) NULL -+#define __freelocale(a) ((void)0) -+#define __duplocale(a) __c_locale() -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ float __f = __strtof_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __f; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ double __d = __strtod_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __d; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ long double __ld = __strtold_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __ld; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ void -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, -+ __c_locale __old) -+ { -+ __cloc = __newlocale(1 << LC_ALL, __s, __old); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ if (!__cloc) -+ { -+ // This named locale is not supported by the underlying OS. -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " -+ "name not valid")); -+ } -+#endif -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { -+ if (_S_get_c_locale() != __cloc) -+ __freelocale(__cloc); -+ } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc) -+ { return __duplocale(__cloc); } -+} // namespace std -+ -+namespace __gnu_cxx -+{ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES", -+#if _GLIBCXX_NUM_CATEGORIES != 0 -+ "LC_PAPER", -+ "LC_NAME", -+ "LC_ADDRESS", -+ "LC_TELEPHONE", -+ "LC_MEASUREMENT", -+ "LC_IDENTIFICATION" -+#endif -+ }; -+} -+ -+namespace std -+{ -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; -+} // namespace std -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,115 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifndef _C_LOCALE_H -+#define _C_LOCALE_H 1 -+ -+#pragma GCC system_header -+ -+#include // get std::strlen -+#include // get std::snprintf or std::sprintf -+#include -+#include // For codecvt -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC_HAS_LOCALE__ -+#include // For codecvt using iconv, iconv_t -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#include // For messages -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning what is _GLIBCXX_C_LOCALE_GNU for -+#endif -+#define _GLIBCXX_C_LOCALE_GNU 1 -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix categories -+#endif -+// #define _GLIBCXX_NUM_CATEGORIES 6 -+#define _GLIBCXX_NUM_CATEGORIES 0 -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+namespace __gnu_cxx -+{ -+ extern "C" __typeof(uselocale) __uselocale; -+} -+#endif -+ -+namespace std -+{ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ typedef __locale_t __c_locale; -+#else -+ typedef int* __c_locale; -+#endif -+ -+ // Convert numeric value of type _Tv to string and return length of -+ // string. If snprintf is available use it, otherwise fall back to -+ // the unsafe sprintf which, in general, can be dangerous and should -+ // be avoided. -+ template -+ int -+ __convert_from_v(char* __out, const int __size, const char* __fmt, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ _Tv __v, const __c_locale& __cloc, int __prec) -+ { -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc); -+#else -+ _Tv __v, const __c_locale&, int __prec) -+ { -+# ifdef __UCLIBC_HAS_LOCALE__ -+ char* __old = std::setlocale(LC_ALL, NULL); -+ char* __sav = new char[std::strlen(__old) + 1]; -+ std::strcpy(__sav, __old); -+ std::setlocale(LC_ALL, "C"); -+# endif -+#endif -+ -+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __gnu_cxx::__uselocale(__old); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ std::setlocale(LC_ALL, __sav); -+ delete [] __sav; -+#endif -+ return __ret; -+ } -+} -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,306 @@ -+// std::codecvt implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+namespace std -+{ -+ // Specializations. -+#ifdef _GLIBCXX_USE_WCHAR_T -+ codecvt_base::result -+ codecvt:: -+ do_out(state_type& __state, const intern_type* __from, -+ const intern_type* __from_end, const intern_type*& __from_next, -+ extern_type* __to, extern_type* __to_end, -+ extern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // wcsnrtombs is *very* fast but stops if encounters NUL characters: -+ // in case we fall back to wcrtomb and then continue, in a loop. -+ // NB: wcsnrtombs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', -+ __from_end - __from_next); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ const size_t __conv = wcsnrtombs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // wcrtomb. -+ for (; __from < __from_next; ++__from) -+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state); -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ extern_type __buf[MB_LEN_MAX]; -+ __tmp_state = __state; -+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state); -+ if (__conv > static_cast(__to_end - __to_next)) -+ __ret = partial; -+ else -+ { -+ memcpy(__to_next, __buf, __conv); -+ __state = __tmp_state; -+ __to_next += __conv; -+ ++__from_next; -+ } -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ codecvt_base::result -+ codecvt:: -+ do_in(state_type& __state, const extern_type* __from, -+ const extern_type* __from_end, const extern_type*& __from_next, -+ intern_type* __to, intern_type* __to_end, -+ intern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we store a L'\0' and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from_next, '\0', -+ __from_end -+ - __from_next)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ size_t __conv = mbsnrtowcs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (;; ++__to_next, __from += __conv) -+ { -+ __conv = mbrtowc(__to_next, __from, __from_end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __from_next = __from; -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ // It is unclear what to return in this case (see DR 382). -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ if (__to_next < __to_end) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from_next; -+ *__to_next++ = L'\0'; -+ } -+ else -+ __ret = partial; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_encoding() const throw() -+ { -+ // XXX This implementation assumes that the encoding is -+ // stateless and is either single-byte or variable-width. -+ int __ret = 0; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ if (MB_CUR_MAX == 1) -+ __ret = 1; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_max_length() const throw() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ // XXX Probably wrong for stateful encodings. -+ int __ret = MB_CUR_MAX; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_length(state_type& __state, const extern_type* __from, -+ const extern_type* __end, size_t __max) const -+ { -+ int __ret = 0; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we advance past it and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ -+ // A dummy internal buffer is needed in order for mbsnrtocws to consider -+ // its fourth parameter (it wouldn't with NULL as first parameter). -+ wchar_t* __to = static_cast(__builtin_alloca(sizeof(wchar_t) -+ * __max)); -+ while (__from < __end && __max) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from, '\0', -+ __end -+ - __from)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __end; -+ -+ const extern_type* __tmp_from = __from; -+ size_t __conv = mbsnrtowcs(__to, &__from, -+ __from_chunk_end - __from, -+ __max, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (__from = __tmp_from;; __from += __conv) -+ { -+ __conv = mbrtowc(NULL, __from, __end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __state = __tmp_state; -+ __ret += __from - __tmp_from; -+ break; -+ } -+ if (!__from) -+ __from = __from_chunk_end; -+ -+ __ret += __from - __tmp_from; -+ __max -= __conv; -+ -+ if (__from < __end && __max) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from; -+ ++__ret; -+ --__max; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,80 @@ -+// std::collate implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) -+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) -+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) -+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) -+#endif -+ -+namespace std -+{ -+ // These are basically extensions to char_traits, and perhaps should -+ // be put there instead of here. -+ template<> -+ int -+ collate::_M_compare(const char* __one, const char* __two) const -+ { -+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(char* __to, const char* __from, -+ size_t __n) const -+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ int -+ collate::_M_compare(const wchar_t* __one, -+ const wchar_t* __two) const -+ { -+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(wchar_t* __to, const wchar_t* __from, -+ size_t __n) const -+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,300 @@ -+// std::ctype implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __wctype_l(S, L) wctype((S)) -+#define __towupper_l(C, L) towupper((C)) -+#define __towlower_l(C, L) towlower((C)) -+#define __iswctype_l(C, M, L) iswctype((C), (M)) -+#endif -+ -+namespace std -+{ -+ // NB: The other ctype specializations are in src/locale.cc and -+ // various /config/os/* files. -+ template<> -+ ctype_byname::ctype_byname(const char* __s, size_t __refs) -+ : ctype(0, false, __refs) -+ { -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; -+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; -+ this->_M_table = this->_M_c_locale_ctype->__ctype_b; -+#endif -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype::__wmask_type -+ ctype::_M_convert_to_wmask(const mask __m) const -+ { -+ __wmask_type __ret; -+ switch (__m) -+ { -+ case space: -+ __ret = __wctype_l("space", _M_c_locale_ctype); -+ break; -+ case print: -+ __ret = __wctype_l("print", _M_c_locale_ctype); -+ break; -+ case cntrl: -+ __ret = __wctype_l("cntrl", _M_c_locale_ctype); -+ break; -+ case upper: -+ __ret = __wctype_l("upper", _M_c_locale_ctype); -+ break; -+ case lower: -+ __ret = __wctype_l("lower", _M_c_locale_ctype); -+ break; -+ case alpha: -+ __ret = __wctype_l("alpha", _M_c_locale_ctype); -+ break; -+ case digit: -+ __ret = __wctype_l("digit", _M_c_locale_ctype); -+ break; -+ case punct: -+ __ret = __wctype_l("punct", _M_c_locale_ctype); -+ break; -+ case xdigit: -+ __ret = __wctype_l("xdigit", _M_c_locale_ctype); -+ break; -+ case alnum: -+ __ret = __wctype_l("alnum", _M_c_locale_ctype); -+ break; -+ case graph: -+ __ret = __wctype_l("graph", _M_c_locale_ctype); -+ break; -+ default: -+ __ret = __wmask_type(); -+ } -+ return __ret; -+ } -+ -+ wchar_t -+ ctype::do_toupper(wchar_t __c) const -+ { return __towupper_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_toupper(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype::do_tolower(wchar_t __c) const -+ { return __towlower_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_tolower(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ bool -+ ctype:: -+ do_is(mask __m, wchar_t __c) const -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ bool __ret = false; -+ const size_t __bitmasksize = 11; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__m & _M_bit[__bitcur] -+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ { -+ __ret = true; -+ break; -+ } -+ return __ret; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const -+ { -+ for (; __lo < __hi; ++__vec, ++__lo) -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ const size_t __bitmasksize = 11; -+ mask __m = 0; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ __m |= _M_bit[__bitcur]; -+ *__vec = __m; -+ } -+ return __hi; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi && !this->do_is(__m, *__lo)) -+ ++__lo; -+ return __lo; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const -+ { -+ while (__lo < __hi && this->do_is(__m, *__lo) != 0) -+ ++__lo; -+ return __lo; -+ } -+ -+ wchar_t -+ ctype:: -+ do_widen(char __c) const -+ { return _M_widen[static_cast(__c)]; } -+ -+ const char* -+ ctype:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+ while (__lo < __hi) -+ { -+ *__dest = _M_widen[static_cast(*__lo)]; -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ char -+ ctype:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok) -+ return _M_narrow[__wc]; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ const int __c = wctob(__wc); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, -+ char* __dest) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ if (_M_narrow_ok) -+ while (__lo < __hi) -+ { -+ if (*__lo >= 0 && *__lo < 128) -+ *__dest = _M_narrow[*__lo]; -+ else -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ ++__lo; -+ ++__dest; -+ } -+ else -+ while (__lo < __hi) -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ ++__lo; -+ ++__dest; -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+ -+ void -+ ctype::_M_initialize_ctype() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ wint_t __i; -+ for (__i = 0; __i < 128; ++__i) -+ { -+ const int __c = wctob(__i); -+ if (__c == EOF) -+ break; -+ else -+ _M_narrow[__i] = static_cast(__c); -+ } -+ if (__i == 128) -+ _M_narrow_ok = true; -+ else -+ _M_narrow_ok = false; -+ for (size_t __j = 0; -+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) -+ _M_widen[__j] = btowc(__j); -+ -+ for (size_t __k = 0; __k <= 11; ++__k) -+ { -+ _M_bit[__k] = static_cast(_ISbit(__k)); -+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,100 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix gettext stuff -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__dcgettext(const char *domainname, -+ const char *msgid, int category); -+#undef gettext -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) -+#else -+#undef gettext -+#define gettext(msgid) (msgid) -+#endif -+ -+namespace std -+{ -+ // Specializations. -+ template<> -+ string -+ messages::do_get(catalog, int, int, const string& __dfault) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ const char* __msg = const_cast(gettext(__dfault.c_str())); -+ __uselocale(__old); -+ return string(__msg); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ const char* __msg = gettext(__dfault.c_str()); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return string(__msg); -+#else -+ const char* __msg = gettext(__dfault.c_str()); -+ return string(__msg); -+#endif -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ wstring -+ messages::do_get(catalog, int, int, const wstring& __dfault) const -+ { -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ __uselocale(__old); -+ return _M_convert_from_char(__msg); -+# elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return _M_convert_from_char(__msg); -+# else -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ return _M_convert_from_char(__msg); -+# endif -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,118 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix prototypes for *textdomain funcs -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__textdomain(const char *domainname); -+extern "C" char *__bindtextdomain(const char *domainname, -+ const char *dirname); -+#else -+#undef __textdomain -+#undef __bindtextdomain -+#define __textdomain(D) ((void)0) -+#define __bindtextdomain(D,P) ((void)0) -+#endif -+ -+ // Non-virtual member functions. -+ template -+ messages<_CharT>::messages(size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), -+ _M_name_messages(_S_get_c_name()) -+ { } -+ -+ template -+ messages<_CharT>::messages(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), -+ _M_name_messages(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_messages = __tmp; -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::open(const basic_string& __s, const locale& __loc, -+ const char* __dir) const -+ { -+ __bindtextdomain(__s.c_str(), __dir); -+ return this->do_open(__s, __loc); -+ } -+ -+ // Virtual member functions. -+ template -+ messages<_CharT>::~messages() -+ { -+ if (_M_name_messages != _S_get_c_name()) -+ delete [] _M_name_messages; -+ _S_destroy_c_locale(_M_c_locale_messages); -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::do_open(const basic_string& __s, -+ const locale&) const -+ { -+ // No error checking is done, assume the catalog exists and can -+ // be used. -+ __textdomain(__s.c_str()); -+ return 0; -+ } -+ -+ template -+ void -+ messages<_CharT>::do_close(catalog) const -+ { } -+ -+ // messages_byname -+ template -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) -+ : messages<_CharT>(__refs) -+ { -+ if (this->_M_name_messages != locale::facet::_S_get_c_name()) -+ delete [] this->_M_name_messages; -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ this->_M_name_messages = __tmp; -+ -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_messages); -+ this->_S_create_c_locale(this->_M_c_locale_messages, __s); -+ } -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2005-04-28 01:23:02.000000000 -0500 -@@ -0,0 +1,692 @@ -+// std::moneypunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning optimize this for uclibc -+#warning tailor for stub locale support -+#endif -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ // Construct and return valid pattern consisting of some combination of: -+ // space none symbol sign value -+ money_base::pattern -+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) -+ { -+ pattern __ret; -+ -+ // This insanely complicated routine attempts to construct a valid -+ // pattern for use with monyepunct. A couple of invariants: -+ -+ // if (__precedes) symbol -> value -+ // else value -> symbol -+ -+ // if (__space) space -+ // else none -+ -+ // none == never first -+ // space never first or last -+ -+ // Any elegant implementations of this are welcome. -+ switch (__posn) -+ { -+ case 0: -+ case 1: -+ // 1 The sign precedes the value and symbol. -+ __ret.field[0] = sign; -+ if (__space) -+ { -+ // Pattern starts with sign. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[3] = symbol; -+ } -+ __ret.field[2] = space; -+ } -+ else -+ { -+ // Pattern starts with sign and ends with none. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ case 2: -+ // 2 The sign follows the value and symbol. -+ if (__space) -+ { -+ // Pattern either ends with sign. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[1] = space; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ // Pattern ends with sign then none. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = symbol; -+ } -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ break; -+ case 3: -+ // 3 The sign immediately precedes the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = sign; -+ __ret.field[3] = symbol; -+ } -+ else -+ { -+ __ret.field[1] = sign; -+ __ret.field[2] = symbol; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ case 4: -+ // 4 The sign immediately follows the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ default: -+ __ret = pattern(); -+ } -+ return __ret; -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == true -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == false -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len; -+ __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2005-04-28 01:20:20.000000000 -0500 -@@ -0,0 +1,173 @@ -+// std::numpunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, -+ __cloc)); -+ -+ // Check for NULL, which implies no grouping. -+ if (_M_data->_M_thousands_sep == '\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = "true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = "false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = -+ static_cast(__num_base::_S_atoms_out[__i]); -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = -+ static_cast(__num_base::_S_atoms_in[__j]); -+ } -+ else -+ { -+ // Named locale. -+ // NB: In the GNU model wchar_t is always 32 bit wide. -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ -+ if (_M_data->_M_thousands_sep == L'\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = L"true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = L"false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ #endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,406 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __timepunct:: -+ _M_put(char* __s, size_t __maxlen, const char* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = strftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = '\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = "%m/%d/%y"; -+ _M_data->_M_date_era_format = "%m/%d/%y"; -+ _M_data->_M_time_format = "%H:%M:%S"; -+ _M_data->_M_time_era_format = "%H:%M:%S"; -+ _M_data->_M_date_time_format = ""; -+ _M_data->_M_date_time_era_format = ""; -+ _M_data->_M_am = "AM"; -+ _M_data->_M_pm = "PM"; -+ _M_data->_M_am_pm_format = ""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = "Sunday"; -+ _M_data->_M_day2 = "Monday"; -+ _M_data->_M_day3 = "Tuesday"; -+ _M_data->_M_day4 = "Wednesday"; -+ _M_data->_M_day5 = "Thursday"; -+ _M_data->_M_day6 = "Friday"; -+ _M_data->_M_day7 = "Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = "Sun"; -+ _M_data->_M_aday2 = "Mon"; -+ _M_data->_M_aday3 = "Tue"; -+ _M_data->_M_aday4 = "Wed"; -+ _M_data->_M_aday5 = "Thu"; -+ _M_data->_M_aday6 = "Fri"; -+ _M_data->_M_aday7 = "Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = "January"; -+ _M_data->_M_month02 = "February"; -+ _M_data->_M_month03 = "March"; -+ _M_data->_M_month04 = "April"; -+ _M_data->_M_month05 = "May"; -+ _M_data->_M_month06 = "June"; -+ _M_data->_M_month07 = "July"; -+ _M_data->_M_month08 = "August"; -+ _M_data->_M_month09 = "September"; -+ _M_data->_M_month10 = "October"; -+ _M_data->_M_month11 = "November"; -+ _M_data->_M_month12 = "December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = "Jan"; -+ _M_data->_M_amonth02 = "Feb"; -+ _M_data->_M_amonth03 = "Mar"; -+ _M_data->_M_amonth04 = "Apr"; -+ _M_data->_M_amonth05 = "May"; -+ _M_data->_M_amonth06 = "Jun"; -+ _M_data->_M_amonth07 = "Jul"; -+ _M_data->_M_amonth08 = "Aug"; -+ _M_data->_M_amonth09 = "Sep"; -+ _M_data->_M_amonth10 = "Oct"; -+ _M_data->_M_amonth11 = "Nov"; -+ _M_data->_M_amonth12 = "Dec"; -+ } -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); -+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); -+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc); -+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, -+ __cloc); -+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc); -+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc); -+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc); -+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc); -+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc); -+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc); -+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc); -+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc); -+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc); -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc); -+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc); -+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc); -+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc); -+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc); -+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc); -+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc); -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc); -+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc); -+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc); -+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc); -+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc); -+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc); -+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc); -+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc); -+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc); -+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc); -+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc); -+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc); -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc); -+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc); -+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc); -+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc); -+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc); -+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc); -+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc); -+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc); -+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc); -+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc); -+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc); -+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc); -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ __timepunct:: -+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); -+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = L'\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+#warning wide time stuff -+// if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = L"%m/%d/%y"; -+ _M_data->_M_date_era_format = L"%m/%d/%y"; -+ _M_data->_M_time_format = L"%H:%M:%S"; -+ _M_data->_M_time_era_format = L"%H:%M:%S"; -+ _M_data->_M_date_time_format = L""; -+ _M_data->_M_date_time_era_format = L""; -+ _M_data->_M_am = L"AM"; -+ _M_data->_M_pm = L"PM"; -+ _M_data->_M_am_pm_format = L""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = L"Sunday"; -+ _M_data->_M_day2 = L"Monday"; -+ _M_data->_M_day3 = L"Tuesday"; -+ _M_data->_M_day4 = L"Wednesday"; -+ _M_data->_M_day5 = L"Thursday"; -+ _M_data->_M_day6 = L"Friday"; -+ _M_data->_M_day7 = L"Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = L"Sun"; -+ _M_data->_M_aday2 = L"Mon"; -+ _M_data->_M_aday3 = L"Tue"; -+ _M_data->_M_aday4 = L"Wed"; -+ _M_data->_M_aday5 = L"Thu"; -+ _M_data->_M_aday6 = L"Fri"; -+ _M_data->_M_aday7 = L"Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = L"January"; -+ _M_data->_M_month02 = L"February"; -+ _M_data->_M_month03 = L"March"; -+ _M_data->_M_month04 = L"April"; -+ _M_data->_M_month05 = L"May"; -+ _M_data->_M_month06 = L"June"; -+ _M_data->_M_month07 = L"July"; -+ _M_data->_M_month08 = L"August"; -+ _M_data->_M_month09 = L"September"; -+ _M_data->_M_month10 = L"October"; -+ _M_data->_M_month11 = L"November"; -+ _M_data->_M_month12 = L"December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = L"Jan"; -+ _M_data->_M_amonth02 = L"Feb"; -+ _M_data->_M_amonth03 = L"Mar"; -+ _M_data->_M_amonth04 = L"Apr"; -+ _M_data->_M_amonth05 = L"May"; -+ _M_data->_M_amonth06 = L"Jun"; -+ _M_data->_M_amonth07 = L"Jul"; -+ _M_data->_M_amonth08 = L"Aug"; -+ _M_data->_M_amonth09 = L"Sep"; -+ _M_data->_M_amonth10 = L"Oct"; -+ _M_data->_M_amonth11 = L"Nov"; -+ _M_data->_M_amonth12 = L"Dec"; -+ } -+#if 0 -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ union { char *__s; wchar_t *__w; } __u; -+ -+ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc); -+ _M_data->_M_date_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc); -+ _M_data->_M_date_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc); -+ _M_data->_M_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc); -+ _M_data->_M_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc); -+ _M_data->_M_am = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc); -+ _M_data->_M_pm = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc); -+ _M_data->_M_am_pm_format = __u.__w; -+ -+ // Day names, starting with "C"'s Sunday. -+ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc); -+ _M_data->_M_day1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc); -+ _M_data->_M_day2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc); -+ _M_data->_M_day3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc); -+ _M_data->_M_day4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc); -+ _M_data->_M_day5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc); -+ _M_data->_M_day6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc); -+ _M_data->_M_day7 = __u.__w; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc); -+ _M_data->_M_aday1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc); -+ _M_data->_M_aday2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc); -+ _M_data->_M_aday3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc); -+ _M_data->_M_aday4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc); -+ _M_data->_M_aday5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc); -+ _M_data->_M_aday6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc); -+ _M_data->_M_aday7 = __u.__w; -+ -+ // Month names, starting with "C"'s January. -+ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc); -+ _M_data->_M_month01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc); -+ _M_data->_M_month02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc); -+ _M_data->_M_month03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc); -+ _M_data->_M_month04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc); -+ _M_data->_M_month05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc); -+ _M_data->_M_month06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc); -+ _M_data->_M_month07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc); -+ _M_data->_M_month08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc); -+ _M_data->_M_month09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc); -+ _M_data->_M_month10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc); -+ _M_data->_M_month11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc); -+ _M_data->_M_month12 = __u.__w; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc); -+ _M_data->_M_amonth01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc); -+ _M_data->_M_amonth02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc); -+ _M_data->_M_amonth03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc); -+ _M_data->_M_amonth04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc); -+ _M_data->_M_amonth05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc); -+ _M_data->_M_amonth06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc); -+ _M_data->_M_amonth07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc); -+ _M_data->_M_amonth08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc); -+ _M_data->_M_amonth09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc); -+ _M_data->_M_amonth10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc); -+ _M_data->_M_amonth11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc); -+ _M_data->_M_amonth12 = __u.__w; -+ } -+#endif // 0 -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h 2004-05-22 18:46:31.000000000 -0500 -@@ -0,0 +1,68 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions -+// -+ -+// Written by Benjamin Kosnik -+ -+ template -+ __timepunct<_CharT>::__timepunct(size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) -+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_timepunct = __tmp; -+ _M_initialize_timepunct(__cloc); -+ } -+ -+ template -+ __timepunct<_CharT>::~__timepunct() -+ { -+ if (_M_name_timepunct != _S_get_c_name()) -+ delete [] _M_name_timepunct; -+ delete _M_data; -+ _S_destroy_c_locale(_M_c_locale_timepunct); -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,64 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+/** @file ctype_base.h -+ * This is an internal header file, included by other library headers. -+ * You should not attempt to use it directly. -+ */ -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ /// @brief Base class for ctype. -+ struct ctype_base -+ { -+ // Note: In uClibc, the following two types depend on configuration. -+ -+ // Non-standard typedefs. -+ 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; -+ static const mask upper = _ISupper; -+ static const mask lower = _ISlower; -+ static const mask alpha = _ISalpha; -+ static const mask digit = _ISdigit; -+ static const mask xdigit = _ISxdigit; -+ static const mask space = _ISspace; -+ static const mask print = _ISprint; -+ static const mask graph = _ISalpha | _ISdigit | _ISpunct; -+ static const mask cntrl = _IScntrl; -+ static const mask punct = _ISpunct; -+ static const mask alnum = _ISalpha | _ISdigit; -+ }; -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h 2002-06-24 00:49:19.000000000 -0500 -@@ -0,0 +1,69 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) -+// functions go in ctype.cc -+ -+ bool -+ ctype:: -+ is(mask __m, char __c) const -+ { return _M_table[static_cast(__c)] & __m; } -+ -+ const char* -+ ctype:: -+ is(const char* __low, const char* __high, mask* __vec) const -+ { -+ while (__low < __high) -+ *__vec++ = _M_table[static_cast(*__low++)]; -+ return __high; -+ } -+ -+ const char* -+ ctype:: -+ scan_is(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && !(_M_table[static_cast(*__low)] & __m)) -+ ++__low; -+ return __low; -+ } -+ -+ const char* -+ ctype:: -+ scan_not(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && (_M_table[static_cast(*__low)] & __m) != 0) -+ ++__low; -+ return __low; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,92 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ const ctype_base::mask* -+ ctype::classic_table() throw() -+ { return __C_ctype_b; } -+ -+ ctype::ctype(__c_locale, const mask* __table, bool __del, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ ctype::ctype(const mask* __table, bool __del, size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ char -+ ctype::do_toupper(char __c) const -+ { return _M_toupper[static_cast(__c)]; } -+ -+ const char* -+ ctype::do_toupper(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_toupper[static_cast(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -+ -+ char -+ ctype::do_tolower(char __c) const -+ { return _M_tolower[static_cast(__c)]; } -+ -+ const char* -+ ctype::do_tolower(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_tolower[static_cast(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,44 @@ -+// Specific definitions for GNU/Linux -*- C++ -*- -+ -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+#ifndef _GLIBCXX_OS_DEFINES -+#define _GLIBCXX_OS_DEFINES 1 -+ -+// System-specific #define, typedefs, corrections, etc, go here. This -+// file will come before all others. -+ -+// This keeps isanum, et al from being propagated as macros. -+#define __NO_CTYPE 1 -+ -+#include -+ -+// We must not see the optimized string functions GNU libc defines. -+#define __NO_STRING_INLINES -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure ---- gcc-4.0.0-100/libstdc++-v3/configure 2005-04-30 13:06:53.683055232 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 12:24:24.000000000 -0500 -@@ -3998,6 +3998,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -@@ -5672,7 +5677,7 @@ - enableval="$enable_clocale" - - case "$enableval" in -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;; -+ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;; - *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;} - { (exit 1); exit 1; }; } ;; -@@ -5697,6 +5702,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ linux-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -@@ -5927,6 +5935,76 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ echo "$as_me:$LINENO: result: uclibc" >&5 -+echo "${ECHO_T}uclibc" >&6 -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ # Extract the first word of "msgfmt", so it can be a program name with args. -+set dummy msgfmt; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$check_msgfmt"; then -+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_check_msgfmt="yes" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no" -+fi -+fi -+check_msgfmt=$ac_cv_prog_check_msgfmt -+if test -n "$check_msgfmt"; then -+ echo "$as_me:$LINENO: result: $check_msgfmt" >&5 -+echo "${ECHO_T}$check_msgfmt" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ -+ -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host ---- gcc-4.0.0-100/libstdc++-v3/configure.host 2005-04-30 13:06:53.688054472 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure.host 2005-04-28 20:20:32.000000000 -0500 -@@ -249,6 +249,12 @@ - ;; - esac - -+# Override for uClibc since linux-uclibc gets mishandled above. -+case "${host_os}" in -+ *-uclibc*) -+ os_include_dir="os/uclibc" -+ ;; -+esac - - # Set any OS-dependent and CPU-dependent bits. - # THIS TABLE IS SORTED. KEEP IT THAT WAY. -diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4 ---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 2005-04-30 13:06:53.689054320 -0500 -+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4 2005-04-28 20:27:15.000000000 -0500 -@@ -142,6 +142,98 @@ - ;; - esac - ;; -+ *-uclibc*) -+# Temporary hack until we implement the float versions of the libm funcs -+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ -+ machine/endian.h machine/param.h sys/machine.h sys/types.h \ -+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) -+ SECTION_FLAGS='-ffunction-sections -fdata-sections' -+ AC_SUBST(SECTION_FLAGS) -+ GLIBCXX_CHECK_LINKER_FEATURES -+ GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT -+ GLIBCXX_CHECK_WCHAR_T_SUPPORT -+ -+ # For LFS. -+ AC_DEFINE(HAVE_INT64_T) -+ case "$target" in -+ *-uclinux*) -+ # Don't enable LFS with uClinux -+ ;; -+ *) -+ AC_DEFINE(_GLIBCXX_USE_LFS) -+ esac -+ -+ # For showmanyc_helper(). -+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) -+ GLIBCXX_CHECK_POLL -+ GLIBCXX_CHECK_S_ISREG_OR_S_IFREG -+ -+ # For xsputn_2(). -+ AC_CHECK_HEADERS(sys/uio.h) -+ GLIBCXX_CHECK_WRITEV -+ -+# AC_DEFINE(HAVE_ACOSF) -+# AC_DEFINE(HAVE_ASINF) -+# AC_DEFINE(HAVE_ATANF) -+# AC_DEFINE(HAVE_ATAN2F) -+ AC_DEFINE(HAVE_CEILF) -+ AC_DEFINE(HAVE_COPYSIGN) -+# AC_DEFINE(HAVE_COPYSIGNF) -+# AC_DEFINE(HAVE_COSF) -+# AC_DEFINE(HAVE_COSHF) -+# AC_DEFINE(HAVE_EXPF) -+# AC_DEFINE(HAVE_FABSF) -+ AC_DEFINE(HAVE_FINITE) -+ AC_DEFINE(HAVE_FINITEF) -+ AC_DEFINE(HAVE_FLOORF) -+# AC_DEFINE(HAVE_FMODF) -+# AC_DEFINE(HAVE_FREXPF) -+ AC_DEFINE(HAVE_HYPOT) -+# AC_DEFINE(HAVE_HYPOTF) -+ AC_DEFINE(HAVE_ISINF) -+ AC_DEFINE(HAVE_ISINFF) -+ AC_DEFINE(HAVE_ISNAN) -+ AC_DEFINE(HAVE_ISNANF) -+# AC_DEFINE(HAVE_LOGF) -+# AC_DEFINE(HAVE_LOG10F) -+# AC_DEFINE(HAVE_MODFF) -+# AC_DEFINE(HAVE_SINF) -+# AC_DEFINE(HAVE_SINHF) -+# AC_DEFINE(HAVE_SINCOS) -+# AC_DEFINE(HAVE_SINCOSF) -+ AC_DEFINE(HAVE_SQRTF) -+# AC_DEFINE(HAVE_TANF) -+# AC_DEFINE(HAVE_TANHF) -+ if test x"long_double_math_on_this_cpu" = x"yes"; then -+# AC_DEFINE(HAVE_ACOSL) -+# AC_DEFINE(HAVE_ASINL) -+# AC_DEFINE(HAVE_ATANL) -+# AC_DEFINE(HAVE_ATAN2L) -+# AC_DEFINE(HAVE_CEILL) -+# AC_DEFINE(HAVE_COPYSIGNL) -+# AC_DEFINE(HAVE_COSL) -+# AC_DEFINE(HAVE_COSHL) -+# AC_DEFINE(HAVE_EXPL) -+# AC_DEFINE(HAVE_FABSL) -+# AC_DEFINE(HAVE_FINITEL) -+# AC_DEFINE(HAVE_FLOORL) -+# AC_DEFINE(HAVE_FMODL) -+# AC_DEFINE(HAVE_FREXPL) -+# AC_DEFINE(HAVE_HYPOTL) -+# AC_DEFINE(HAVE_ISINFL) -+# AC_DEFINE(HAVE_ISNANL) -+# AC_DEFINE(HAVE_LOGL) -+# AC_DEFINE(HAVE_LOG10L) -+# AC_DEFINE(HAVE_MODFL) -+# AC_DEFINE(HAVE_POWL) -+# AC_DEFINE(HAVE_SINL) -+# AC_DEFINE(HAVE_SINHL) -+# AC_DEFINE(HAVE_SINCOSL) -+# AC_DEFINE(HAVE_SQRTL) -+# AC_DEFINE(HAVE_TANL) -+# AC_DEFINE(HAVE_TANHL) -+ fi -+ ;; - *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu) - AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ - machine/endian.h machine/param.h sys/machine.h sys/types.h \ -@@ -156,7 +248,7 @@ - AC_DEFINE(HAVE_INT64_T) - case "$target" in - *-uclinux*) -- # Don't enable LFS with uClibc -+ # Don't enable LFS with uClinux - ;; - *) - AC_DEFINE(_GLIBCXX_USE_LFS) -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-30 13:06:53.690054168 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -101,7 +101,9 @@ - using std::wmemcpy; - using std::wmemmove; - using std::wmemset; -+#if _GLIBCXX_HAVE_WCSFTIME - using std::wcsftime; -+#endif - - #if _GLIBCXX_USE_C99 - using std::wcstold; -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-30 13:06:53.691054016 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -179,7 +179,9 @@ - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; -+#if _GLIBCXX_HAVE_WCSFTIME - using ::wcsftime; -+#endif - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; diff --git a/src/uClibc/sources/gcc/4.0.3/300-libstdc++-pic.patch b/src/uClibc/sources/gcc/4.0.3/300-libstdc++-pic.patch deleted file mode 100644 index a9d6e7185f..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/300-libstdc++-pic.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- gcc-4.0.0/libstdc++-v3/src/Makefile.am -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am -@@ -214,6 +214,10 @@ - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@ - - -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Added bits to build debug library. - if GLIBCXX_BUILD_DEBUG - all-local: build_debug ---- gcc-4.0.0/libstdc++-v3/src/Makefile.in -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in -@@ -625,7 +625,7 @@ - - install-data-am: install-data-local - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-info: install-info-am - -@@ -664,7 +664,7 @@ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ -- uninstall-toolexeclibLTLIBRARIES -+ uninstall-toolexeclibLTLIBRARIES install-exec-local - - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver -@@ -743,6 +743,11 @@ - install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) -+ -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/src/uClibc/sources/gcc/4.0.3/301-missing-execinfo_h.patch b/src/uClibc/sources/gcc/4.0.3/301-missing-execinfo_h.patch deleted file mode 100644 index 0e2092f3fb..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/301-missing-execinfo_h.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500 -+++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500 -@@ -500,7 +500,7 @@ - #ifdef __linux__ - # include - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ -- && !defined(__ia64__) -+ && !defined(__ia64__) && !defined(__UCLIBC__) - # ifndef GC_HAVE_BUILTIN_BACKTRACE - # define GC_HAVE_BUILTIN_BACKTRACE - # endif diff --git a/src/uClibc/sources/gcc/4.0.3/302-c99-snprintf.patch b/src/uClibc/sources/gcc/4.0.3/302-c99-snprintf.patch deleted file mode 100644 index dfb22d681b..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/302-c99-snprintf.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig 2005-04-29 00:08:41.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h 2005-04-29 00:08:45.000000000 -0500 -@@ -142,7 +142,7 @@ - using ::vsprintf; - } - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__) - - #undef snprintf - #undef vfscanf diff --git a/src/uClibc/sources/gcc/4.0.3/303-c99-complex-ugly-hack.patch b/src/uClibc/sources/gcc/4.0.3/303-c99-complex-ugly-hack.patch deleted file mode 100644 index 2ccc80d9bb..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/303-c99-complex-ugly-hack.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- gcc-4.0.0/libstdc++-v3/configure-old 2005-04-30 22:04:48.061603912 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 22:06:13.678588152 -0500 -@@ -7194,6 +7194,9 @@ - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ - #include -+#ifdef __UCLIBC__ -+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs -+#endif - int - main () - { diff --git a/src/uClibc/sources/gcc/4.0.3/304-index_macro.patch b/src/uClibc/sources/gcc/4.0.3/304-index_macro.patch deleted file mode 100644 index 1fac112fa9..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/304-index_macro.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps 2006-03-24 01:49:51 +0100 -+++ gcc-4.1.0/libstdc++-v3/include/ext/rope 2006-03-24 01:49:37 +0100 -@@ -59,6 +59,9 @@ - #include - #include - -+/* cope w/ index defined as macro, SuSv3 proposal */ -+#undef index -+ - # ifdef __GC - # define __GC_CONST const - # else ---- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps 2006-03-24 01:50:04 +0100 -+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h 2006-03-24 01:50:28 +0100 -@@ -53,6 +53,9 @@ - #include // For uninitialized_copy_n - #include // For power - -+/* cope w/ index defined as macro, SuSv3 proposal */ -+#undef index -+ - namespace __gnu_cxx - { - using std::size_t; diff --git a/src/uClibc/sources/gcc/4.0.3/602-sdk-libstdc++-includes.patch b/src/uClibc/sources/gcc/4.0.3/602-sdk-libstdc++-includes.patch deleted file mode 100644 index c7676ae6a2..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/602-sdk-libstdc++-includes.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am ---- gcc-4.0.0-100/libstdc++-v3/fragment.am 2004-10-25 15:32:40.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/fragment.am 2005-04-28 21:48:43.000000000 -0500 -@@ -18,5 +18,5 @@ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once - - # -I/-D flags to pass when compiling. --AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include - -diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am ---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am 2003-08-27 16:29:42.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am 2005-04-28 21:48:43.000000000 -0500 -@@ -32,7 +32,7 @@ - - libmath_la_SOURCES = stubs.c - --AM_CPPFLAGS = $(CANADIAN_INCLUDES) -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include - - # Only compiling "C" sources in this directory. - LIBTOOL = @LIBTOOL@ --tag CC diff --git a/src/uClibc/sources/gcc/4.0.3/800-arm-bigendian.patch b/src/uClibc/sources/gcc/4.0.3/800-arm-bigendian.patch deleted file mode 100644 index 307aea3ea3..0000000000 --- a/src/uClibc/sources/gcc/4.0.3/800-arm-bigendian.patch +++ /dev/null @@ -1,67 +0,0 @@ -By Lennert Buytenhek -Adds support for arm*b-linux* big-endian ARM targets - -See http://gcc.gnu.org/PR16350 - ---- gcc-4.0.3/gcc/config/arm/linux-elf.h -+++ gcc-4.0.3/gcc/config/arm/linux-elf.h -@@ -31,19 +31,33 @@ - /* Do not assume anything about header files. */ - #define NO_IMPLICIT_EXTERN_C - -+/* -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-* -+ * (big endian) configurations. -+ */ -+#if TARGET_BIG_ENDIAN_DEFAULT -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END -+#define TARGET_ENDIAN_OPTION "mbig-endian" -+#define TARGET_LINKER_EMULATION "armelfb_linux" -+#else -+#define TARGET_ENDIAN_DEFAULT 0 -+#define TARGET_ENDIAN_OPTION "mlittle-endian" -+#define TARGET_LINKER_EMULATION "armelf_linux" -+#endif -+ - #undef TARGET_DEFAULT_FLOAT_ABI - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD - - #undef TARGET_DEFAULT --#define TARGET_DEFAULT (0) -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT) - - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 - --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p" -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p" - - #undef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ -- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } - - /* The GNU C++ standard library requires that these macros be defined. */ - #undef CPLUSPLUS_CPP_SPEC -@@ -90,7 +104,7 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ - -X \ -- %{mbig-endian:-EB}" \ -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ - SUBTARGET_EXTRA_LINK_SPEC - - #define TARGET_OS_CPP_BUILTINS() \ ---- gcc-4.0.3/gcc/config.gcc -+++ gcc-4.0.3/gcc/config.gcc -@@ -672,6 +672,11 @@ - ;; - arm*-*-linux*) # ARM GNU/Linux with ELF - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" -+ case $target in -+ arm*b-*) -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines" -+ ;; -+ esac - tmake_file="${tmake_file} arm/t-arm arm/t-linux" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - gnu_ld=yes diff --git a/src/uClibc/sources/i386-gcc-soft-float.patch b/src/uClibc/sources/i386-gcc-soft-float.patch deleted file mode 100644 index 805d9bf3e6..0000000000 --- a/src/uClibc/sources/i386-gcc-soft-float.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff -urN gcc-3.3.2-orig/gcc/config/i386/i386.h gcc-3.3.2/gcc/config/i386/i386.h ---- gcc-3.3.2-orig/gcc/config/i386/i386.h 2003-06-25 16:18:31.000000000 -0500 -+++ gcc-3.3.2/gcc/config/i386/i386.h 2003-10-22 01:46:57.000000000 -0500 -@@ -653,6 +653,7 @@ - /* Define for XFmode or TFmode extended real floating point support. - The XFmode is specified by i386 ABI, while TFmode may be faster - due to alignment and simplifications in the address calculations. */ -+#if 0 - #define LONG_DOUBLE_TYPE_SIZE (TARGET_128BIT_LONG_DOUBLE ? 128 : 96) - #define MAX_LONG_DOUBLE_TYPE_SIZE 128 - #ifdef __x86_64__ -@@ -660,6 +661,17 @@ - #else - #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 96 - #endif -+#else -+ /* Set up for x86 soft float with 64-bit long doubles, since that's -+ * all the soft float emulation supports. */ -+#define LONG_DOUBLE_TYPE_SIZE (TARGET_128BIT_LONG_DOUBLE ? 128 : (TARGET_80387 ? 96 : 64)) -+#define MAX_LONG_DOUBLE_TYPE_SIZE 128 -+#ifdef __x86_64__ -+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128 -+#else -+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 96 : 64) -+#endif -+#endif - - /* Set the value of FLT_EVAL_METHOD in float.h. When using only the - FPU, assume that the fpcw is set to extended precision; when using -diff -urN gcc-3.3.2-orig/gcc/config/t-linux gcc-3.3.2/gcc/config/t-linux ---- gcc-3.3.2-orig/gcc/config/t-linux 2003-06-04 11:56:11.000000000 -0500 -+++ gcc-3.3.2/gcc/config/t-linux 2003-10-22 01:46:39.000000000 -0500 -@@ -14,3 +14,28 @@ - LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c - LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c -+ -+############################################## -+# We want fine grained libraries, so use the new code to build the -+# floating point emulation libraries. -+FPBIT = fp-bit.c -+DPBIT = dp-bit.c -+ -+#LIB2FUNCS_EXTRA = xp-bit.c -+ -+dp-bit.c: $(srcdir)/config/fp-bit.c -+ echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c -+ echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c -+ echo '#endif' >> dp-bit.c -+ cat $(srcdir)/config/fp-bit.c >> dp-bit.c -+ -+fp-bit.c: $(srcdir)/config/fp-bit.c -+ echo '#define FLOAT' > fp-bit.c -+ echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c -+ echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c -+ echo '#endif' >> fp-bit.c -+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c -+ -+#MULTILIB_OPTIONS = msoft-float -+#MULTILIB_DIRNAMES = soft-float -+ diff --git a/src/uClibc/sources/patch-kernel.sh b/src/uClibc/sources/patch-kernel.sh deleted file mode 100644 index b6722cecd9..0000000000 --- a/src/uClibc/sources/patch-kernel.sh +++ /dev/null @@ -1,54 +0,0 @@ -#! /bin/sh -# A little script I whipped up to make it easy to -# patch source trees and have sane error handling -# -Erik -# -# (c) 2002 Erik Andersen - -# Set directories from arguments, or use defaults. -targetdir=${1-.} -patchdir=${2-../kernel-patches} -shift 2 -patchpattern=${@-*} - -if [ ! -d "${targetdir}" ] ; then - echo "Aborting. '${targetdir}' is not a directory." - exit 1 -fi -if [ ! -d "${patchdir}" ] ; then - echo "Aborting. '${patchdir}' is not a directory." - exit 1 -fi - -for i in `cd ${patchdir}; ls -d ${patchpattern} 2> /dev/null` ; do - case "$i" in - *.gz) - type="gzip"; uncomp="gunzip -dc"; ;; - *.bz) - type="bzip"; uncomp="bunzip -dc"; ;; - *.bz2) - type="bzip2"; uncomp="bunzip2 -dc"; ;; - *.zip) - type="zip"; uncomp="unzip -d"; ;; - *.Z) - type="compress"; uncomp="uncompress -c"; ;; - *) - type="plaintext"; uncomp="cat"; ;; - esac - echo "" - echo "Applying ${i} using ${type}: " - ${uncomp} ${patchdir}/${i} | patch -p1 -E -d ${targetdir} - if [ $? != 0 ] ; then - echo "Patch failed! Please fix $i!" - exit 1 - fi -done - -# Check for rejects... -if [ "`find $targetdir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then - echo "Aborting. Reject files found." - exit 1 -fi - -# Remove backup files -find $targetdir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \; diff --git a/tools/make-functions b/tools/make-functions index b81ce3c952..79fa1b3889 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -406,16 +406,10 @@ ipfiredist() { } installmake() { - if [ -f $BASEDIR/build/usr/src/lfs/$1 ]; then - echo "`date -u '+%b %e %T'`: Building $*" | tee -a $LOGFILE - cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MESSAGE="$1\t " download >> $LOGFILE 2>&1 - if [ $? -ne 0 ]; then - exiterror "Download error in $1" - fi - cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MESSAGE="$1\t md5sum" md5 >> $LOGFILE 2>&1 - if [ $? -ne 0 ]; then - exiterror "md5sum error in $1, check file in cache or signature" - fi + lfsmakecommoncheck $* + [ $? == 1 ] && return 0 + + local PKG_TIME_START=`date +%s` chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ PATH=/usr/local/bin:/opt/$MACHINE-uClibc/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin \ @@ -429,11 +423,15 @@ installmake() { BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ /bin/bash -x -c "cd /usr/src/lfs && \ make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1 - if [ $? -ne 0 ]; then - exiterror "Building $*" - fi + + local COMPILE_SUCCESS=$? + local PKG_TIME_END=`date +%s` + + if [ $COMPILE_SUCCESS -ne 0 ]; then + beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ] + exiterror "Building $*"; else - exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/$1" + beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ] fi return 0 } -- 2.39.2