diff options
55 files changed, 216 insertions, 5161 deletions
diff --git a/conf/bitbake.conf b/conf/bitbake.conf index 04603d393d..0141eb5bcd 100644 --- a/conf/bitbake.conf +++ b/conf/bitbake.conf @@ -170,6 +170,8 @@ IMAGE_CMD_ext2 = "genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_ IMAGE_CMD_ext2.gz = "mkdir ${DEPLOY_DIR_IMAGE}/tmp.gz; genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2 ${EXTRA_IMAGECMD}; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz; rmdir ${DEPLOY_DIR_IMAGE}/tmp.gz" IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend" IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -jcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.bz2 ." +IMAGE_CMD_tar.gz = "cd ${IMAGE_ROOTFS} && tar -zcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.gz ." +IMAGE_CMD_tar.bz2 = "cd ${IMAGE_ROOTFS} && tar -jcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.bz2 ." EXTRA_IMAGECMD = "" EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x40000" EXTRA_IMAGECMD_squashfs = "-le -b 16384" diff --git a/conf/distro/jlime.conf b/conf/distro/jlime.conf index 4f4ecd42af..f1cda8d539 100644 --- a/conf/distro/jlime.conf +++ b/conf/distro/jlime.conf @@ -35,7 +35,7 @@ PREFERRED_VERSION_xserver-kdrive = "20050207" INHERIT += "package_tar package_ipk" BBINCLUDELOGS = "yes" MODUTILS = "26" -IMAGE_FSTYPES = "tar" +IMAGE_FSTYPES = "tar.bz2" BOOTSTRAP_EXTRA_DEPENDS += "pcmcia-cs ncurses nano virtual/kernel wireless-tools console-tools" BOOTSTRAP_EXTRA_RDEPENDS += "pcmcia-cs ncurses nano wireless-tools \ diff --git a/conf/distro/openzaurus-3.5.4.conf b/conf/distro/openzaurus-3.5.4.conf index 9ca0f6a572..1eb347fe02 100644 --- a/conf/distro/openzaurus-3.5.4.conf +++ b/conf/distro/openzaurus-3.5.4.conf @@ -1,4 +1,4 @@ -include conf/distro/openzaurus.conf +include conf/distro/openzaurus.inc DISTRO = "openzaurus" DISTRO_NAME = "OpenZaurus" DISTRO_VERSION = "3.5.3-snapshot-${DATE}" diff --git a/conf/distro/openzaurus.conf b/conf/distro/openzaurus.inc index 9208aeda09..9208aeda09 100644 --- a/conf/distro/openzaurus.conf +++ b/conf/distro/openzaurus.inc diff --git a/conf/machine/borzoi.conf b/conf/machine/borzoi.conf index 0950a5a008..b2d2eafc22 100644 --- a/conf/machine/borzoi.conf +++ b/conf/machine/borzoi.conf @@ -15,6 +15,6 @@ PIVOTBOOT_EXTRA_RRECOMMENDS += "" BOOTSTRAP_EXTRA_DEPENDS += "hdparm e2fsprogs" BOOTSTRAP_EXTRA_RDEPENDS += "hdparm e2fsprogs e2fsprogs-e2fsck e2fsprogs-mke2fs" -IMAGE_FSTYPES = "jffs2 tar" +IMAGE_FSTYPES = "jffs2 tar.gz" ROOT_FLASH_SIZE = "32" diff --git a/conf/machine/lite5200.conf b/conf/machine/lite5200.conf index e8cb819551..f990d1390e 100644 --- a/conf/machine/lite5200.conf +++ b/conf/machine/lite5200.conf @@ -14,6 +14,6 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross" PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross" -IMAGE_FSTYPES = "jffs2 tar" +IMAGE_FSTYPES = "jffs2 tar.bz2" include conf/machine/tune-ppc603e.conf diff --git a/conf/machine/spitz.conf b/conf/machine/spitz.conf index 6e6ea7f605..79ce0c4193 100644 --- a/conf/machine/spitz.conf +++ b/conf/machine/spitz.conf @@ -15,6 +15,6 @@ PIVOTBOOT_EXTRA_RRECOMMENDS += "" BOOTSTRAP_EXTRA_DEPENDS += "hdparm e2fsprogs" BOOTSTRAP_EXTRA_RDEPENDS += "hdparm e2fsprogs e2fsprogs-e2fsck e2fsprogs-mke2fs" -IMAGE_FSTYPES = "jffs2 tar" +IMAGE_FSTYPES = "jffs2 tar.gz" ROOT_FLASH_SIZE = "100" diff --git a/packages/gcc-csl/.mtn2git_empty b/packages/abiword/abiword-2.3.6/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gcc-csl/.mtn2git_empty +++ b/packages/abiword/abiword-2.3.6/.mtn2git_empty diff --git a/packages/abiword/abiword-2.3.6/cdump-hack.patch b/packages/abiword/abiword-2.3.6/cdump-hack.patch new file mode 100644 index 0000000000..afe75287e5 --- /dev/null +++ b/packages/abiword/abiword-2.3.6/cdump-hack.patch @@ -0,0 +1,11 @@ +--- abi/src/wp/ap/xp/GNUmakefile.am.orig 2005-05-09 21:33:34.915201456 +0000 ++++ abi/src/wp/ap/xp/GNUmakefile.am 2005-05-09 21:33:49.341008400 +0000 +@@ -107,7 +107,7 @@ + ap_wp_sidebar.cpp + + CDUMP=$(top_srcdir)/src/tools/cdump/xp/cdump.c +-CDUMPAPP=$(top_builddir)/src/tools/cdump/xp/cdump ++CDUMPAPP=cdump + + ap_wp_splash.cpp: $(CDUMP) $(srcdir)/splash.png + $(CDUMPAPP) $(srcdir)/splash.png g_pngSplash > ap_wp_splash.cpp diff --git a/packages/abiword/abiword_2.3.6.bb b/packages/abiword/abiword_2.3.6.bb new file mode 100644 index 0000000000..76b569db29 --- /dev/null +++ b/packages/abiword/abiword_2.3.6.bb @@ -0,0 +1,52 @@ +DESCRIPTION ="AbiWord is free word processing program similar to Microsoft(r) Word"" +HOMEPAGE="http://www.abiword.org"" +MAINTAINER="Koen Kooi <koen@handhelds.org>" +LICENSE="GPLv2" + +DEPENDS = "cdump-native libgsf libgnomeprint libgnomeprintui libglade libfribidi enchant jpeg libpng perl glibc libxml2" +RDEPENDS = "enchant glibc-gconv-ibm850 glibc-gconv-cp1252 \ + glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" +PR="r4" + +SRC_URI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz \ + file://cdump-hack.patch;patch=1" +S = "${WORKDIR}/abiword-${PV}/abi" + +FILES_${PN} += " ${datadir}/icons/* \ +${datadir}/AbiSuite-2.2/AbiWord/glade \ +${datadir}/AbiSuite-2.2/AbiWord/scripts \ +${datadir}/AbiSuite-2.2/AbiWord/system.profile-en \ +${datadir}/AbiSuite-2.2/AbiWord/system.profile-en_GB \ +#${datadir}/AbiSuite-2.2/templates/A4.awt \ +#${datadir}/AbiSuite-2.2/templates/US-Letter.awt \ +${datadir}/AbiSuite-2.2/templates/normal.awt \ +${datadir}/AbiSuite-2.2/templates/normal.awt-en_GB \ +${datadir}/AbiSuite-2.2/templates/Employee-Directory.awt \ +${datadir}/AbiSuite-2.2/templates/Business-Report.awt \ +${datadir}/AbiSuite-2.2/templates/Fax-Coversheet.awt \ +${datadir}/AbiSuite-2.2/templates/Resume.awt \ +${datadir}/AbiSuite-2.2/templates/Two-Columns.awt \ +${datadir}/AbiSuite-2.2/templates/Memo.awt \ +${datadir}/AbiSuite-2.2/templates/Press-Release.awt " + +inherit autotools + +#abiword needs this native tool +export BUILD_CDUMPTOOL="${STAGING_BINDIR}/cdump" + +PARALLEL_MAKE="" + +do_configure () { + cd ${S} + ./autogen.sh + ./configure --prefix=/usr --host=${TARGET_SYS} --disable-pspell --enable-enchant +# --enable-debug + cp -f ${STAGING_BINDIR}/cdump src/tools/cdump/xp/ +} + +do_install_append() { + install -d ${D}${datadir}/pixmaps/ + mv ${D}${datadir}/icons/* ${D}${datadir}/pixmaps/ +} + + diff --git a/packages/ftpd-topfield/ftpd-topfield_0.6.0.bb b/packages/ftpd-topfield/ftpd-topfield_0.6.0.bb deleted file mode 100644 index 06cd4732d7..0000000000 --- a/packages/ftpd-topfield/ftpd-topfield_0.6.0.bb +++ /dev/null @@ -1,39 +0,0 @@ -# This package builds the ftpd-topfield program -PR = "r0" -DESCRIPTION = "ftpd-topfield - FTP access to TopField PVR" -HOMEPAGE = "http://sourceforge.net/projects/puppy" -MAINTAINER = "NSLU2 Linux <www.nslu2-linux.org>" -SECTION = "net" -LICENSE = "MIT" - -DEPENDS = "libusb" - -SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=ftpd-topfield;tag=FTPD_TOPFIELD_0_6_0 \ - cvs://anonymous@cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=libtopfield;tag=LIBTOPFIELD_0_5_0 \ - file://init" - -# The source will end up in the subdirectory 'ftpd-topfield' - no release name -S = "${WORKDIR}/ftpd-topfield" -SL = "${WORKDIR}/libtopfield" - -inherit update-rc.d - -INITSCRIPT_NAME = "ftpd-topfield" -INITSCRIPT_PARAMS = "defaults" - -# Just the one package at present -PACKAGES = "${PN}" - -inherit autotools - -do_compile() { - oe_runmake -C ${SL} libtopfield.a - oe_runmake LDLIBS="${LDFLAGS} -L ../libtopfield -ltopfield -lusb" -} - -do_install() { - install -d ${D}${sbindir} - install -m 0755 ${S}/ftpd ${D}${sbindir}/ftpd-topfield - install -d ${D}${sysconfdir}/ ${D}${sysconfdir}/init.d - install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/ftpd-topfield -} diff --git a/packages/ftpd-topfield/ftpd-topfield_0.6.1.bb b/packages/ftpd-topfield/ftpd-topfield_0.6.1.bb index 095162fcbe..c93e8c2120 100644 --- a/packages/ftpd-topfield/ftpd-topfield_0.6.1.bb +++ b/packages/ftpd-topfield/ftpd-topfield_0.6.1.bb @@ -9,7 +9,7 @@ LICENSE = "MIT" DEPENDS = "libusb" SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=ftpd-topfield;tag=FTPD_TOPFIELD_0_6_1 \ - cvs://anonymous@cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=libtopfield;tag=LIBTOPFIELD_0_6_1 \ + cvs://anonymous@cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=libtopfield;tag=FTPD_TOPFIELD_0_6_1 \ file://init" # The source will end up in the subdirectory 'ftpd-topfield' - no release name diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/.mtn2git_empty b/packages/gcc-csl/gcc-csl-2004-q1a/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/.mtn2git_empty +++ /dev/null diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-lib1asm.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-lib1asm.patch deleted file mode 100644 index ca42bfbc0a..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-lib1asm.patch +++ /dev/null @@ -1,24 +0,0 @@ -# Fixes errors like the following when building glibc (or any other executable -# or shared library) when using gcc 3.4.0 for ARM with softfloat: -# -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3' -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3' -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3' -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2' -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi' - -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200 -@@ -4,7 +4,10 @@ - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-nolibfloat.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-nolibfloat.patch deleted file mode 100644 index a2bf0d97c9..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-3.4.0-arm-nolibfloat.patch +++ /dev/null @@ -1,16 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- gcc-2004-q1a/gcc/config/arm/linux-elf.h~gcc-3.4.0-arm-nolibfloat -+++ gcc-2004-q1a/gcc/config/arm/linux-elf.h -@@ -55,7 +55,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-100-conf.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-100-conf.patch deleted file mode 100644 index 38a28bfb22..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-100-conf.patch +++ /dev/null @@ -1,550 +0,0 @@ ---- gcc-3.4.0/gcc/config/arm/linux-elf.h~gcc-uclibc-3.4.0-100-conf.patch 2004-01-31 01:18:11.000000000 -0500 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-04-23 20:48:46.000000000 -0400 -@@ -81,6 +81,7 @@ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" - - #undef LINK_SPEC -+#ifndef USE_UCLIBC - #define LINK_SPEC "%{h*} %{version:-v} \ - %{b} %{Wl,*:%*} \ - %{static:-Bstatic} \ -@@ -91,6 +92,18 @@ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC -+#else -+#define LINK_SPEC "%{h*} %{version:-v} \ -+ %{b} %{Wl,*:%*} \ -+ %{static:-Bstatic} \ -+ %{shared:-shared} \ -+ %{symbolic:-Bsymbolic} \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ -+ -X \ -+ %{mbig-endian:-EB}" \ -+ SUBTARGET_EXTRA_LINK_SPEC -+#endif - - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS() - ---- gcc-3.4.0/gcc/config/cris/linux.h~gcc-uclibc-3.4.0-100-conf.patch 2003-11-28 22:08:09.000000000 -0500 -+++ gcc-3.4.0/gcc/config/cris/linux.h 2004-04-23 20:48:46.000000000 -0400 -@@ -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-3.4.0/gcc/config/i386/linux.h~gcc-uclibc-3.4.0-100-conf.patch 2003-11-28 22:08:10.000000000 -0500 -+++ gcc-3.4.0/gcc/config/i386/linux.h 2004-04-23 20:48:46.000000000 -0400 -@@ -118,6 +118,7 @@ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \ - %{static:-static}}}" - #else -+#ifndef USE_UCLIBC - #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ -@@ -125,6 +126,15 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ - %{static:-static}}}" -+#else -+#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ -+ %{!shared: \ -+ %{!ibcs: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ -+ %{static:-static}}}" -+#endif - #endif - - /* A C statement (sans semicolon) to output to the stdio stream ---- gcc-3.4.0/gcc/config/mips/linux.h~gcc-uclibc-3.4.0-100-conf.patch 2004-02-19 16:45:21.000000000 -0500 -+++ gcc-3.4.0/gcc/config/mips/linux.h 2004-04-23 20:48:46.000000000 -0400 -@@ -109,6 +109,7 @@ - - /* Borrowed from sparc/linux.h */ - #undef LINK_SPEC -+#ifndef USE_UCLIBC - #define LINK_SPEC \ - "%(endian_spec) \ - %{shared:-shared} \ -@@ -118,6 +119,17 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ - %{static:-static}}}" -+#else -+#define LINK_SPEC \ -+ "%(endian_spec) \ -+ %{shared:-shared} \ -+ %{!shared: \ -+ %{!ibcs: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ -+ %{static:-static}}}" -+#endif - - #undef SUBTARGET_ASM_SPEC - #define SUBTARGET_ASM_SPEC "\ ---- gcc-3.4.0/gcc/config/rs6000/linux.h~gcc-uclibc-3.4.0-100-conf.patch 2004-02-25 10:11:19.000000000 -0500 -+++ gcc-3.4.0/gcc/config/rs6000/linux.h 2004-04-23 20:48:46.000000000 -0400 -@@ -61,7 +61,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-3.4.0/gcc/config/rs6000/sysv4.h~gcc-uclibc-3.4.0-100-conf.patch 2004-03-02 17:34:58.000000000 -0500 -+++ gcc-3.4.0/gcc/config/rs6000/sysv4.h 2004-04-23 20:48:46.000000000 -0400 -@@ -949,6 +949,7 @@ - msim : %(link_os_sim) ; \ - mwindiss : %(link_os_windiss) ; \ - mcall-freebsd: %(link_os_freebsd) ; \ -+ mcall-uclibc : %(link_os_linux_uclibc); \ - mcall-linux : %(link_os_linux) ; \ - mcall-gnu : %(link_os_gnu) ; \ - mcall-netbsd : %(link_os_netbsd) ; \ -@@ -1235,6 +1236,12 @@ - - #define LINK_OS_WINDISS_SPEC "" - -+/* uClibc support for Linux. */ -+ -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" -+ - /* Define any extra SPECS that the compiler needs to generate. */ - /* Override rs6000.h definition. */ - #undef SUBTARGET_EXTRA_SPECS -@@ -1299,6 +1306,7 @@ - { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ - { "link_os_windiss", LINK_OS_WINDISS_SPEC }, \ -+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ - { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ - { "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \ - { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \ ---- gcc-3.4.0/gcc/config/sh/linux.h~gcc-uclibc-3.4.0-100-conf.patch 2004-01-11 21:29:13.000000000 -0500 -+++ gcc-3.4.0/gcc/config/sh/linux.h 2004-04-23 20:48:46.000000000 -0400 -@@ -73,12 +73,21 @@ - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" - #undef SUBTARGET_LINK_SPEC -+#ifndef USE_UCLIBC - #define SUBTARGET_LINK_SPEC \ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ - %{static:-static}" -+#else -+#define SUBTARGET_LINK_SPEC \ -+ "%{shared:-shared} \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ -+ %{static:-static}" -+#endif - - #undef LIB_SPEC - #define LIB_SPEC \ ---- gcc-3.4.0/gcc/config.gcc~gcc-uclibc-3.4.0-100-conf.patch 2004-04-16 22:28:24.000000000 -0400 -+++ gcc-3.4.0/gcc/config.gcc 2004-04-23 20:48:46.000000000 -0400 -@@ -664,6 +664,17 @@ - extra_parts="" - use_collect2=yes - ;; -+arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc -+ 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" -+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux" -+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ gnu_ld=yes -+ case x${enable_threads} in -+ x | xyes | xpthreads | xposix) -+ thread_file='posix' -+ ;; -+ esac -+ ;; - 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" - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux" -@@ -725,6 +736,10 @@ - tmake_file="cris/t-cris cris/t-elfmulti" - gas=yes - ;; -+cris-*-linux-uclibc*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" -+ tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc" -+ ;; - cris-*-linux*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" - tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" -@@ -988,6 +1003,11 @@ - thread_file='single' - fi - ;; -+i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux -+ # with ELF format using uClibc -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" -+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff" -+ ;; - i[34567]86-*-linux*) # Intel 80386's running GNU/Linux - # with ELF format using glibc 2 - # aka GNU/Linux C library 6 -@@ -1547,6 +1567,16 @@ - gnu_ld=yes - gas=yes - ;; -+mips*-*-linux-uclibc*) # Linux MIPS, either endian. uClibc -+ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" -+ case ${target} in -+ mipsisa32*-*) -+ target_cpu_default="MASK_SOFT_FLOAT" -+ tm_defines="MIPS_ISA_DEFAULT=32" -+ ;; -+ esac -+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc mips/t-linux" -+ ;; - mips*-*-linux*) # Linux MIPS, either endian. - tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" - case ${target} in -@@ -1764,6 +1794,11 @@ - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" - ;; -+powerpc-*-linux-uclibc*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" -+ out_file=rs6000/rs6000.c -+ tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm" -+ ;; - powerpc-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" -@@ -1924,9 +1959,17 @@ - tmake_file="${tmake_file} sh/t-le" - ;; - esac -- tmake_file="${tmake_file} sh/t-linux" -+ case ${target} in -+ *-*-linux-uclibc*) tmake_file="${tmake_file} sh/t-linux-uclibc" ;; -+ *) tmake_file="${tmake_file} sh/t-linux" ;; -+ esac - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h" - case ${target} in -+ sh64*-*-linux-uclibc*) -+ tmake_file="${tmake_file} sh/t-sh64-uclibc" -+ tm_file="${tm_file} sh/sh64.h" -+ extra_headers="shmedia.h ushmedia.h sshmedia.h" -+ ;; - sh64*) - tmake_file="${tmake_file} sh/t-sh64" - tm_file="${tm_file} sh/sh64.h" ---- gcc-3.4.0/libstdc++-v3/include/c_std/std_cwchar.h~gcc-uclibc-3.4.0-100-conf.patch 2003-12-08 22:44:35.000000000 -0500 -+++ gcc-3.4.0/libstdc++-v3/include/c_std/std_cwchar.h 2004-04-23 20:48:46.000000000 -0400 -@@ -179,7 +179,9 @@ - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; -+#ifdef HAVE_WCSFTIME - using ::wcsftime; -+#endif - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; ---- gcc-3.4.0/libstdc++-v3/aclocal.m4~gcc-uclibc-3.4.0-100-conf.patch 2004-03-18 12:35:23.000000000 -0500 -+++ gcc-3.4.0/libstdc++-v3/aclocal.m4 2004-04-23 21:36:59.000000000 -0400 -@@ -1024,6 +1024,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case x${target_os} in -+ xlinux-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu) - AC_EGREP_CPP([_GLIBCXX_ok], [ - #include <features.h> -@@ -1133,6 +1136,41 @@ - CTIME_CC=config/locale/gnu/time_members.cc - CLOCALE_INTERNAL_H=config/locale/gnu/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_H=config/locale/uclibc/codecvt_specializations.h -+ 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 -+ ;; - ieee_1003.1-2001) - AC_MSG_RESULT(IEEE 1003.1) - ---- gcc-3.4.0/libstdc++-v3/configure~gcc-uclibc-3.4.0-100-conf.patch 2004-03-18 12:35:25.000000000 -0500 -+++ gcc-3.4.0/libstdc++-v3/configure 2004-04-23 21:37:24.000000000 -0400 -@@ -5545,6 +5545,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case x${target_os} in -+ xlinux-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu) - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" -@@ -5741,6 +5744,77 @@ - CTIME_CC=config/locale/gnu/time_members.cc - CLOCALE_INTERNAL_H=config/locale/gnu/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_H=config/locale/uclibc/codecvt_specializations.h -+ 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 -+ ;; - ieee_1003.1-2001) - echo "$as_me:$LINENO: result: IEEE 1003.1" >&5 - echo "${ECHO_T}IEEE 1003.1" >&6 ---- gcc-3.4.0/libstdc++-v3/configure.host~gcc-uclibc-3.4.0-100-conf.patch 2004-03-18 12:36:12.000000000 -0500 -+++ gcc-3.4.0/libstdc++-v3/configure.host 2004-04-23 20:48:46.000000000 -0400 -@@ -161,6 +161,9 @@ - freebsd*) - os_include_dir="os/bsd/freebsd" - ;; -+ linux-uclibc*) -+ os_include_dir="os/uclibc" -+ ;; - gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) - os_include_dir="os/gnu-linux" - ;; ---- gcc-3.4.0/ltconfig~gcc-uclibc-3.4.0-100-conf.patch 2004-03-05 16:05:41.000000000 -0500 -+++ gcc-3.4.0/ltconfig 2004-04-23 20:48:46.000000000 -0400 -@@ -603,6 +603,7 @@ - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in - linux-gnu*) ;; -+linux-uclibc*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - -@@ -1262,6 +1263,24 @@ - 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. -+ # Note: copied from linux-gnu, and may not be appropriate. -+ hardcode_into_libs=yes -+ # Assume using the uClibc dynamic linker. -+ dynamic_linker="uClibc ld.so" -+ ;; -+ - netbsd*) - need_lib_prefix=no - need_version=no ---- /dev/null 2003-09-15 09:40:47.000000000 -0400 -+++ gcc-3.4.0/gcc/config/cris/t-linux-uclibc 2004-04-22 20:00:41.000000000 -0400 -@@ -0,0 +1,3 @@ -+T_CFLAGS = -DUSE_UCLIBC -+TARGET_LIBGCC2_CFLAGS += -fPIC -+CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS) ---- /dev/null 2003-09-15 09:40:47.000000000 -0400 -+++ gcc-3.4.0/gcc/config/sh/t-linux-uclibc 2004-04-22 20:00:41.000000000 -0400 -@@ -0,0 +1,16 @@ -+T_CFLAGS = -DUSE_UCLIBC -+ -+# Don't run fixproto -+STMP_FIXPROTO = -+ -+TARGET_LIBGCC2_CFLAGS = -fpic -+LIB1ASMFUNCS_CACHE = _ic_invalidate -+ -+LIB2FUNCS_EXTRA= -+ -+MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4 -+MULTILIB_DIRNAMES= -+MULTILIB_MATCHES = -+MULTILIB_EXCEPTIONS= -+ -+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o ---- /dev/null 2003-09-15 09:40:47.000000000 -0400 -+++ gcc-3.4.0/gcc/config/sh/t-sh64-uclibc 2004-04-22 20:00:41.000000000 -0400 -@@ -0,0 +1,13 @@ -+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o -+ -+LIB1ASMFUNCS = \ -+ _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ -+ _shcompact_call_trampoline _shcompact_return_trampoline \ -+ _shcompact_incoming_args _ic_invalidate _nested_trampoline \ -+ _push_pop_shmedia_regs \ -+ _udivdi3 _divdi3 _umoddi3 _moddi3 -+ -+MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu -+MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64 -+MULTILIB_MATCHES= -+MULTILIB_EXCEPTIONS= ---- /dev/null 2003-09-15 09:40:47.000000000 -0400 -+++ gcc-3.4.0/gcc/config/t-linux-uclibc 2004-04-22 20:00:41.000000000 -0400 -@@ -0,0 +1,23 @@ -+T_CFLAGS = -DUSE_UCLIBC -+ -+# Don't run fixproto -+STMP_FIXPROTO = -+ -+# Compile crtbeginS.o and crtendS.o with pic. -+CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC -+# Compile libgcc2.a with pic. -+TARGET_LIBGCC2_CFLAGS = -fPIC -+ -+# Override t-slibgcc-elf-ver to export some libgcc symbols with -+# the symbol versions that glibc used. -+SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver -+ -+# Use unwind-dw2-fde-glibc -+#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 -+ -+# Use unwind-dw2-fde -+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ -+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c -+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-120-softfloat.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-120-softfloat.patch deleted file mode 100644 index f2431896cf..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-120-softfloat.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- gcc-3.3.2-old/configure.in 2003-08-09 01:57:21.000000000 -0500 -+++ gcc-3.3.2/configure.in 2004-01-15 12:46:29.000000000 -0600 -@@ -1418,6 +1418,11 @@ - fi - - FLAGS_FOR_TARGET= -+case " $targargs " in -+ *" --nfp "* | *" --without-float "*) -+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -msoft-float' -+ ;; -+esac - case " $target_configdirs " in - *" newlib "*) - case " $targargs " in diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-200-code.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-200-code.patch deleted file mode 100644 index e9bec3cf60..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc-uclibc-3.4.0-200-code.patch +++ /dev/null @@ -1,3078 +0,0 @@ -Warning! This patch is not finished. The wide char time-related stuff -is broken or non-functional. But it serves as a starting point to get -things building while I continue to work on the uClibc locale internals. -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2004-01-09 07:55:02.000000000 -0600 -@@ -0,0 +1,63 @@ -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- -+ -+// Copyright (C) 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. -+ -+// Written by Jakub Jelinek <jakub@redhat.com> -+ -+#include <clocale> -+ -+#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(strtol_l) __strtol_l; -+extern "C" __typeof(strtoll_l) __strtoll_l; -+extern "C" __typeof(strtoul_l) __strtoul_l; -+extern "C" __typeof(strtoull_l) __strtoull_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-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2004-01-09 08:37:55.000000000 -0600 -@@ -0,0 +1,166 @@ -+// 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 <bkoz@redhat.com> -+ -+#include <cerrno> -+#include <locale> -+#include <stdexcept> -+#include <langinfo.h> -+#include <bits/c++locale_internal.h> -+ -+#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)) -+#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 && *__sanity == '\0' && 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 && *__sanity == '\0' && 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 && *__sanity == '\0' && 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) -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __cloc = __newlocale(1 << LC_ALL, __s, __old); -+ if (!__cloc) -+ { -+ // This named locale is not supported by the underlying OS. -+ __throw_runtime_error("attempt to create locale from unknown name"); -+ } -+#else -+ __cloc = NULL; -+#endif -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ if (_S_get_c_locale() != __cloc) -+ __freelocale(__cloc); -+#else -+ __cloc = NULL; -+#endif -+ } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc) -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ { return __duplocale(__cloc); } -+#else -+ { return __c_locale(); } -+#endif -+} // namespace std -+ -+namespace __uclibc_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 = __uclibc_cxx::category_names; -+} // namespace std -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h 2004-01-09 07:51:06.000000000 -0600 -@@ -0,0 +1,118 @@ -+// 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 <bkoz@redhat.com> -+ -+#ifndef _CXX_BITS_C_LOCALE_H -+#define _CXX_BITS_C_LOCALE_H 1 -+ -+#pragma GCC system_header -+ -+#include <clocale> -+#include <langinfo.h> // For codecvt -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC_HAS_LOCALE__ -+#include <iconv.h> // For codecvt using iconv, iconv_t -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#include <libintl.h> // 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<typename _Tv> -+ int -+ __convert_from_v(char* __out, const int __size, const char* __fmt, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ _Tv __v, const __c_locale& __cloc, int __prec = -1) -+ { -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc); -+#else -+ _Tv __v, const __c_locale&, int __prec = -1) -+ { -+# ifdef __UCLIBC_HAS_LOCALE__ -+ char* __old = setlocale(LC_ALL, NULL); -+ char* __sav = static_cast<char*>(malloc(strlen(__old) + 1)); -+ if (__sav) -+ strcpy(__sav, __old); -+ setlocale(LC_ALL, "C"); -+# endif -+#endif -+ -+ int __ret; -+ if (__prec >= 0) -+ __ret = snprintf(__out, __size, __fmt, __prec, __v); -+ else -+ __ret = snprintf(__out, __size, __fmt, __v); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __gnu_cxx::__uselocale(__old); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ setlocale(LC_ALL, __sav); -+ free(__sav); -+#endif -+ return __ret; -+ } -+} -+ -+#endif -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2004-01-09 04:04:34.000000000 -0600 -@@ -0,0 +1,113 @@ -+// 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 <bkoz@redhat.com> -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+namespace std -+{ -+ // Specializations. -+#ifdef _GLIBCXX_USE_WCHAR_T -+ codecvt_base::result -+ codecvt<wchar_t, char, mbstate_t>:: -+ 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 = error; -+ size_t __len = min(__from_end - __from, __to_end - __to); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_S_get_c_locale()); -+#endif -+ size_t __conv = wcsrtombs(__to, &__from, __len, &__state); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ if (__conv == __len) -+ { -+ __from_next = __from; -+ __to_next = __to + __conv; -+ __ret = ok; -+ } -+ else if (__conv > 0 && __conv < __len) -+ { -+ __from_next = __from; -+ __to_next = __to + __conv; -+ __ret = partial; -+ } -+ else -+ __ret = error; -+ -+ return __ret; -+ } -+ -+ codecvt_base::result -+ codecvt<wchar_t, char, mbstate_t>:: -+ 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 = error; -+ size_t __len = min(__from_end - __from, __to_end - __to); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_S_get_c_locale()); -+#endif -+ size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ if (__conv == __len) -+ { -+ __from_next = __from; -+ __to_next = __to + __conv; -+ __ret = ok; -+ } -+ else if (__conv > 0 && __conv < __len) -+ { -+ __from_next = __from; -+ __to_next = __to + __conv; -+ __ret = partial; -+ } -+ else -+ __ret = error; -+ -+ return __ret; -+ } -+#endif -+} -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 2004-01-09 01:53:51.000000000 -0600 -@@ -0,0 +1,461 @@ -+// Locale support (codecvt) -*- C++ -*- -+ -+// Copyright (C) 2000, 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.1.5 Template class codecvt -+// -+ -+// Warning: this file is not meant for user inclusion. Use <locale>. -+ -+// Written by Benjamin Kosnik <bkoz@cygnus.com> -+ -+ // XXX -+ // Define this here to codecvt.cc can have _S_max_size definition. -+#define _GLIBCXX_USE___ENC_TRAITS 1 -+ -+ // Extension to use icov for dealing with character encodings, -+ // including conversions and comparisons between various character -+ // sets. This object encapsulates data that may need to be shared between -+ // char_traits, codecvt and ctype. -+ class __enc_traits -+ { -+ public: -+ // Types: -+ // NB: A conversion descriptor subsumes and enhances the -+ // functionality of a simple state type such as mbstate_t. -+ typedef iconv_t __desc_type; -+ -+ protected: -+ // Data Members: -+ // Max size of charset encoding name -+ static const int _S_max_size = 32; -+ // Name of internal character set encoding. -+ char _M_int_enc[_S_max_size]; -+ // Name of external character set encoding. -+ char _M_ext_enc[_S_max_size]; -+ -+ // Conversion descriptor between external encoding to internal encoding. -+ __desc_type _M_in_desc; -+ // Conversion descriptor between internal encoding to external encoding. -+ __desc_type _M_out_desc; -+ -+ // Details the byte-order marker for the external encoding, if necessary. -+ int _M_ext_bom; -+ -+ // Details the byte-order marker for the internal encoding, if necessary. -+ int _M_int_bom; -+ -+ public: -+ explicit __enc_traits() -+ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) -+ { -+ memset(_M_int_enc, 0, _S_max_size); -+ memset(_M_ext_enc, 0, _S_max_size); -+ } -+ -+ explicit __enc_traits(const char* __int, const char* __ext, -+ int __ibom = 0, int __ebom = 0) -+ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) -+ { -+ strncpy(_M_int_enc, __int, _S_max_size); -+ strncpy(_M_ext_enc, __ext, _S_max_size); -+ } -+ -+ // 21.1.2 traits typedefs -+ // p4 -+ // typedef STATE_T state_type -+ // requires: state_type shall meet the requirements of -+ // CopyConstructible types (20.1.3) -+ __enc_traits(const __enc_traits& __obj): _M_in_desc(0), _M_out_desc(0) -+ { -+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); -+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); -+ _M_ext_bom = __obj._M_ext_bom; -+ _M_int_bom = __obj._M_int_bom; -+ } -+ -+ // Need assignment operator as well. -+ __enc_traits& -+ operator=(const __enc_traits& __obj) -+ { -+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); -+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); -+ _M_in_desc = 0; -+ _M_out_desc = 0; -+ _M_ext_bom = __obj._M_ext_bom; -+ _M_int_bom = __obj._M_int_bom; -+ return *this; -+ } -+ -+ ~__enc_traits() -+ { -+ __desc_type __err = reinterpret_cast<iconv_t>(-1); -+ if (_M_in_desc && _M_in_desc != __err) -+ iconv_close(_M_in_desc); -+ if (_M_out_desc && _M_out_desc != __err) -+ iconv_close(_M_out_desc); -+ } -+ -+ void -+ _M_init() -+ { -+ const __desc_type __err = reinterpret_cast<iconv_t>(-1); -+ if (!_M_in_desc) -+ { -+ _M_in_desc = iconv_open(_M_int_enc, _M_ext_enc); -+ if (_M_in_desc == __err) -+ __throw_runtime_error("creating iconv input descriptor failed."); -+ } -+ if (!_M_out_desc) -+ { -+ _M_out_desc = iconv_open(_M_ext_enc, _M_int_enc); -+ if (_M_out_desc == __err) -+ __throw_runtime_error("creating iconv output descriptor failed."); -+ } -+ } -+ -+ bool -+ _M_good() -+ { -+ const __desc_type __err = reinterpret_cast<iconv_t>(-1); -+ bool __test = _M_in_desc && _M_in_desc != __err; -+ __test &= _M_out_desc && _M_out_desc != __err; -+ return __test; -+ } -+ -+ const __desc_type* -+ _M_get_in_descriptor() -+ { return &_M_in_desc; } -+ -+ const __desc_type* -+ _M_get_out_descriptor() -+ { return &_M_out_desc; } -+ -+ int -+ _M_get_external_bom() -+ { return _M_ext_bom; } -+ -+ int -+ _M_get_internal_bom() -+ { return _M_int_bom; } -+ -+ const char* -+ _M_get_internal_enc() -+ { return _M_int_enc; } -+ -+ const char* -+ _M_get_external_enc() -+ { return _M_ext_enc; } -+ }; -+ -+ // Partial specialization -+ // This specialization takes advantage of iconv to provide code -+ // conversions between a large number of character encodings. -+ template<typename _InternT, typename _ExternT> -+ class codecvt<_InternT, _ExternT, __enc_traits> -+ : public __codecvt_abstract_base<_InternT, _ExternT, __enc_traits> -+ { -+ public: -+ // Types: -+ typedef codecvt_base::result result; -+ typedef _InternT intern_type; -+ typedef _ExternT extern_type; -+ typedef __enc_traits state_type; -+ typedef __enc_traits::__desc_type __desc_type; -+ typedef __enc_traits __enc_type; -+ -+ // Data Members: -+ static locale::id id; -+ -+ explicit -+ codecvt(size_t __refs = 0) -+ : __codecvt_abstract_base<intern_type, extern_type, state_type>(__refs) -+ { } -+ -+ explicit -+ codecvt(__enc_type* __enc, size_t __refs = 0) -+ : __codecvt_abstract_base<intern_type, extern_type, state_type>(__refs) -+ { } -+ -+ protected: -+ virtual -+ ~codecvt() { } -+ -+ virtual result -+ 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; -+ -+ virtual result -+ do_unshift(state_type& __state, extern_type* __to, -+ extern_type* __to_end, extern_type*& __to_next) const; -+ -+ virtual result -+ 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; -+ -+ virtual int -+ do_encoding() const throw(); -+ -+ virtual bool -+ do_always_noconv() const throw(); -+ -+ virtual int -+ do_length(const state_type&, const extern_type* __from, -+ const extern_type* __end, size_t __max) const; -+ -+ virtual int -+ do_max_length() const throw(); -+ }; -+ -+ template<typename _InternT, typename _ExternT> -+ locale::id -+ codecvt<_InternT, _ExternT, __enc_traits>::id; -+ -+ // This adaptor works around the signature problems of the second -+ // argument to iconv(): SUSv2 and others use 'const char**', but glibc 2.2 -+ // uses 'char**', which matches the POSIX 1003.1-2001 standard. -+ // Using this adaptor, g++ will do the work for us. -+ template<typename _T> -+ inline size_t -+ __iconv_adaptor(size_t(*__func)(iconv_t, _T, size_t*, char**, size_t*), -+ iconv_t __cd, char** __inbuf, size_t* __inbytes, -+ char** __outbuf, size_t* __outbytes) -+ { return __func(__cd, (_T)__inbuf, __inbytes, __outbuf, __outbytes); } -+ -+ template<typename _InternT, typename _ExternT> -+ codecvt_base::result -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ 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 = codecvt_base::error; -+ if (__state._M_good()) -+ { -+ typedef state_type::__desc_type __desc_type; -+ const __desc_type* __desc = __state._M_get_out_descriptor(); -+ const size_t __fmultiple = sizeof(intern_type); -+ size_t __fbytes = __fmultiple * (__from_end - __from); -+ const size_t __tmultiple = sizeof(extern_type); -+ size_t __tbytes = __tmultiple * (__to_end - __to); -+ -+ // Argument list for iconv specifies a byte sequence. Thus, -+ // all to/from arrays must be brutally casted to char*. -+ char* __cto = reinterpret_cast<char*>(__to); -+ char* __cfrom; -+ size_t __conv; -+ -+ // Some encodings need a byte order marker as the first item -+ // in the byte stream, to designate endian-ness. The default -+ // value for the byte order marker is NULL, so if this is -+ // the case, it's not necessary and we can just go on our -+ // merry way. -+ int __int_bom = __state._M_get_internal_bom(); -+ if (__int_bom) -+ { -+ size_t __size = __from_end - __from; -+ intern_type* __cfixed = static_cast<intern_type*>(__builtin_alloca(sizeof(intern_type) * (__size + 1))); -+ __cfixed[0] = static_cast<intern_type>(__int_bom); -+ char_traits<intern_type>::copy(__cfixed + 1, __from, __size); -+ __cfrom = reinterpret_cast<char*>(__cfixed); -+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, -+ &__fbytes, &__cto, &__tbytes); -+ } -+ else -+ { -+ intern_type* __cfixed = const_cast<intern_type*>(__from); -+ __cfrom = reinterpret_cast<char*>(__cfixed); -+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes, -+ &__cto, &__tbytes); -+ } -+ -+ if (__conv != size_t(-1)) -+ { -+ __from_next = reinterpret_cast<const intern_type*>(__cfrom); -+ __to_next = reinterpret_cast<extern_type*>(__cto); -+ __ret = codecvt_base::ok; -+ } -+ else -+ { -+ if (__fbytes < __fmultiple * (__from_end - __from)) -+ { -+ __from_next = reinterpret_cast<const intern_type*>(__cfrom); -+ __to_next = reinterpret_cast<extern_type*>(__cto); -+ __ret = codecvt_base::partial; -+ } -+ else -+ __ret = codecvt_base::error; -+ } -+ } -+ return __ret; -+ } -+ -+ template<typename _InternT, typename _ExternT> -+ codecvt_base::result -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ do_unshift(state_type& __state, extern_type* __to, -+ extern_type* __to_end, extern_type*& __to_next) const -+ { -+ result __ret = codecvt_base::error; -+ if (__state._M_good()) -+ { -+ typedef state_type::__desc_type __desc_type; -+ const __desc_type* __desc = __state._M_get_in_descriptor(); -+ const size_t __tmultiple = sizeof(intern_type); -+ size_t __tlen = __tmultiple * (__to_end - __to); -+ -+ // Argument list for iconv specifies a byte sequence. Thus, -+ // all to/from arrays must be brutally casted to char*. -+ char* __cto = reinterpret_cast<char*>(__to); -+ size_t __conv = __iconv_adaptor(iconv,*__desc, NULL, NULL, -+ &__cto, &__tlen); -+ -+ if (__conv != size_t(-1)) -+ { -+ __to_next = reinterpret_cast<extern_type*>(__cto); -+ if (__tlen == __tmultiple * (__to_end - __to)) -+ __ret = codecvt_base::noconv; -+ else if (__tlen == 0) -+ __ret = codecvt_base::ok; -+ else -+ __ret = codecvt_base::partial; -+ } -+ else -+ __ret = codecvt_base::error; -+ } -+ return __ret; -+ } -+ -+ template<typename _InternT, typename _ExternT> -+ codecvt_base::result -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ 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 = codecvt_base::error; -+ if (__state._M_good()) -+ { -+ typedef state_type::__desc_type __desc_type; -+ const __desc_type* __desc = __state._M_get_in_descriptor(); -+ const size_t __fmultiple = sizeof(extern_type); -+ size_t __flen = __fmultiple * (__from_end - __from); -+ const size_t __tmultiple = sizeof(intern_type); -+ size_t __tlen = __tmultiple * (__to_end - __to); -+ -+ // Argument list for iconv specifies a byte sequence. Thus, -+ // all to/from arrays must be brutally casted to char*. -+ char* __cto = reinterpret_cast<char*>(__to); -+ char* __cfrom; -+ size_t __conv; -+ -+ // Some encodings need a byte order marker as the first item -+ // in the byte stream, to designate endian-ness. The default -+ // value for the byte order marker is NULL, so if this is -+ // the case, it's not necessary and we can just go on our -+ // merry way. -+ int __ext_bom = __state._M_get_external_bom(); -+ if (__ext_bom) -+ { -+ size_t __size = __from_end - __from; -+ extern_type* __cfixed = static_cast<extern_type*>(__builtin_alloca(sizeof(extern_type) * (__size + 1))); -+ __cfixed[0] = static_cast<extern_type>(__ext_bom); -+ char_traits<extern_type>::copy(__cfixed + 1, __from, __size); -+ __cfrom = reinterpret_cast<char*>(__cfixed); -+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, -+ &__flen, &__cto, &__tlen); -+ } -+ else -+ { -+ extern_type* __cfixed = const_cast<extern_type*>(__from); -+ __cfrom = reinterpret_cast<char*>(__cfixed); -+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, -+ &__flen, &__cto, &__tlen); -+ } -+ -+ -+ if (__conv != size_t(-1)) -+ { -+ __from_next = reinterpret_cast<const extern_type*>(__cfrom); -+ __to_next = reinterpret_cast<intern_type*>(__cto); -+ __ret = codecvt_base::ok; -+ } -+ else -+ { -+ if (__flen < static_cast<size_t>(__from_end - __from)) -+ { -+ __from_next = reinterpret_cast<const extern_type*>(__cfrom); -+ __to_next = reinterpret_cast<intern_type*>(__cto); -+ __ret = codecvt_base::partial; -+ } -+ else -+ __ret = codecvt_base::error; -+ } -+ } -+ return __ret; -+ } -+ -+ template<typename _InternT, typename _ExternT> -+ int -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ do_encoding() const throw() -+ { -+ int __ret = 0; -+ if (sizeof(_ExternT) <= sizeof(_InternT)) -+ __ret = sizeof(_InternT)/sizeof(_ExternT); -+ return __ret; -+ } -+ -+ template<typename _InternT, typename _ExternT> -+ bool -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ do_always_noconv() const throw() -+ { return false; } -+ -+ template<typename _InternT, typename _ExternT> -+ int -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ do_length(const state_type&, const extern_type* __from, -+ const extern_type* __end, size_t __max) const -+ { return min(__max, static_cast<size_t>(__end - __from)); } -+ -+#ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS -+// 74. Garbled text for codecvt::do_max_length -+ template<typename _InternT, typename _ExternT> -+ int -+ codecvt<_InternT, _ExternT, __enc_traits>:: -+ do_max_length() const throw() -+ { return 1; } -+#endif -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc 2004-01-09 08:06:24.000000000 -0600 -@@ -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 <bkoz@redhat.com> -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#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<char>::_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<char>::_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<wchar_t>::_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<wchar_t>::_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-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2004-01-09 08:15:41.000000000 -0600 -@@ -0,0 +1,274 @@ -+// std::ctype implementation details, GNU version -*- 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.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#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<char> specializations are in src/locale.cc and -+ // various /config/os/* files. -+ template<> -+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) -+ : ctype<char>(0, false, __refs) -+ { -+ _S_destroy_c_locale(_M_c_locale_ctype); -+ _S_create_c_locale(_M_c_locale_ctype, __s); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_toupper = _M_c_locale_ctype->__ctype_toupper; -+ _M_tolower = _M_c_locale_ctype->__ctype_tolower; -+ _M_table = _M_c_locale_ctype->__ctype_b; -+#endif -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype<wchar_t>::__wmask_type -+ ctype<wchar_t>::_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 = 0; -+ } -+ return __ret; -+ }; -+ -+ wchar_t -+ ctype<wchar_t>::do_toupper(wchar_t __c) const -+ { return __towupper_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype<wchar_t>::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<wchar_t>::do_tolower(wchar_t __c) const -+ { return __towlower_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype<wchar_t>::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<wchar_t>:: -+ 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) -+ { -+ const mask __bit = static_cast<mask>(_ISbit(__bitcur)); -+ if (__m & __bit) -+ __ret |= __iswctype_l(__c, _M_convert_to_wmask(__bit), -+ _M_c_locale_ctype); -+ } -+ return __ret; -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ 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) -+ { -+ const mask __bit = static_cast<mask>(_ISbit(__bitcur)); -+ if (__iswctype_l(*__lo, _M_convert_to_wmask(__bit), -+ _M_c_locale_ctype)) -+ __m |= __bit; -+ } -+ *__vec = __m; -+ } -+ return __hi; -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ 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<wchar_t>:: -+ 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<wchar_t>:: -+ do_widen(char __c) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ wchar_t __ret = btowc(__c); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ const char* -+ ctype<wchar_t>:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ mbstate_t __state; -+ memset(static_cast<void*>(&__state), 0, sizeof(mbstate_t)); -+ mbsrtowcs(__dest, &__lo, __hi - __lo, &__state); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+ -+ char -+ ctype<wchar_t>:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ int __c = wctob(__wc); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return (__c == EOF ? __dfault : static_cast<char>(__c)); -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ 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 -+ size_t __offset = 0; -+ while (true) -+ { -+ const wchar_t* __start = __lo + __offset; -+ size_t __len = __hi - __start; -+ -+ mbstate_t __state; -+ memset(static_cast<void*>(&__state), 0, sizeof(mbstate_t)); -+ size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); -+ if (__con != __len && __start != 0) -+ { -+ __offset = __start - __lo; -+ __dest[__offset++] = __dfault; -+ } -+ else -+ break; -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc 2004-01-09 08:46:16.000000000 -0600 -@@ -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 <bkoz@redhat.com> -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#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<char>::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<const char*>(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<wchar_t>::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-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h 2004-01-09 08:52:48.000000000 -0600 -@@ -0,0 +1,122 @@ -+// std::messages implementation details, GNU version -*- 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.2.7.1.2 messages functions -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#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<typename _CharT> -+ messages<_CharT>::messages(size_t __refs) -+ : locale::facet(__refs) -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ _M_name_messages = _S_c_name; -+#endif -+ _M_c_locale_messages = _S_get_c_locale(); -+ } -+ -+ template<typename _CharT> -+ messages<_CharT>::messages(__c_locale __cloc, -+ const char* __s, size_t __refs) -+ : locale::facet(__refs) -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ _M_name_messages = new char[strlen(__s) + 1]; -+ strcpy(_M_name_messages, __s); -+#endif -+ _M_c_locale_messages = _S_clone_c_locale(__cloc); -+ } -+ -+ template<typename _CharT> -+ typename messages<_CharT>::catalog -+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, -+ const char* __dir) const -+ { -+ __bindtextdomain(__s.c_str(), __dir); -+ return this->do_open(__s, __loc); -+ } -+ -+ // Virtual member functions. -+ template<typename _CharT> -+ messages<_CharT>::~messages() -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ if (_S_c_name != _M_name_messages) -+ delete [] _M_name_messages; -+#endif -+ _S_destroy_c_locale(_M_c_locale_messages); -+ } -+ -+ template<typename _CharT> -+ typename messages<_CharT>::catalog -+ messages<_CharT>::do_open(const basic_string<char>& __s, -+ const locale&) const -+ { -+ // No error checking is done, assume the catalog exists and can -+ // be used. -+ __textdomain(__s.c_str()); -+ return 0; -+ } -+ -+ template<typename _CharT> -+ void -+ messages<_CharT>::do_close(catalog) const -+ { } -+ -+ // messages_byname -+ template<typename _CharT> -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) -+ : messages<_CharT>(__refs) -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ if (_S_c_name != _M_name_messages) -+ delete [] _M_name_messages; -+ _M_name_messages = new char[strlen(__s) + 1]; -+ strcpy(_M_name_messages, __s); -+#endif -+ _S_destroy_c_locale(this->_M_c_locale_messages); -+ _S_create_c_locale(this->_M_c_locale_messages, __s); -+ } -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2004-01-09 18:20:23.000000000 -0600 -@@ -0,0 +1,646 @@ -+// std::moneypunct 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.6.3.2 moneypunct virtual functions -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#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. -+ if (__space) -+ { -+ // Pattern starts with sign. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[2] = space; -+ __ret.field[3] = symbol; -+ } -+ __ret.field[0] = sign; -+ } -+ 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[0] = sign; -+ __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[1] = space; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ } -+ __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 (__space) -+ { -+ // Have space. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = space; -+ __ret.field[2] = sign; -+ __ret.field[3] = symbol; -+ } -+ } -+ else -+ { -+ // Have none. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = sign; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ case 4: -+ // 4 The sign immediately follows the symbol. -+ if (__space) -+ { -+ // Have space. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ __ret.field[3] = sign; -+ } -+ } -+ else -+ { -+ // Have none. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = symbol; -+ __ret.field[2] = sign; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ default: -+ ; -+ } -+ return __ret; -+ } -+ -+ template<> -+ void -+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<char, true>; -+ -+ 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<char, false>::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<char, false>; -+ -+ 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<char, true>::~moneypunct() -+ { } -+ -+ template<> -+ moneypunct<char, false>::~moneypunct() -+ { } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ moneypunct<wchar_t, true>::_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<wchar_t, true>; -+ -+ 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... -+ unsigned char uc; -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ { -+ uc = static_cast<unsigned char>(money_base::_S_atoms[__i]); -+ _M_data->_M_atoms[__i] = btowc(uc); -+ } -+ } -+ 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 -+#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 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); -+ -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(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); -+ -+ mbstate_t __state; -+ size_t __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs; -+ } -+ 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); -+ -+ _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<wchar_t, false>::_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<wchar_t, false>; -+ -+ 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... -+ unsigned char uc; -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ { -+ uc = static_cast<unsigned char>(money_base::_S_atoms[__i]); -+ _M_data->_M_atoms[__i] = btowc(uc); -+ } -+ } -+ 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 -+#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 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(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); -+ -+ mbstate_t __state; -+ size_t __len; -+ __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs; -+ } -+ 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); -+ -+ _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<wchar_t, true>::~moneypunct() -+ { -+ if (wcslen(_M_data->_M_positive_sign)) -+ delete [] _M_data->_M_positive_sign; -+ if (wcslen(_M_data->_M_negative_sign) && (wcscmp(_M_data->_M_negative_sign, L"()") != 0)) -+ delete [] _M_data->_M_negative_sign; -+ if (wcslen(_M_data->_M_curr_symbol)) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+ -+ template<> -+ moneypunct<wchar_t, false>::~moneypunct() -+ { -+ if (wcslen(_M_data->_M_positive_sign)) -+ delete [] _M_data->_M_positive_sign; -+ if (wcslen(_M_data->_M_negative_sign) && (wcscmp(_M_data->_M_negative_sign, L"()") != 0)) -+ delete [] _M_data->_M_negative_sign; -+ if (wcslen(_M_data->_M_curr_symbol)) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+#endif -+} -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2004-01-09 18:20:59.000000000 -0600 -@@ -0,0 +1,165 @@ -+// std::numpunct 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.3.1.2 numpunct virtual functions -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#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<char>::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache<char>; -+ -+ 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_use_grouping = false; -+ -+ 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 __i = 0; __i < __num_base::_S_iend; ++__i) -+ _M_data->_M_atoms_in[__i] = __num_base::_S_atoms_in[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(RADIXCHAR, __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSEP, __cloc)); -+ // Check for NUL, 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 = strlen(_M_data->_M_truename); -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = "false"; -+ _M_data->_M_falsename_size = strlen(_M_data->_M_falsename); -+ } -+ -+ template<> -+ numpunct<char>::~numpunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache<wchar>; -+ -+ 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_use_grouping = false; -+ -+ // Use ctype::widen code without the facet... -+ unsigned char uc; -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ { -+ uc = static_cast<unsigned char>(__num_base::_S_atoms_out[__i]); -+ _M_data->_M_atoms_out[__i] = btowc(uc); -+ } -+ -+ for (size_t __i = 0; __i < __num_base::_S_iend; ++__i) -+ { -+ uc = static_cast<unsigned char>(__num_base::_S_atoms_in[__i]); -+ _M_data->_M_atoms_in[__i] = btowc(uc); -+ } -+ } -+ else -+ { -+ // Named locale. -+#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 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); -+#endif -+ if (_M_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 = wcslen(_M_data->_M_truename); -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = L"false"; -+ _M_data->_M_falsename_size = wcslen(_M_data->_M_falsename); -+ } -+ -+ template<> -+ numpunct<wchar_t>::~numpunct() -+ { } -+ #endif -+} -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc 2004-01-09 08:25:03.000000000 -0600 -@@ -0,0 +1,347 @@ -+// std::time_get, std::time_put implementation, 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.5.1.2 - time_get virtual functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#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<char>:: -+ _M_put(char* __s, size_t __maxlen, const char* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __strftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ strftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ -+ template<> -+ void -+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache<char>; -+ -+ 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 = "July"; -+ _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<wchar_t>:: -+ _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); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+// wcsftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ -+ template<> -+ void -+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache<wchar_t>; -+ -+#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"July"; -+ _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); -+ -+ _M_data->_M_date_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_FMT, __cloc)); -+ _M_data->_M_date_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc)); -+ _M_data->_M_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT, __cloc)); -+ _M_data->_M_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc)); -+ _M_data->_M_date_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_T_FMT, __cloc)); -+ _M_data->_M_date_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc)); -+ _M_data->_M_am = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WAM_STR, __cloc)); -+ _M_data->_M_pm = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WPM_STR, __cloc)); -+ _M_data->_M_am_pm_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc)); -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_1, __cloc)); -+ _M_data->_M_day2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_2, __cloc)); -+ _M_data->_M_day3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_3, __cloc)); -+ _M_data->_M_day4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_4, __cloc)); -+ _M_data->_M_day5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_5, __cloc)); -+ _M_data->_M_day6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_6, __cloc)); -+ _M_data->_M_day7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_7, __cloc)); -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_1, __cloc)); -+ _M_data->_M_aday2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_2, __cloc)); -+ _M_data->_M_aday3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_3, __cloc)); -+ _M_data->_M_aday4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_4, __cloc)); -+ _M_data->_M_aday5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_5, __cloc)); -+ _M_data->_M_aday6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_6, __cloc)); -+ _M_data->_M_aday7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_7, __cloc)); -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_1, __cloc)); -+ _M_data->_M_month02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_2, __cloc)); -+ _M_data->_M_month03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_3, __cloc)); -+ _M_data->_M_month04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_4, __cloc)); -+ _M_data->_M_month05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_5, __cloc)); -+ _M_data->_M_month06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_6, __cloc)); -+ _M_data->_M_month07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_7, __cloc)); -+ _M_data->_M_month08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_8, __cloc)); -+ _M_data->_M_month09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_9, __cloc)); -+ _M_data->_M_month10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_10, __cloc)); -+ _M_data->_M_month11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_11, __cloc)); -+ _M_data->_M_month12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_12, __cloc)); -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_1, __cloc)); -+ _M_data->_M_amonth02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_2, __cloc)); -+ _M_data->_M_amonth03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_3, __cloc)); -+ _M_data->_M_amonth04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_4, __cloc)); -+ _M_data->_M_amonth05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_5, __cloc)); -+ _M_data->_M_amonth06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_6, __cloc)); -+ _M_data->_M_amonth07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_7, __cloc)); -+ _M_data->_M_amonth08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_8, __cloc)); -+ _M_data->_M_amonth09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_9, __cloc)); -+ _M_data->_M_amonth10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_10, __cloc)); -+ _M_data->_M_amonth11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_11, __cloc)); -+ _M_data->_M_amonth12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_12, __cloc)); -+ } -+#endif // 0 -+ } -+#endif -+} -diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h ---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h 2004-01-09 04:26:21.000000000 -0600 -@@ -0,0 +1,80 @@ -+// std::time_get, std::time_put implementation, GNU version -*- 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.2.5.1.2 - time_get functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(size_t __refs) -+ : locale::facet(__refs) -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ _M_name_timepunct = _S_get_c_name(); -+#endif -+ _M_initialize_timepunct(); -+ } -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) -+ : facet(__refs), _M_data(__cache) -+ { -+#if __UCLIBC_HAS_XLOCALE__ -+ _M_name_timepunct = _S_get_c_name(); -+#endif -+ _M_initialize_timepunct(); -+ } -+ -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, -+ const char* __s, -+ size_t __refs) -+ : locale::facet(__refs) -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ _M_name_timepunct = new char[strlen(__s) + 1]; -+ strcpy(_M_name_timepunct, __s); -+#endif -+ _M_initialize_timepunct(__cloc); -+ } -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::~__timepunct() -+ { -+#ifndef __UCLIBC_HAS_XLOCALE__ -+ if (_S_c_name != _M_name_timepunct) -+ delete [] _M_name_timepunct; -+#endif -+ delete _M_data; -+ _S_destroy_c_locale(_M_c_locale_timepunct); -+ } -diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h ---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h 2004-01-09 02:54:54.000000000 -0600 -@@ -0,0 +1,57 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 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 -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ 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<char>::_M_table force a particular size -+ // on the mask type. Because of this, we don't use an enum. -+ typedef __ctype_mask_t mask; -+ -+ 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 = _ISgraph; -+ static const mask cntrl = _IScntrl; -+ static const mask punct = _ISpunct; -+ static const mask alnum = _ISalnum; -+ }; -diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_inline.h ---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/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<char>:: -+ is(mask __m, char __c) const -+ { return _M_table[static_cast<unsigned char>(__c)] & __m; } -+ -+ const char* -+ ctype<char>:: -+ is(const char* __low, const char* __high, mask* __vec) const -+ { -+ while (__low < __high) -+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; -+ return __high; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_is(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) -+ ++__low; -+ return __low; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_not(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) -+ ++__low; -+ return __low; -+ } -diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h ---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2004-01-09 03:34:53.000000000 -0600 -@@ -0,0 +1,90 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 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.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ const ctype_base::mask* -+ ctype<char>::classic_table() throw() -+ { -+ return __C_ctype_b; -+ } -+ -+ ctype<char>::ctype(__c_locale __cloc, const mask* __table, bool __del, -+ size_t __refs) -+ : facet(__refs), _M_del(__table != 0 && __del) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ _M_c_locale_ctype = _S_clone_c_locale(__cloc); -+ } -+ -+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) : -+ facet(__refs), _M_del(__table != 0 && __del) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ _M_c_locale_ctype = _S_get_c_locale(); -+ } -+ -+ char -+ ctype<char>::do_toupper(char __c) const -+ { return _M_toupper[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<char>::do_toupper(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_toupper[static_cast<unsigned char>(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -+ -+ char -+ ctype<char>::do_tolower(char __c) const -+ { return _M_tolower[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<char>::do_tolower(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_tolower[static_cast<unsigned char>(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h ---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h 2004-01-09 04:56:13.000000000 -0600 -@@ -0,0 +1,56 @@ -+// Specific definitions for GNU/Linux -*- C++ -*- -+ -+// Copyright (C) 2000, 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. -+ -+#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 <features.h> -+ -+// These systems have declarations mismatching those in libio.h by -+// omitting throw qualifiers. Cleanest way out is to not provide -+// throw-qualifiers at all. Defining it as empty here will make libio.h -+// not define it. -+#undef __THROW -+#define __THROW -+ -+// Tell Glibc not to try to provide its own inline versions of -+// some math functions. Those cause assembly-time clashes with -+// our definitions. -+#define __NO_MATH_INLINES -+ -+// We must not see the optimized string functions GNU libc defines. -+#define __NO_STRING_INLINES -+ -+#endif diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15089.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15089.patch deleted file mode 100644 index 3b7a056e63..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15089.patch +++ /dev/null @@ -1,19 +0,0 @@ -2004-04-29 Philip Blundell <philb@gnu.org> - - * loop.c (scan_loop): Don't delete SET of a hard register. - -Index: loop.c -=================================================================== -RCS file: /cvs/gcc/gcc/gcc/loop.c,v -retrieving revision 1.488.2.3 -diff -u -r1.488.2.3 loop.c ---- gcc/gcc/loop.c 14 Feb 2004 14:46:03 -0000 1.488.2.3 -+++ gcc/gcc/loop.c 28 Apr 2004 22:02:53 -0000 -@@ -929,6 +929,7 @@ - || (! (GET_CODE (SET_SRC (set)) == REG - && (REGNO (SET_SRC (set)) - < FIRST_PSEUDO_REGISTER)))) -+ && regno >= FIRST_PSEUDO_REGISTER - /* This test is not redundant; SET_SRC (set) might be - a call-clobbered register and the life of REGNO - might span a call. */ diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15666.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15666.patch deleted file mode 100644 index a2199e9b85..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-15666.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: gcc/ChangeLog -from Alexandre Oliva <aoliva@redhat.com> - - PR middle-end/15666 - * c-decl.c (finish_decl): Use change_decl_assembler_name for the - builtin decl as well. - -Index: gcc/c-decl.c -=================================================================== -RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v -retrieving revision 1.504 -diff -u -p -r1.504 c-decl.c ---- gcc/gcc/c-decl.c 31 May 2004 22:06:27 -0000 1.504 -+++ gcc/gcc/c-decl.c 1 Jun 2004 04:03:41 -0000 -@@ -2886,7 +2886,7 @@ finish_decl (tree decl, tree init, tree - { - tree builtin = built_in_decls [DECL_FUNCTION_CODE (decl)]; - SET_DECL_RTL (builtin, NULL_RTX); -- SET_DECL_ASSEMBLER_NAME (builtin, get_identifier (starred)); -+ change_decl_assembler_name (builtin, get_identifier (starred)); - #ifdef TARGET_MEM_FUNCTIONS - if (DECL_FUNCTION_CODE (decl) == BUILT_IN_MEMCPY) - init_block_move_fn (starred); diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm-peephole.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm-peephole.patch deleted file mode 100644 index fb317e1537..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm-peephole.patch +++ /dev/null @@ -1,79 +0,0 @@ ---- gcc-3.4.0/gcc/config/arm/arm.md.arm-ldm-peephole 2004-01-13 08:24:37.000000000 -0500 -+++ gcc-3.4.0/gcc/config/arm/arm.md 2004-04-24 18:18:04.000000000 -0400 -@@ -8810,13 +8810,16 @@ - (set_attr "length" "4,8,8")] - ) - -+; Try to convert LDR+LDR+arith into [add+]LDM+arith -+; On XScale, LDM is always slower than two LDRs, so only do this if -+; optimising for size. - (define_insn "*arith_adjacentmem" - [(set (match_operand:SI 0 "s_register_operand" "=r") - (match_operator:SI 1 "shiftable_operator" - [(match_operand:SI 2 "memory_operand" "m") - (match_operand:SI 3 "memory_operand" "m")])) - (clobber (match_scratch:SI 4 "=r"))] -- "TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])" -+ "TARGET_ARM && (!arm_tune_xscale || optimize_size) && adjacent_mem_locations (operands[2], operands[3])" - "* - { - rtx ldm[3]; -@@ -8851,6 +8854,8 @@ - } - if (val1 && val2) - { -+ /* This would be a loss on a Harvard core, but adjacent_mem_locations() -+ will prevent it from happening. */ - rtx ops[3]; - ldm[0] = ops[0] = operands[4]; - ops[1] = XEXP (XEXP (operands[2], 0), 0); ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm-peephole 2004-04-24 18:16:25.000000000 -0400 -+++ gcc-3.4.0/gcc/config/arm/arm.c 2004-04-24 18:18:04.000000000 -0400 -@@ -4593,8 +4593,11 @@ - arith_adjacentmem pattern to output an overlong sequence. */ - if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1)) - return 0; -- -- return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4); -+ -+ /* For Harvard cores, only accept pairs where one offset is zero. -+ See comment in load_multiple_sequence. */ -+ return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4) -+ && (!arm_ld_sched || val0 == 0 || val1 == 0); - } - return 0; - } -@@ -4838,6 +4841,11 @@ - *load_offset = unsorted_offsets[order[0]]; - } - -+ /* For XScale a two-word LDM is a performance loss, so only do this if -+ size is more important. See comments in arm_gen_load_multiple. */ -+ if (nops == 2 && arm_tune_xscale && !optimize_size) -+ return 0; -+ - if (unsorted_offsets[order[0]] == 0) - return 1; /* ldmia */ - -@@ -5064,6 +5072,11 @@ - *load_offset = unsorted_offsets[order[0]]; - } - -+ /* For XScale a two-word LDM is a performance loss, so only do this if -+ size is more important. See comments in arm_gen_load_multiple. */ -+ if (nops == 2 && arm_tune_xscale && !optimize_size) -+ return 0; -+ - if (unsorted_offsets[order[0]] == 0) - return 1; /* stmia */ - ---- gcc-3.4.0/gcc/genpeep.c.arm-ldm-peephole 2003-07-05 01:27:22.000000000 -0400 -+++ gcc-3.4.0/gcc/genpeep.c 2004-04-24 18:18:04.000000000 -0400 -@@ -381,6 +381,7 @@ - printf ("#include \"recog.h\"\n"); - printf ("#include \"except.h\"\n\n"); - printf ("#include \"function.h\"\n\n"); -+ printf ("#include \"flags.h\"\n\n"); - - printf ("#ifdef HAVE_peephole\n"); - printf ("extern rtx peep_operand[];\n\n"); diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm.patch deleted file mode 100644 index 142052fdf0..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-ldm.patch +++ /dev/null @@ -1,119 +0,0 @@ ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm 2004-02-27 09:51:05.000000000 -0500 -+++ gcc-3.4.0/gcc/config/arm/arm.c 2004-04-24 18:16:25.000000000 -0400 -@@ -8520,6 +8520,26 @@ - return_used_this_function = 0; - } - -+/* Return the number (counting from 0) of -+ the least significant set bit in MASK. */ -+ -+#ifdef __GNUC__ -+inline -+#endif -+static int -+number_of_first_bit_set (mask) -+ int mask; -+{ -+ int bit; -+ -+ for (bit = 0; -+ (mask & (1 << bit)) == 0; -+ ++bit) -+ continue; -+ -+ return bit; -+} -+ - const char * - arm_output_epilogue (rtx sibling) - { -@@ -8753,27 +8773,47 @@ - saved_regs_mask |= (1 << PC_REGNUM); - } - -- /* Load the registers off the stack. If we only have one register -- to load use the LDR instruction - it is faster. */ -- if (saved_regs_mask == (1 << LR_REGNUM)) -- { -- /* The exception handler ignores the LR, so we do -- not really need to load it off the stack. */ -- if (eh_ofs) -- asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM); -- else -- asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM); -- } -- else if (saved_regs_mask) -+ if (saved_regs_mask) - { -- if (saved_regs_mask & (1 << SP_REGNUM)) -- /* Note - write back to the stack register is not enabled -- (ie "ldmfd sp!..."). We know that the stack pointer is -- in the list of registers and if we add writeback the -- instruction becomes UNPREDICTABLE. */ -- print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask); -+ /* Load the registers off the stack. If we only have one register -+ to load use the LDR instruction - it is faster. */ -+ if (bit_count (saved_regs_mask) == 1) -+ { -+ int reg = number_of_first_bit_set (saved_regs_mask); -+ -+ switch (reg) -+ { -+ case SP_REGNUM: -+ /* Mustn't use base writeback when loading SP. */ -+ asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM); -+ break; -+ -+ case LR_REGNUM: -+ if (eh_ofs) -+ { -+ /* The exception handler ignores the LR, so we do -+ not really need to load it off the stack. */ -+ asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM); -+ break; -+ } -+ /* else fall through */ -+ -+ default: -+ asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM); -+ break; -+ } -+ } - else -- print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask); -+ { -+ if (saved_regs_mask & (1 << SP_REGNUM)) -+ /* Note - write back to the stack register is not enabled -+ (ie "ldmfd sp!..."). We know that the stack pointer is -+ in the list of registers and if we add writeback the -+ instruction becomes UNPREDICTABLE. */ -+ print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask); -+ else -+ print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask); -+ } - } - - if (current_function_pretend_args_size) -@@ -11401,22 +11441,6 @@ - } - } - --/* Return the number (counting from 0) of -- the least significant set bit in MASK. */ -- --inline static int --number_of_first_bit_set (int mask) --{ -- int bit; -- -- for (bit = 0; -- (mask & (1 << bit)) == 0; -- ++bit) -- continue; -- -- return bit; --} -- - /* Generate code to return from a thumb function. - If 'reg_containing_return_addr' is -1, then the return address is - actually on the stack, at the stack pointer. */ diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-tune.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-tune.patch deleted file mode 100644 index cdb20bef9b..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-arm-tune.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- gcc-3.4.0/gcc/config/arm/linux-elf.h.arm-tune 2004-01-31 01:18:11.000000000 -0500 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-04-24 18:19:10.000000000 -0400 -@@ -126,3 +126,6 @@ - - #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" -+ -+/* Tune for XScale. */ -+#define TARGET_TUNE_DEFAULT TARGET_CPU_xscale diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-pre-modify.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-pre-modify.patch deleted file mode 100644 index e850c35804..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-pre-modify.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-3.4.0/gcc/config/arm/arm.c~ 2004-04-12 17:17:05.000000000 +0100 -+++ gcc-3.4.0/gcc/config/arm/arm.c 2004-04-25 21:27:08.000000000 +0100 -@@ -2739,7 +2739,7 @@ - && GET_MODE_SIZE (mode) <= 4 - && arm_address_register_rtx_p (XEXP (x, 0), strict_p) - && GET_CODE (XEXP (x, 1)) == PLUS -- && XEXP (XEXP (x, 1), 0) == XEXP (x, 0)) -+ && rtx_equal_p (XEXP (XEXP (x, 1), 0), XEXP (x, 0))) - return arm_legitimate_index_p (mode, XEXP (XEXP (x, 1), 1), strict_p); - - /* After reload constants split into minipools will have addresses diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch deleted file mode 100644 index c3c40dd183..0000000000 --- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- gcc-3.4.0/gcc/flow.c.reverse-compare 2004-02-27 22:39:19.000000000 -0500 -+++ gcc-3.4.0/gcc/flow.c 2004-04-24 16:36:00.000000000 -0400 -@@ -1843,6 +1843,7 @@ - regset_head diff_head; - regset diff = INITIALIZE_REG_SET (diff_head); - basic_block bb_true, bb_false; -+ enum rtx_code reversed_code; - int i; - - /* Identify the successor blocks. */ -@@ -1889,8 +1890,11 @@ - if (GET_CODE (reg) == REG - && XEXP (cond_true, 1) == const0_rtx) - { -- rtx cond_false -- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)), -+ rtx cond_false; -+ reversed_code = reverse_condition (GET_CODE (cond_true)); -+ if (reversed_code == UNKNOWN) -+ goto skip; -+ cond_false = gen_rtx_fmt_ee (reversed_code, - GET_MODE (cond_true), XEXP (cond_true, 0), - XEXP (cond_true, 1)); - if (GET_CODE (XEXP (set_src, 1)) == PC) -@@ -1925,6 +1929,7 @@ - } - } - -+ skip: - FREE_REG_SET (diff); - } - #endif diff --git a/packages/gcc-csl/gcc-csl-cross-initial_2004-q1a.bb b/packages/gcc-csl/gcc-csl-cross-initial_2004-q1a.bb deleted file mode 100644 index def319ad2c..0000000000 --- a/packages/gcc-csl/gcc-csl-cross-initial_2004-q1a.bb +++ /dev/null @@ -1,28 +0,0 @@ -SECTION = "devel" -include gcc-csl-cross_${PV}.bb - -DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-initial" -PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial" - -PACKAGES = "" - -# This is intended to be a -very- basic config -EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \ - --with-newlib \ - --disable-shared \ - --disable-threads \ - --disable-multilib \ - --disable-__cxa_atexit \ - --enable-languages=c \ - --enable-target-optspace \ - --program-prefix=${TARGET_PREFIX}" - -do_stage_prepend () { - mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${PV} - ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/3.4.0/libgcc_eh.a -} - -# Override the method from gcc-cross so we don't try to install libgcc -do_install () { - oe_runmake 'DESTDIR=${D}' install -} diff --git a/packages/gcc-csl/gcc-csl-cross_2004-q1a.bb b/packages/gcc-csl/gcc-csl-cross_2004-q1a.bb deleted file mode 100644 index 47aea70e85..0000000000 --- a/packages/gcc-csl/gcc-csl-cross_2004-q1a.bb +++ /dev/null @@ -1,93 +0,0 @@ -SECTION = "devel" -include gcc-csl_${PV}.bb -inherit cross -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-csl-${PV}" - -DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" -PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" - -# Files for these are defined in the main gcc.oe -PACKAGES = "libgcc libstdc++ libg2c" -INHIBIT_PACKAGE_STRIP = "1" - -EXTRA_OECONF_PATHS = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \ - --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++" - -export CPPFLAGS = "" -export CXXFLAGS = "" -export CFLAGS = "" -export LDFLAGS = "" - -do_configure () { - rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/3.4.0/libgcc_eh.a - (cd ${S} && gnu-configize) || die "failure running gnu-configize" - oe_runconf -} - -do_compile_prepend () { - export CC="${BUILD_CC}" - export AR_FOR_TARGET="${TARGET_SYS}-ar" - export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib" - export LD_FOR_TARGET="${TARGET_SYS}-ld" - export NM_FOR_TARGET="${TARGET_SYS}-nm" - export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc" -} - -do_stage_append () { - for d in info man share/doc share/locale ; do - rm -rf ${CROSS_DIR}/$d - done - - # These aren't useful on the cross toolchain - rm -f ${CROSS_DIR}/bin/*gcov - rm -f ${CROSS_DIR}/bin/*gccbug - - # Fix a few include links so cross builds are happier - if [ ! -e ${STAGING_INCDIR}/c++ ]; then - mkdir -p ${STAGING_INCDIR} - ln -sf ${CROSS_DIR}/${TARGET_SYS}/include/c++ \ - ${STAGING_INCDIR}/ - fi - - # We use libiberty from binutils - rm -f ${CROSS_DIR}/lib/libiberty.a - - # We probably don't need these - rmdir ${CROSS_DIR}/include || : - - # We don't really need to keep this around - rm -rf ${CROSS_DIR}/share -} - -python do_package() { - if bb.data.getVar('DEBIAN_NAMES', d, 1): - bb.data.setVar('PKG_libgcc', 'libgcc1', d) - bb.build.exec_func('package_do_package', d) -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - - # Move libgcc_s into /lib - mkdir -p ${D}${base_libdir} - if [ -f ${D}${base_libdir}/libgcc_s.so.? ]; then - # Already in the right location - : - elif [ -f ${D}${prefix}/lib/libgcc_s.so.? ]; then - mv -f ${D}${prefix}/lib/libgcc_s.so.* ${D}${base_libdir} - else - mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${base_libdir} - fi - - # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr - TGT_LIBDIR=`echo ${libdir} | sed -e 's,${CROSS_DIR},/usr,'` - mkdir -p ${D}${TGT_LIBDIR} - mv -f ${D}${prefix}/*/lib/libstdc++.so.* ${D}${TGT_LIBDIR} - mv -f ${D}${prefix}/*/lib/libg2c.so.* ${D}${TGT_LIBDIR} - - # Manually run the target stripper since we won't get it run by - # the packaging. - ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libstdc++.so.* - ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libg2c.so.* - ${TARGET_PREFIX}strip ${D}${base_libdir}gcc_s.so.* -} diff --git a/packages/gcc-csl/gcc-csl_2004-q1a.bb b/packages/gcc-csl/gcc-csl_2004-q1a.bb deleted file mode 100644 index 77c7513ea5..0000000000 --- a/packages/gcc-csl/gcc-csl_2004-q1a.bb +++ /dev/null @@ -1,230 +0,0 @@ -SECTION = "devel" -inherit autotools gettext - -DESCRIPTION = "The GNU cc and gcc C compilers." -LICENSE = "GPL" -MAINTAINER = "Gerald Britton <gbritton@doomcom.org>" -BROKEN = "1" - -# libgcc libstdc++ libg2c are listed in our FILES_*, but are actually -# packaged in the respective cross packages. -PACKAGES = "${PN} ${PN}-symlinks \ - ${PN}-c++ ${PN}-c++-symlinks \ - ${PN}-f77 ${PN}-f77-symlinks \ - libstdc++-dev libg2c-dev \ - ${PN}-doc" - -FILES_${PN} = "${bindir}/${TARGET_PREFIX}gcc \ - ${bindir}/${TARGET_PREFIX}cpp \ - ${bindir}/${TARGET_PREFIX}gcov \ - ${bindir}/${TARGET_PREFIX}gccbug \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/cc1 \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/collect2 \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/*.o \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/specs \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/lib* \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/include" - -FILES_${PN}-symlinks = "${bindir}/cc \ - ${bindir}/gcc \ - ${bindir}/cpp \ - ${bindir}/gcov \ - ${bindir}/gccbug" - -FILES_${PN}-f77 = "${bindir}/${TARGET_PREFIX}g77 \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/f771" - -FILES_${PN}-f77-symlinks = "${bindir}/g77 \ - ${bindir}/f77" - -# Called from within gcc-cross, so libdir is set wrong -#FILES_libg2c = "${libdir}/libg2c.so.*" -FILES_libg2c = "${libdir}/libg2c.so.*" - -FILES_libg2c-dev = "${libdir}/libg2c.so \ - ${libdir}/libg2c.a \ - ${libdir}/libfrtbegin.a" - -FILES_${PN}-c++ = "${bindir}/${TARGET_PREFIX}g++ \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/cc1plus" - -FILES_${PN}-c++-symlinks = "${bindir}/c++ \ - ${bindir}/g++" - -FILES_libgcc = "/lib/libgcc_s.so.*" - -# Called from within gcc-cross, so libdir is set wrong -#FILES_libstdc++ = "${libdir}/libstdc++.so.*" -FILES_libstdc++ = "${libdir}/libstdc++.so.*" - -FILES_libstdc++-dev = "${includedir}/c++/${PV} \ - ${libdir}/libstdc++.so \ - ${libdir}/libstdc++.la \ - ${libdir}/libstdc++.a \ - ${libdir}/libsupc++.la \ - ${libdir}/libsupc++.a" - -FILES_${PN}-doc = "${infodir} \ - ${mandir} \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/include/README" - -# file://gcc34-pre-modify.patch;patch=1 -SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm/2004-Q1A/gcc-${PV}.tar.gz \ - file://gcc34-reverse-compare.patch;patch=1 \ - file://gcc34-arm-ldm.patch;patch=1 \ - file://gcc34-arm-ldm-peephole.patch;patch=1 \ - file://gcc34-arm-tune.patch;patch=1 \ - file://gcc34-15089.patch;patch=1 \ - file://gcc34-15666.patch;patch=1 \ - file://gcc-uclibc-3.4.0-100-conf.patch;patch=1 \ - file://gcc-uclibc-3.4.0-200-code.patch;patch=1 \ - file://gcc-3.4.0-arm-lib1asm.patch;patch=1 \ - file://gcc-3.4.0-arm-nolibfloat.patch;patch=1" - -python do_unpack () { - bb.build.exec_func('base_do_unpack', d) - bb.build.exec_func('fix_perms', d) -} - -fix_perms () { - chmod -R u+w ${S} -} - -gccbuild_uclibc_do_patch () { - # - # Hack things to use the correct shared lib loader - # - #LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" .` - #if [ -n "$LIST" ] ; then - # perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker /lib/ld-uClibc.so.0},;" $LIST - #fi - - # - # Prevent system glibc start files from leaking in uninvited... - # - perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 = \"${CROSS_DIR}/${TARGET_SYS}/lib/\";,;" gcc/gcc.c - perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 = \"${CROSS_DIR}/${TARGET_SYS}/usr/lib/\";,;" gcc/gcc.c - - # - # Prevent system glibc include files from leaking in uninvited... - # - perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in - perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in - perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"${CROSS_DIR}/${TARGET_SYS}/include\",;" 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... - # - perl -i -p -e "s,\"/lib,\"${CROSS_DIR}/${TARGET_SYS}/lib,g;" \ - gcc/collect2.c - perl -i -p -e "s,\"/usr/,\"${CROSS_DIR}/${TARGET_SYS}/usr/,g;" \ - gcc/collect2.c - - # - # Prevent gcc from using the unwind-dw2-fde-glibc code - # - perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc -#ifndef inhibit_libc,g;" gcc/unwind-dw2-fde-glibc.c -} - -python do_patch () { - import bb, re - bb.build.exec_func('base_do_patch', d) - if (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.build.exec_func('gccbuild_uclibc_do_patch', d) -} - -S = "${WORKDIR}/gcc-${PV}" -B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" - -EXTRA_OECONF = "--with-gnu-ld \ - --enable-shared \ - --enable-multilib \ - --enable-target-optspace \ - --enable-languages=c,c++,f77 \ - --enable-threads=posix \ - --enable-c99 \ - --enable-long-long \ - --enable-symvers=gnu \ - --program-prefix=${TARGET_PREFIX} \ - ${EXTRA_OECONF_PATHS} \ - ${EXTRA_OECONF_DEP}" - -EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \ - --with-gxx-include-dir=${includedir}/c++/${PV}" - -EXTRA_OECONF_DEP = "" -EXTRA_OECONF_uclibc = "--disable-__cxa_atexit" -EXTRA_OECONF_glibc = "--enable-__cxa_atexit" -EXTRA_OECONF_append_openmn = " --with-float=soft " - -python __anonymous () { - import bb, re - if (re.match('linux-uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d) - elif (re.match('linux$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', d) -} - -do_configure () { - # Setup these vars for cross building only - if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then - export CC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc" - export GCC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc" - export CXX_FOR_TARGET="${CCACHE} ${HOST_PREFIX}g++" - export AS_FOR_TARGET="${HOST_PREFIX}as" - export LD_FOR_TARGET="${HOST_PREFIX}ld" - export NM_FOR_TARGET="${HOST_PREFIX}nm" - export AR_FOR_TARGET="${HOST_PREFIX}ar" - export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib" - fi - (cd ${S} && gnu-configize) || die "failure running gnu-configize" - oe_runconf -} - -do_install () { - autotools_do_install - - # Cleanup some of the ${libdir}{,exec}/gcc stuff ... - rm -r ${D}${libdir}/gcc/${TARGET_SYS}/${PV}/install-tools - rm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${PV}/install-tools - - # Move libgcc_s into /lib - mkdir -p ${D}${base_libdir} - mv ${D}${libdir}/libgcc_s.so.* ${D}${base_libdir} - rm ${D}${libdir}/libgcc_s.so - ln -sf `echo ${libdir}/gcc/${TARGET_SYS}/${PV} \ - | tr -s / \ - | sed -e 's,^/,,' -e 's,[^/]*,..,g'`/lib/libgcc_s.so.? \ - ${D}${libdir}/gcc/${TARGET_SYS}/${PV}/libgcc_s.so - - # We don't need libtool libraries - rm ${D}${libdir}/libg2c.la - - # Cleanup manpages.. - rm -r ${D}${mandir}/man7 - - # We use libiberty from binutils - rm ${D}${libdir}/libiberty.a - - cd ${D}${bindir} - - # We care about g++ not c++ - rm *c++ - - # We don't care about the gcc-<version> ones for this - rm *gcc-?.?* - - # These sometimes show up, they are strange, we remove them - rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-* - - # Symlinks so we can use these trivially on the target - ln -sf ${TARGET_SYS}-g77 g77 - ln -sf ${TARGET_SYS}-g++ g++ - ln -sf ${TARGET_SYS}-gcc gcc - ln -sf g77 f77 - ln -sf g++ c++ - ln -sf gcc cc -} diff --git a/packages/gcc-snapshot/.mtn2git_empty b/packages/gcc-snapshot/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 --- a/packages/gcc-snapshot/.mtn2git_empty +++ /dev/null diff --git a/packages/gcc-snapshot/gcc-snapshot-cross-initial_cvs.bb b/packages/gcc-snapshot/gcc-snapshot-cross-initial_cvs.bb deleted file mode 100644 index b4b324c533..0000000000 --- a/packages/gcc-snapshot/gcc-snapshot-cross-initial_cvs.bb +++ /dev/null @@ -1,28 +0,0 @@ -SECTION = "devel" -include gcc-snapshot-cross_cvs.bb - -DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-initial" -PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial" - -PACKAGES = "" - -# This is intended to be a -very- basic config -EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \ - --with-newlib \ - --disable-shared \ - --disable-threads \ - --disable-multilib \ - --disable-__cxa_atexit \ - --enable-languages=c \ - --enable-target-optspace \ - --program-prefix=${TARGET_PREFIX}" - -do_stage_prepend () { - mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${PV} - ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${PV}/libgcc_eh.a -} - -# Override the method from gcc-cross so we don't try to install libgcc -do_install () { - oe_runmake 'DESTDIR=${D}' install -} diff --git a/packages/gcc-snapshot/gcc-snapshot-cross_cvs.bb b/packages/gcc-snapshot/gcc-snapshot-cross_cvs.bb deleted file mode 100644 index 4e2f7fa91b..0000000000 --- a/packages/gcc-snapshot/gcc-snapshot-cross_cvs.bb +++ /dev/null @@ -1,93 +0,0 @@ -SECTION = "devel" -include gcc-snapshot_cvs.bb -inherit cross -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" - -DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" -PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" - -# Files for these are defined in the main gcc.oe -PACKAGES = "libgcc libstdc++ libg2c" -INHIBIT_PACKAGE_STRIP = "1" - -EXTRA_OECONF_PATHS = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \ - --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++" - -export CPPFLAGS = "" -export CXXFLAGS = "" -export CFLAGS = "" -export LDFLAGS = "" - -do_configure () { - rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${PV}/libgcc_eh.a - (cd ${S} && gnu-configize) || die "failure running gnu-configize" - oe_runconf -} - -do_compile_prepend () { - export CC="${BUILD_CC}" - export AR_FOR_TARGET="${TARGET_SYS}-ar" - export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib" - export LD_FOR_TARGET="${TARGET_SYS}-ld" - export NM_FOR_TARGET="${TARGET_SYS}-nm" - export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc" -} - -do_stage_append () { - for d in info man share/doc share/locale ; do - rm -rf ${CROSS_DIR}/$d - done - - # These aren't useful on the cross toolchain - rm -f ${CROSS_DIR}/bin/*gcov - rm -f ${CROSS_DIR}/bin/*gccbug - - # Fix a few include links so cross builds are happier - if [ ! -e ${STAGING_INCDIR}/c++ ]; then - mkdir -p ${STAGING_INCDIR} - ln -sf ${CROSS_DIR}/${TARGET_SYS}/include/c++ \ - ${STAGING_INCDIR}/ - fi - - # We use libiberty from binutils - rm -f ${CROSS_DIR}/lib/libiberty.a - - # We probably don't need these - rmdir ${CROSS_DIR}/include || : - - # We don't really need to keep this around - rm -rf ${CROSS_DIR}/share -} - -python do_package() { - if bb.data.getVar('DEBIAN_NAMES', d, 1): - bb.data.setVar('PKG_libgcc', 'libgcc1', d) - bb.build.exec_func('package_do_package', d) -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - - # Move libgcc_s into /lib - mkdir -p ${D}${base_libdir} - if [ -f ${D}${base_libdir}/libgcc_s.so.? ]; then - # Already in the right location - : - elif [ -f ${D}${prefix}/lib/libgcc_s.so.? ]; then - mv -f ${D}${prefix}/lib/libgcc_s.so.* ${D}${base_libdir} - else - mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${base_libdir} - fi - - # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr - TGT_LIBDIR=`echo ${libdir} | sed -e 's,${CROSS_DIR},/usr,'` - mkdir -p ${D}${TGT_LIBDIR} - mv -f ${D}${prefix}/*/lib/libstdc++.so.* ${D}${TGT_LIBDIR} - mv -f ${D}${prefix}/*/lib/libg2c.so.* ${D}${TGT_LIBDIR} - - # Manually run the target stripper since we won't get it run by - # the packaging. - ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libstdc++.so.* - ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libg2c.so.* - ${TARGET_PREFIX}strip ${D}${base_libdir}gcc_s.so.* -} diff --git a/packages/gcc-snapshot/gcc-snapshot_cvs.bb b/packages/gcc-snapshot/gcc-snapshot_cvs.bb deleted file mode 100644 index bf87651e75..0000000000 --- a/packages/gcc-snapshot/gcc-snapshot_cvs.bb +++ /dev/null @@ -1,209 +0,0 @@ -SECTION = "devel" -inherit autotools gettext - -PV = "${CVSDATE}" -DESCRIPTION = "The GNU cc and gcc C compilers." -LICENSE = "GPL" -MAINTAINER = "Gerald Britton <gbritton@doomcom.org>" - -# libgcc libstdc++ libg2c are listed in our FILES_*, but are actually -# packaged in the respective cross packages. -PACKAGES = "${PN} ${PN}-symlinks \ - ${PN}-c++ ${PN}-c++-symlinks \ - ${PN}-f77 ${PN}-f77-symlinks \ - libstdc++-dev libg2c-dev \ - ${PN}-doc" - -FILES_${PN} = "${bindir}/${TARGET_PREFIX}gcc \ - ${bindir}/${TARGET_PREFIX}cpp \ - ${bindir}/${TARGET_PREFIX}gcov \ - ${bindir}/${TARGET_PREFIX}gccbug \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/cc1 \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/collect2 \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/*.o \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/specs \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/lib* \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/include" - -FILES_${PN}-symlinks = "${bindir}/cc \ - ${bindir}/gcc \ - ${bindir}/cpp \ - ${bindir}/gcov \ - ${bindir}/gccbug" - -FILES_${PN}-f77 = "${bindir}/${TARGET_PREFIX}g77 \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/f771" - -FILES_${PN}-f77-symlinks = "${bindir}/g77 \ - ${bindir}/f77" - -# Called from within gcc-cross, so libdir is set wrong -#FILES_libg2c = "${libdir}/libg2c.so.*" -FILES_libg2c = "${libdir}/libg2c.so.*" - -FILES_libg2c-dev = "${libdir}/libg2c.so \ - ${libdir}/libg2c.a \ - ${libdir}/libfrtbegin.a" - -FILES_${PN}-c++ = "${bindir}/${TARGET_PREFIX}g++ \ - ${libexecdir}/gcc/${TARGET_SYS}/${PV}/cc1plus" - -FILES_${PN}-c++-symlinks = "${bindir}/c++ \ - ${bindir}/g++" - -FILES_libgcc = "/lib/libgcc_s.so.*" - -# Called from within gcc-cross, so libdir is set wrong -#FILES_libstdc++ = "${libdir}/libstdc++.so.*" -FILES_libstdc++ = "${libdir}/libstdc++.so.*" - -FILES_libstdc++-dev = "${includedir}/c++/${PV} \ - ${libdir}/libstdc++.so \ - ${libdir}/libstdc++.la \ - ${libdir}/libstdc++.a \ - ${libdir}/libsupc++.la \ - ${libdir}/libsupc++.a" - -FILES_${PN}-doc = "${infodir} \ - ${mandir} \ - ${libdir}/gcc/${TARGET_SYS}/${PV}/include/README" - -SRC_URI = "cvs://anoncvs:@savannah.gnu.org/cvsroot/gcc;module=gcc;method=ext;rsh=ssh" - -gccbuild_uclibc_do_patch () { - # - # Hack things to use the correct shared lib loader - # - #LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" .` - #if [ -n "$LIST" ] ; then - # perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker /lib/ld-uClibc.so.0},;" $LIST - #fi - - # - # Prevent system glibc start files from leaking in uninvited... - # - perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 = \"${CROSS_DIR}/${TARGET_SYS}/lib/\";,;" gcc/gcc.c - perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 = \"${CROSS_DIR}/${TARGET_SYS}/usr/lib/\";,;" gcc/gcc.c - - # - # Prevent system glibc include files from leaking in uninvited... - # - perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in - perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in - perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"${CROSS_DIR}/${TARGET_SYS}/include\",;" 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... - # - perl -i -p -e "s,\"/lib,\"${CROSS_DIR}/${TARGET_SYS}/lib,g;" \ - gcc/collect2.c - perl -i -p -e "s,\"/usr/,\"${CROSS_DIR}/${TARGET_SYS}/usr/,g;" \ - gcc/collect2.c - - # - # Prevent gcc from using the unwind-dw2-fde-glibc code - # - perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc -#ifndef inhibit_libc,g;" gcc/unwind-dw2-fde-glibc.c -} - -python do_patch () { - import bb, re - bb.build.exec_func('base_do_patch', d) - if (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.build.exec_func('gccbuild_uclibc_do_patch', d) -} - -S = "${WORKDIR}/gcc" -B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" - -EXTRA_OECONF = "--with-gnu-ld \ - --enable-shared \ - --enable-multilib \ - --enable-target-optspace \ - --enable-languages=c,c++,f77 \ - --enable-threads=posix \ - --enable-c99 \ - --enable-long-long \ - --enable-symvers=gnu \ - --program-prefix=${TARGET_PREFIX} \ - ${EXTRA_OECONF_PATHS} \ - ${EXTRA_OECONF_DEP}" - -EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \ - --with-gxx-include-dir=${includedir}/c++/${PV}" - -EXTRA_OECONF_DEP = "" -EXTRA_OECONF_uclibc = "--disable-__cxa_atexit" -EXTRA_OECONF_glibc = "--enable-__cxa_atexit" - -python __anonymous () { - import bb, re - if (re.match('linux-uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d) - elif (re.match('linux$', bb.data.getVar('TARGET_OS', d, 1)) != None): - bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', d) -} - -do_configure () { - # Setup these vars for cross building only - if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then - export CC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc" - export GCC_FOR_TARGET="${CCACHE} ${HOST_PREFIX}gcc" - export CXX_FOR_TARGET="${CCACHE} ${HOST_PREFIX}g++" - export AS_FOR_TARGET="${HOST_PREFIX}as" - export LD_FOR_TARGET="${HOST_PREFIX}ld" - export NM_FOR_TARGET="${HOST_PREFIX}nm" - export AR_FOR_TARGET="${HOST_PREFIX}ar" - export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib" - fi - (cd ${S} && gnu-configize) || die "failure running gnu-configize" - oe_runconf -} - -do_install () { - autotools_do_install - - # Cleanup some of the ${libdir}{,exec}/gcc stuff ... - rm -r ${D}${libdir}/gcc/${TARGET_SYS}/${PV}/install-tools - rm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${PV}/install-tools - - # Move libgcc_s into /lib - mkdir -p ${D}${base_libdir} - mv ${D}${libdir}/libgcc_s.so.* ${D}${base_libdir} - rm ${D}${libdir}/libgcc_s.so - ln -sf `echo ${libdir}/gcc/${TARGET_SYS}/${PV} \ - | tr -s / \ - | sed -e 's,^/,,' -e 's,[^/]*,..,g'`/lib/libgcc_s.so.? \ - ${D}${libdir}/gcc/${TARGET_SYS}/${PV}/libgcc_s.so - - # We don't need libtool libraries - rm ${D}${libdir}/libg2c.la - - # Cleanup manpages.. - rm -r ${D}${mandir}/man7 - - # We use libiberty from binutils - rm ${D}${libdir}/libiberty.a - - cd ${D}${bindir} - - # We care about g++ not c++ - rm *c++ - - # We don't care about the gcc-<version> ones for this - rm *gcc-?.?* - - # These sometimes show up, they are strange, we remove them - rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-* - - # Symlinks so we can use these trivially on the target - ln -sf ${TARGET_SYS}-g77 g77 - ln -sf ${TARGET_SYS}-g++ g++ - ln -sf ${TARGET_SYS}-gcc gcc - ln -sf g77 f77 - ln -sf g++ c++ - ln -sf gcc cc -} diff --git a/packages/libqanava/libqanava_0.0.3.bb b/packages/libqanava/libqanava_0.0.3.bb index 31d731b81f..85be9558c7 100644 --- a/packages/libqanava/libqanava_0.0.3.bb +++ b/packages/libqanava/libqanava_0.0.3.bb @@ -3,8 +3,9 @@ to enable graphical display of graphs and other relational structures." SECTION = "x11/libs" HOMEPAGE = "http://www.libqanava.org/" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" +DEPENDS = "qt3x11" LICENSE = "GPL" -DEPENDS = "qt-x11-free-3.3.3" +PR = "r1" SRC_URI = "http://www.libqanava.org/dl/qanava-${PV}.tar.gz" S = "${WORKDIR}/qanava-${PV}" diff --git a/packages/libschedule/libschedule_0.15.bb b/packages/libschedule/libschedule_0.15.bb index 65ab15bc13..e53fd44e85 100644 --- a/packages/libschedule/libschedule_0.15.bb +++ b/packages/libschedule/libschedule_0.15.bb @@ -1,11 +1,11 @@ LICENSE = "LGPL" -PR = "r2" +PR = "r3" DESCRIPTION = "RTC alarm handling library for GPE" SECTION = "gpe/libs" PRIORITY = "optional" MAINTAINER = "Philip Blundell <pb@handhelds.org>" DEPENDS = "glib-2.0 sqlite" -GPE_TARBALL_SUFFIX = "bz2" +GPE_TARBALL_SUFFIX = "gz" inherit autotools libtool pkgconfig gpe diff --git a/packages/linux/linux-openzaurus_2.6.13-mm1.bb b/packages/linux/linux-openzaurus_2.6.13-mm1.bb index 16d554fa6b..e3c1a69da4 100644 --- a/packages/linux/linux-openzaurus_2.6.13-mm1.bb +++ b/packages/linux/linux-openzaurus_2.6.13-mm1.bb @@ -5,7 +5,7 @@ LICENSE = "GPL" #KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}" KV = "${@bb.data.getVar('PV',d,True)}" -PR = "r5" +PR = "r6" DOSRC = "http://www.do13.in-berlin.de/openzaurus/patches" RPSRC = "http://www.rpsys.net/openzaurus/patches" @@ -14,18 +14,9 @@ BASRC = "http://www.orca.cx/zaurus/patches" # Handy URLs # http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 \ -# ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc5.bz2;patch=1 \ # http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.12-rc4-git1.bz2;patch=1 \ # ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc6.bz2;patch=1 \ -# ${RPSRC}/rmk_devbuff-r0.patch;patch=1 \ -# ${RPSRC}/corgi_base_extras1-r4.patch;patch=1 \ -# ${RPSRC}/reverse_pagefault-r3.patch;patch=1 \ -# ${RPSRC}/corgi_tspmufix-r0.patch;patch=1 \ -# ${RPSRC}/nwfpe_x80-r0.patch;patch=1 \ -# ${DOSRC}/mmc-bulk-r0.patch;patch=1 \ -# ${RPSRC}/pxa27x_extraregs-r4.patch;patch=1 \ - # Patches submitted upstream are towards top of this list # Hacks should clearly named and at the bottom # ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.13-rc5.bz2;patch=1 \ @@ -35,36 +26,38 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.gz \ ${RPSRC}/pxafb_hsync-r2.patch;patch=1 \ ${RPSRC}/borzoi_machtype-r0.patch;patch=1 \ ${RPSRC}/sharp_multi_pcmcia-r4.patch;patch=1 \ - ${RPSRC}/ohci_portcount-r0.patch;patch=1 \ - ${RPSRC}/pxa_ohci_power-r0.patch;patch=1 \ ${RPSRC}/rmk_mmc_updates-r0.patch;patch=1 \ - ${RPSRC}/spitz_usbsuspend-r0.patch;patch=1 \ ${RPSRC}/sharpsl_detection-r1.patch;patch=1 \ ${RPSRC}/corgi_mmc_detect-r0.patch;patch=1 \ ${RPSRC}/scoop_typefix-r0.patch;patch=1 \ - ${RPSRC}/pxa_ohci_platform-r0.patch;patch=1 \ - ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ - ${RPSRC}/pxa_remove_static-r0.patch;patch=1 \ ${RPSRC}/sharpsl_ssp-r4.patch;patch=1 \ ${RPSRC}/sharpsl_lcd-r4.patch;patch=1 \ ${RPSRC}/sharpsl_ts-r6.patch;patch=1 \ ${RPSRC}/sharpsl_bl-r5.patch;patch=1 \ - ${RPSRC}/sharpsl_pm-r8.patch;patch=1 \ + ${RPSRC}/spitzkbd-r3.patch;patch=1 \ ${RPSRC}/spitz_base-r17.patch;patch=1 \ - ${RPSRC}/spitz_base_extras-r2.patch;patch=1 \ + ${RPSRC}/sharpsl_mtd_extras-r1.patch;patch=1 \ + ${RPSRC}/ohci_portcount-r0.patch;patch=1 \ + ${RPSRC}/pxa_ohci_power-r0.patch;patch=1 \ + ${RPSRC}/spitz_usbsuspend-r0.patch;patch=1 \ + ${RPSRC}/pxa_ohci_platform-r0.patch;patch=1 \ + ${RPSRC}/sharpsl_pm-r8.patch;patch=1 \ ${RPSRC}/corgi_pm-r3.patch;patch=1 \ + ${RPSRC}/spitz_base_extras-r2.patch;patch=1 \ ${RPSRC}/spitz_pm-r3.patch;patch=1 \ - ${RPSRC}/spitzkbd-r3.patch;patch=1 \ + ${RPSRC}/spitz_kbd_fix1-r0.patch;patch=1 \ ${RPSRC}/spitzcf-r3.patch;patch=1 \ - ${RPSRC}/pxa_rtc-r1.patch;patch=1 \ + ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ + ${RPSRC}/pxa_remove_static-r0.patch;patch=1 \ + ${RPSRC}/rmk-i2c-pxa-r2.patch;patch=1 \ ${RPSRC}/pxa_irda-r3.patch;patch=1 \ ${RPSRC}/corgi_irda-r3.patch;patch=1 \ + ${RPSRC}/pxa_rtc-r1.patch;patch=1 \ + ${RPSRC}/scoop_susres-r1.patch;patch=1 \ ${RPSRC}/input_power-r2.patch;patch=1 \ ${RPSRC}/jffs2_longfilename-r0.patch;patch=1 \ ${RPSRC}/sharpsl_bl_kick-r1.patch;patch=1 \ ${RPSRC}/corgi_snd-r10.patch;patch=1 \ - ${RPSRC}/rmk-i2c-pxa-r2.patch;patch=1 \ - ${RPSRC}/sharpsl_mtd_extras-r1.patch;patch=1 \ ${RPSRC}/ipaq/hx2750_base-r20.patch;patch=1 \ ${RPSRC}/ipaq/hx2750_bl-r1.patch;patch=1 \ ${RPSRC}/ipaq/hx2750_pcmcia-r1.patch;patch=1 \ @@ -84,7 +77,6 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.gz \ ${DOSRC}/tosa-lcd-r3.patch;patch=1 \ ${DOSRC}/tosa-2.6.13-r1.patch;patch=1 \ ${RPSRC}/temp/tosa-bl-r5.patch;patch=1 \ - ${RPSRC}/scoop_susres-r1.patch;patch=1 \ ${RPSRC}/pcmcia_dev_ids-r1.patch;patch=1 \ ${RPSRC}/mmc_timeout-r0.patch;patch=1 \ ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1 \ diff --git a/packages/lyx/lyx_1.3.6.bb b/packages/lyx/lyx_1.3.6.bb index 6e2309623a..de58313b0a 100644 --- a/packages/lyx/lyx_1.3.6.bb +++ b/packages/lyx/lyx_1.3.6.bb @@ -3,8 +3,9 @@ SECTION = "x11/office" LICENSE = "GPL" HOMEPAGE = "http://www.lyx.org" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" -DEPENDS = "boost qt-x11-free" +DEPENDS = "boost qt3x11" RRECOMMENDS = "tetex" +PR = "r1" SRC_URI = "ftp://ftp.lyx.org/pub/lyx/stable/lyx-${PV}.tar.bz2" diff --git a/packages/mythtv/mythtv-0.16+cvs20040918/.mtn2git_empty b/packages/mythtv/mythtv-0.16+cvs20040918/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 --- a/packages/mythtv/mythtv-0.16+cvs20040918/.mtn2git_empty +++ /dev/null diff --git a/packages/mythtv/mythtv-0.16+cvs20040918/xvmc-via.patch b/packages/mythtv/mythtv-0.16+cvs20040918/xvmc-via.patch deleted file mode 100644 index d920cade2e..0000000000 --- a/packages/mythtv/mythtv-0.16+cvs20040918/xvmc-via.patch +++ /dev/null @@ -1,63 +0,0 @@ -Index: libs/libavcodec/xvmc_render.h -=================================================================== -RCS file: /var/lib/mythcvs/mythtv/libs/libavcodec/xvmc_render.h,v -retrieving revision 1.5 -diff -u -r1.5 xvmc_render.h ---- libs/libavcodec/xvmc_render.h 13 Sep 2004 06:09:22 -0000 1.5 -+++ libs/libavcodec/xvmc_render.h 18 Sep 2004 19:37:35 -0000 -@@ -10,7 +10,7 @@ - - #ifdef USING_XVMC_VLD - #include <stdint.h> --#include <X11/extensions/viaXvMC.h> -+#include <X11/extensions/vldXvMC.h> - #endif - - //the surface should be shown, video driver manipulate this -Index: libs/libmythtv/XvMCSurfaceTypes.h -=================================================================== -RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/XvMCSurfaceTypes.h,v -retrieving revision 1.3 -diff -u -r1.3 XvMCSurfaceTypes.h ---- libs/libmythtv/XvMCSurfaceTypes.h 13 Sep 2004 06:09:23 -0000 1.3 -+++ libs/libmythtv/XvMCSurfaceTypes.h 18 Sep 2004 19:37:36 -0000 -@@ -7,7 +7,7 @@ - - extern "C" { - #ifdef USING_XVMC_VLD --#include <X11/extensions/viaXvMC.h> -+#include <X11/extensions/vldXvMC.h> - #endif - #include "../libavcodec/xvmc_render.h" - } -Index: libs/libmythtv/dvbdiseqc.cpp -=================================================================== -RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/dvbdiseqc.cpp,v -retrieving revision 1.7 -diff -u -r1.7 dvbdiseqc.cpp ---- libs/libmythtv/dvbdiseqc.cpp 6 Aug 2004 17:34:55 -0000 1.7 -+++ libs/libmythtv/dvbdiseqc.cpp 18 Sep 2004 19:37:36 -0000 -@@ -29,6 +29,7 @@ - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -+#include <math.h> - #include <iostream> - #include "pthread.h" - #include "qsqldatabase.h" -Index: libs/libmythtv/videoout_xvmc.cpp -=================================================================== -RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/videoout_xvmc.cpp,v -retrieving revision 1.36 -diff -u -r1.36 videoout_xvmc.cpp ---- libs/libmythtv/videoout_xvmc.cpp 13 Sep 2004 06:09:24 -0000 1.36 -+++ libs/libmythtv/videoout_xvmc.cpp 18 Sep 2004 19:37:39 -0000 -@@ -32,7 +32,7 @@ - - extern "C" { - #ifdef USING_XVMC_VLD --#include <X11/extensions/viaXvMC.h> -+#include <X11/extensions/vldXvMC.h> - #endif - #include "../libavcodec/avcodec.h" - #include "../libavcodec/xvmc_render.h" diff --git a/packages/mythtv/mythtv_0.16+cvs20040918.bb b/packages/mythtv/mythtv_0.16+cvs20040918.bb deleted file mode 100644 index 2fe9395bab..0000000000 --- a/packages/mythtv/mythtv_0.16+cvs20040918.bb +++ /dev/null @@ -1,79 +0,0 @@ -DESCRIPTION = "A full featured personal video recorder system." -MAINTAINER = "Michael 'Mickey' Lauer" -SECTION = "x11/multimedia" -PR = "r4" - -SRC_URI = "cvs://mythtv:mythtv@cvs.mythtv.org/var/lib/mythcvs;module=mythtv;date=20040918;method=pserver \ - file://xvmc-via.patch;patch=1;pnum=0 \ - file://settings.pro \ - file://prefix-etc.patch;patch=1" -S = "${WORKDIR}/mythtv" - -DEPENDS = "xinerama qt-x11-free lame libxv libxxf86vm libxvmc lirc" -RDEPENDS = "qt-x11-plugins" - -inherit qmake qt3x11 - -QMAKE_PROFILES = "mythtv.pro" - -# -# Disable everything non-x86 for now, since there are some -march=i586 hardcoded in there. -# -COMPATIBLE_HOST = 'i.86.*-linux' - -def mythtv_arch(d): - import bb, re - arch = bb.data.getVar('TARGET_ARCH', d, 1) - if re.match("^i.86$", arch): - arch = "x86" - elif arch == "x86_64": - arch = "x86" - elif arch == "arm": - arch = "armv4l" - return arch - -MYTHTV_ARCH := "${@mythtv_arch(d)}" - -do_configure_prepend() { -# it's not autotools anyway, so we call ./configure directly - find . -name "Makefile"|xargs rm -f - ./configure --prefix=/usr \ - --mandir=/usr/man \ - --disable-mp3lame \ - --enable-vorbis \ - --disable-faad \ - --disable-faadbin \ - --disable-faac \ - --disable-mingw32 \ - --enable-a52 \ - --disable-a52bin \ - --enable-pp \ - --enable-shared-pp \ - --enable-shared \ - --disable-amr_nb \ - --disable-amr_nb-fixed \ - --disable-sunmlib \ - \ - --cpu=${MYTHTV_ARCH} \ - --enable-mmx \ - --disable-altivec \ - --enable-v4l \ - --enable-audio-oss \ - --disable-audio-beos \ - --enable-dv1394 \ - --enable-network \ - --enable-zlib \ - --enable-simple_idct \ - --disable-vhook \ - --disable-mpegaudio-hp \ - --enable-ffserver \ - --enable-ffplay \ - --enable-risky - - install -m 0644 ${WORKDIR}/settings.pro ${S}/ -} - -do_install() { - oe_runmake INSTALL_ROOT=${D} install -} - diff --git a/packages/mythtv/mythtv_0.16.bb b/packages/mythtv/mythtv_0.16.bb deleted file mode 100644 index 0dd6e22120..0000000000 --- a/packages/mythtv/mythtv_0.16.bb +++ /dev/null @@ -1,74 +0,0 @@ -DESCRIPTION = "A full featured personal video recorder system." -MAINTAINER = "Michael 'Mickey' Lauer" -SECTION = "x11/multimedia" -PR = "r2" - -SRC_URI = "http://www.mythtv.org/mc/mythtv-${PV}.tar.bz2" - -DEPENDS = "xinerama qt-x11-free lame libxv libxxf86vm libxvmc lirc" -RDEPENDS = "qt-x11-plugins" - -inherit qmake qt3x11 - -# there is a -march=586 somewhere in the source tree -COMPATIBLE_HOST = 'i.86.*-linux' - -QMAKE_PROFILES = "mythtv.pro" - -def mythtv_arch(d): - import bb, re - arch = bb.data.getVar('TARGET_ARCH', d, 1) - if re.match("^i.86$", arch): - arch = "x86" - elif arch == "x86_64": - arch = "x86" - elif arch == "arm": - arch = "armv4l" - return arch - -MYTHTV_ARCH := "${@mythtv_arch(d)}" - -do_configure_prepend() { -# it's not autotools anyway, so we call ./configure directly - find . -name "Makefile"|xargs rm -f - ./configure --prefix=/usr \ - --mandir=/usr/man \ - --disable-mp3lame \ - --enable-vorbis \ - --disable-faad \ - --disable-faadbin \ - --disable-faac \ - --disable-mingw32 \ - --enable-a52 \ - --disable-a52bin \ - --enable-pp \ - --enable-shared-pp \ - --enable-shared \ - --disable-amr_nb \ - --disable-amr_nb-fixed \ - --disable-sunmlib \ - \ - --cpu=${MYTHTV_ARCH} \ - --enable-mmx \ - --disable-altivec \ - --enable-v4l \ - --enable-audio-oss \ - --disable-audio-beos \ - --enable-dv1394 \ - --enable-network \ - --enable-zlib \ - --enable-simple_idct \ - --disable-vhook \ - --disable-mpegaudio-hp \ - --enable-ffserver \ - --enable-ffplay \ - --enable-risky - - sed 's!PREFIX =.*!PREFIX = ${prefix}!' < settings.pro > settings.pro.new - mv settings.pro.new settings.pro -} - -do_install() { - oe_runmake INSTALL_ROOT=${D} install -} - diff --git a/packages/mythtv/mythtv_0.17.bb b/packages/mythtv/mythtv_0.17.bb deleted file mode 100644 index 54af1f47d4..0000000000 --- a/packages/mythtv/mythtv_0.17.bb +++ /dev/null @@ -1,76 +0,0 @@ -DESCRIPTION = "A full featured personal video recorder system." -MAINTAINER = "Michael 'Mickey' Lauer" -SECTION = "x11/multimedia" -PR = "r0" - -SRC_URI = "http://www.mythtv.org/mc/mythtv-${PV}.tar.bz2 \ - file://settings.pro" - -DEPENDS = "xinerama qt-x11-free lame libxv libxxf86vm libxvmc lirc" -RDEPENDS = "qt-x11-plugins" - -inherit qmake qt3x11 - -# there is a -march=586 somewhere in the source tree -COMPATIBLE_HOST = 'i.86.*-linux' - -QMAKE_PROFILES = "mythtv.pro" - -def mythtv_arch(d): - import bb, re - arch = bb.data.getVar('TARGET_ARCH', d, 1) - if re.match("^i.86$", arch): - arch = "x86" - elif arch == "x86_64": - arch = "x86" - elif arch == "arm": - arch = "armv4l" - return arch - -MYTHTV_ARCH := "${@mythtv_arch(d)}" - -do_configure_prepend() { -# it's not autotools anyway, so we call ./configure directly - find . -name "Makefile"|xargs rm -f - ./configure --prefix=/usr \ - --mandir=/usr/man \ - --disable-mp3lame \ - --enable-vorbis \ - --disable-faad \ - --disable-faadbin \ - --disable-faac \ - --disable-mingw32 \ - --enable-a52 \ - --disable-a52bin \ - --enable-pp \ - --enable-shared-pp \ - --enable-shared \ - --disable-amr_nb \ - --disable-amr_nb-fixed \ - --disable-sunmlib \ - \ - --cpu=${MYTHTV_ARCH} \ - --enable-mmx \ - --disable-altivec \ - --enable-v4l \ - --enable-audio-oss \ - --disable-audio-beos \ - --enable-dv1394 \ - --enable-network \ - --enable-zlib \ - --enable-simple_idct \ - --disable-vhook \ - --disable-mpegaudio-hp \ - --enable-ffserver \ - --enable-ffplay \ - --enable-risky - - install -m 0644 ${WORKDIR}/settings.pro ${S}/ - sed 's!PREFIX =.*!PREFIX = ${prefix}!' < settings.pro > settings.pro.new - mv settings.pro.new settings.pro -} - -do_install() { - oe_runmake INSTALL_ROOT=${D} install -} - diff --git a/packages/mythtv/mythtv_0.18.1.bb b/packages/mythtv/mythtv_0.18.1.bb index 6bd5cc81f3..09aa63062f 100644 --- a/packages/mythtv/mythtv_0.18.1.bb +++ b/packages/mythtv/mythtv_0.18.1.bb @@ -1,13 +1,15 @@ DESCRIPTION = "A full featured personal video recorder system." -MAINTAINER = "Michael 'Mickey' Lauer" +HOMEPAGE = "http://www.mythtv.org" +LICENSE = "GPL" +MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" SECTION = "x11/multimedia" -PR = "r0" +PR = "r1" SRC_URI = "http://www.mythtv.org/mc/mythtv-${PV}.tar.bz2 \ file://msmpeg-underscore-pic.patch;patch=1 \ file://settings.pro" -DEPENDS = "xinerama qt-x11-free lame libxv libxxf86vm libxvmc lirc" +DEPENDS = "xinerama lame libxv libxxf86vm libxvmc lirc" RDEPENDS = "qt-x11-plugins" inherit qmake qt3x11 diff --git a/packages/mythtv/mythtv_cvs.bb b/packages/mythtv/mythtv_cvs.bb deleted file mode 100644 index 197e67c023..0000000000 --- a/packages/mythtv/mythtv_cvs.bb +++ /dev/null @@ -1,88 +0,0 @@ -DESCRIPTION = "A full featured personal video recorder system." -MAINTAINER = "Michael 'Mickey' Lauer" -SECTION = "x11/multimedia" -PR = "r4" -PV = "0.16+cvs${CVSDATE}" - -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "cvs://mythtv:mythtv@cvs.mythtv.org/var/lib/mythcvs;module=mythtv;method=pserver \ - http://www.ivor.it/mythtv/epiaosd.tar.gz \ - file://settings.pro \ - file://prefix-etc.patch;patch=1" -S = "${WORKDIR}/mythtv" - -DEPENDS = "xinerama qt-x11-free lame libxv libxxf86vm libxvmc lirc" -RDEPENDS = "qt-x11-plugins" - -PACKAGES =+ "libmythavcodec libmythavformat libmythtv mythtv-backend" -FILES_libmythavcodec = "${libdir}/libmythavcodec-*.so.*" -FILES_libmythavformat = "${libdir}/libmythavformat-*.so.*" -FILES_libmythtv = "${libdir}/libmythtv-*.so.*" -FILES_mythtv-backend = "${bindir}/mythbackend ${bindir}/mythtranscode ${bindir}/mythfilldatabase ${bindir}/mythcommflag" - -inherit qmake qt3x11 - -QMAKE_PROFILES = "mythtv.pro" - -# there is a -march=586 somewhere in the source tree -COMPATIBLE_HOST = 'i.86.*-linux' - -def mythtv_arch(d): - import bb, re - arch = bb.data.getVar('TARGET_ARCH', d, 1) - if re.match("^i.86$", arch): - arch = "x86" - elif arch == "x86_64": - arch = "x86" - elif arch == "arm": - arch = "armv4l" - return arch - -MYTHTV_ARCH := "${@mythtv_arch(d)}" - -do_configure_prepend() { -# it's not autotools anyway, so we call ./configure directly - find . -name "Makefile"|xargs rm -f - ./configure --prefix=/usr \ - --mandir=/usr/man \ - --disable-mp3lame \ - --enable-vorbis \ - --disable-faad \ - --disable-faadbin \ - --disable-faac \ - --disable-mingw32 \ - --enable-a52 \ - --disable-a52bin \ - --enable-pp \ - --enable-shared-pp \ - --enable-shared \ - --disable-amr_nb \ - --disable-amr_nb-fixed \ - --disable-sunmlib \ - \ - --cpu=${MYTHTV_ARCH} \ - --enable-mmx \ - --disable-altivec \ - --enable-v4l \ - --enable-audio-oss \ - --disable-audio-beos \ - --enable-dv1394 \ - --enable-network \ - --enable-zlib \ - --enable-simple_idct \ - --disable-vhook \ - --disable-mpegaudio-hp \ - --enable-ffserver \ - --enable-ffplay \ - --enable-risky - - install -m 0644 ${WORKDIR}/settings.pro ${S}/ - - cp -a ${WORKDIR}/themes/epiaosd ${S}/themes/ -} - -do_install() { - oe_runmake INSTALL_ROOT=${D} install -} - diff --git a/packages/qt/qt-x11-free_3.3.5.bb b/packages/qt/qt-x11-free_3.3.5.bb index e56e0aec31..2bb9453159 100644 --- a/packages/qt/qt-x11-free_3.3.5.bb +++ b/packages/qt/qt-x11-free_3.3.5.bb @@ -5,7 +5,8 @@ LICENSE = "GPL QPL" HOMEPAGE = "http://www.trolltech.com" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" DEPENDS = "uicmoc3-native freetype x11 xft xext libxrender libxrandr libxcursor mysql" -PR = "r9" +PROVIDES = "qt3x11" +PR = "r10" SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-free-${PV}.tar.bz2 \ file://configure.patch;patch=1 \ diff --git a/packages/qt/qt-x11-free_4.0.1.bb b/packages/qt/qt-x11-free_4.0.1.bb index 301d58a54b..f3b4dd3aa6 100644 --- a/packages/qt/qt-x11-free_4.0.1.bb +++ b/packages/qt/qt-x11-free_4.0.1.bb @@ -5,9 +5,10 @@ HOMEPAGE = "http://www.trolltech.com" LICENSE = "GPL QPL" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" DEPENDS = "uicmoc4-native freetype jpeg x11 xft xext libxrender libxrandr libxcursor mysql" +PROVIDES = "qt4x11" # FIXME: Make it use 'our' qmake # DEPENDS += "qmake-native-2.00a" -PR = "r0" +PR = "r1" SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz \ file://cross-compile.patch;patch=1 \ diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/compile-fix-HACK.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/compile-fix-HACK.patch deleted file mode 100644 index a8182076d7..0000000000 --- a/packages/wlan-ng/wlan-ng-modules-0.2.2/compile-fix-HACK.patch +++ /dev/null @@ -1,43 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- linux-wlan-ng-0.2.2/src/prism2/driver/prism2_cs.c~compile-fix-HACK.patch -+++ linux-wlan-ng-0.2.2/src/prism2/driver/prism2_cs.c -@@ -21,15 +21,6 @@ - * is set to and what the CIS - * says. - */ --#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) ) --#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,5)) --static int numlist = 4; --module_param_array(irq_list, int, numlist, 0444); --#else --module_param_array(irq_list, int, NULL, 0444); --#endif --module_param( irq_mask, int, 0644); --#endif - - static dev_link_t *dev_list = NULL; /* head of instance list */ - ---- linux-wlan-ng-0.2.2/src/prism2/driver/hfa384x_usb.c~compile-fix-HACK.patch -+++ linux-wlan-ng-0.2.2/src/prism2/driver/hfa384x_usb.c -@@ -3240,7 +3240,7 @@ - int result; - DBFENTER; - -- might_sleep(); -+ might_sleep(0); - - if (usb_clear_halt(hw->usb, hw->endp_in)) { - WLAN_LOG_ERROR( -@@ -3316,7 +3316,7 @@ - int i; - DBFENTER; - -- might_sleep(); -+ might_sleep(0); - - /* There's no need for spinlocks here. The USB "disconnect" - * function sets this "removed" flag and then calls us. diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/config.in b/packages/wlan-ng/wlan-ng-modules-0.2.2/config.in index 5b9b7c780c..69f8ac1db2 100644 --- a/packages/wlan-ng/wlan-ng-modules-0.2.2/config.in +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/config.in @@ -1,7 +1,7 @@ WLAN_VERSION=0 WLAN_PATCHLEVEL=2 -WLAN_SUBLEVEL=1 -WLAN_EXTRAVERSION=-pre26 +WLAN_SUBLEVEL=2 +WLAN_EXTRAVERSION= #LINUX_SRC=$(KERNEL_SOURCE) PCMCIA_SRC= PREFIX= diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/might-sleep.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/might-sleep.patch new file mode 100644 index 0000000000..a156229331 --- /dev/null +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/might-sleep.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/src/include/wlan/wlan_compat.h~might_sleep ++++ linux-wlan-ng-0.2.2/src/include/wlan/wlan_compat.h +@@ -584,7 +584,7 @@ + #endif + + #ifndef might_sleep +-#define might_sleep(a) do { } while (0) ++#define might_sleep() do { } while (0) + #endif + + /* Apparently 2.4.2 ethtool is quite different, maybe newer too? */ diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/module_param_array.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/module_param_array.patch new file mode 100644 index 0000000000..a22d39dca2 --- /dev/null +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/module_param_array.patch @@ -0,0 +1,19 @@ +--- linux-wlan-ng-0.2.2/src/prism2/driver/prism2_cs.c~ 2005-07-20 19:16:55.000000000 +0200 ++++ linux-wlan-ng-0.2.2/src/prism2/driver/prism2_cs.c 2005-09-01 19:02:59.099563318 +0200 +@@ -22,12 +22,16 @@ + * says. + */ + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) ) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,5)) + static int numlist = 4; + module_param_array(irq_list, int, numlist, 0444); + #else + module_param_array(irq_list, int, NULL, 0444); + #endif ++#else ++MODULE_PARM( irq_list, "1-4i" ); ++#endif + module_param( irq_mask, int, 0644); + #endif + diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/more-compat.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/more-compat.patch new file mode 100644 index 0000000000..4ce8173f93 --- /dev/null +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/more-compat.patch @@ -0,0 +1,7 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/wlan_compat.h ++++ /dev/null diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/pcmciasrc.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/pcmciasrc.patch new file mode 100644 index 0000000000..ea76baa98b --- /dev/null +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/pcmciasrc.patch @@ -0,0 +1,45 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/Configure~pcmciasrc ++++ linux-wlan-ng-0.2.2/Configure +@@ -358,37 +358,6 @@ + # kernel PCMCIA. + + if [ $WLAN_KERN_PCMCIA != "y" ] ; then +- if [ ! "$PCMCIA_SRC" ] ; then +- if [ -f /sbin/cardctl ] ; then +- PCMCIA_SRC=`/sbin/cardctl -V 2>&1 | sed -e 's/cardctl version //'` +- PCMCIA_SRC=/usr/src/pcmcia-cs-$PCMCIA_SRC +- fi +- fi +- ask_str "pcmcia-cs source dir" PCMCIA_SRC +- +- if [ ! -f $PCMCIA_SRC/Makefile ] ; then +- $ECHO "pcmcia-cs source tree $PCMCIA_SRC is incomplete or missing!" +- $ECHO "The wlan driver for pcmcia cannot be built without " +- $ECHO "the pcmcia-cs source tree present and configured." +- fail +- fi +- if [ ! -f $PCMCIA_SRC/include/pcmcia/config.h ] ; then +- $ECHO "The pcmcia-cs source tree does not appear to be configured." +- $ECHO "The wlan driver for pcmcia cannot be built without "\ +- $ECHO "the pcmcia-cs source tree present and configured." +- fail +- fi +- $ECHO "" +- +- # Now we need to generate the module options flags. +- # It's only relevant if modversions is turned on. +- grep CONFIG_MODVERSIONS=y < $PCMCIA_SRC/config.mk > /dev/null +- if [ $? = 0 ] ; then +- PCMCIA_MODFLAGS="-DMODULE -DMODVERSIONS -include $PCMCIA_SRC/include/linux/modversions.h" +- else +- PCMCIA_MODFLAGS="-DMODULE" +- fi +- + # new versions of pcmcia-cs don't generate their own modversion.h + # if they don't have it, use the kernel module flags instead. + if [ ! -f $PCMCIA_SRC/include/linux/modversions.h ] ; then diff --git a/packages/wlan-ng/wlan-ng-modules-0.2.2/scripts-makefile-hostcc.patch b/packages/wlan-ng/wlan-ng-modules-0.2.2/scripts-makefile-hostcc.patch new file mode 100644 index 0000000000..1746b8a359 --- /dev/null +++ b/packages/wlan-ng/wlan-ng-modules-0.2.2/scripts-makefile-hostcc.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/scripts/Makefile~scripts-makefile-hostcc ++++ linux-wlan-ng-0.2.2/scripts/Makefile +@@ -24,7 +24,7 @@ + exit 1;\ + fi + +- $(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version ++ $(BUILD_CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version + + get_options: + $(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target diff --git a/packages/wlan-ng/wlan-ng-modules_0.2.2.bb b/packages/wlan-ng/wlan-ng-modules_0.2.2.bb index 9a482447c6..e2528a78af 100644 --- a/packages/wlan-ng/wlan-ng-modules_0.2.2.bb +++ b/packages/wlan-ng/wlan-ng-modules_0.2.2.bb @@ -9,8 +9,11 @@ PR = "r1" SRC_URI = "ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-${PV}.tar.bz2 \ file://no-compat.patch;patch=1 \ file://msleep-vs-mdelay.patch;patch=1 \ + file://might-sleep.patch;patch=1 \ file://only-the-modules.patch;patch=1 \ - file://compile-fix-HACK.patch;patch=1 \ + file://module_param_array.patch;patch=1 \ + file://scripts-makefile-hostcc.patch;patch=1 \ + file://pcmciasrc.patch;patch=1 \ file://config.in" S = "${WORKDIR}/linux-wlan-ng-${PV}" @@ -31,6 +34,7 @@ do_configure() { echo "TARGET_MODDIR=${D}/lib/modules/${KERNEL_VERSION}/wlan-ng" >> config.mk echo "CC=${KERNEL_CC}" >> config.mk echo "LD=${KERNEL_LD}" >> config.mk + echo "LDFLAGS=" >> config.mk # Listen closely... sssshhh... can you hear the wlan-ng build system suck? rm -f ${KERNEL_SOURCE}/../config.mk diff --git a/packages/wlan-ng/wlan-ng-utils-0.2.2/config.in b/packages/wlan-ng/wlan-ng-utils-0.2.2/config.in index 5b9b7c780c..1fadad5560 100644 --- a/packages/wlan-ng/wlan-ng-utils-0.2.2/config.in +++ b/packages/wlan-ng/wlan-ng-utils-0.2.2/config.in @@ -1,9 +1,9 @@ WLAN_VERSION=0 WLAN_PATCHLEVEL=2 -WLAN_SUBLEVEL=1 -WLAN_EXTRAVERSION=-pre26 +WLAN_SUBLEVEL=2 +WLAN_EXTRAVERSION= #LINUX_SRC=$(KERNEL_SOURCE) -PCMCIA_SRC= +PCMCIA_SRC=. PREFIX= INST_EXEDIR=/sbin #TARGET_ROOT_ON_HOST= diff --git a/packages/wlan-ng/wlan-ng-utils_0.2.2.bb b/packages/wlan-ng/wlan-ng-utils_0.2.2.bb index 7d5ceda29c..17cf3cab83 100644 --- a/packages/wlan-ng/wlan-ng-utils_0.2.2.bb +++ b/packages/wlan-ng/wlan-ng-utils_0.2.2.bb @@ -7,6 +7,8 @@ PR = "r0" SRC_URI = "ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-${PV}.tar.bz2 \ file://only-the-utils.patch;patch=1 \ + file://scripts-makefile-hostcc.patch;patch=1 \ + file://pcmciasrc.patch;patch=1 \ file://wlan-ng.modutils \ file://wlan.agent \ file://usbctl \ |