From b4cb437c6595ff8ac13506e502fe04b1a60c4e04 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 9 May 2006 18:38:19 +0000 Subject: Merge packages changes from OE into poky. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@386 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- openembedded/packages/cairo/cairo_1.0.4.bb | 5 +- .../console-tools-0.3.2/uclibc-fileno.patch | 47 + .../packages/console-tools/console-tools_0.3.2.bb | 1 + openembedded/packages/e2fsprogs/e2fsprogs_1.38.bb | 7 +- .../packages/fakeroot/fakeroot-native_1.2.13.bb | 8 +- openembedded/packages/flex/files/flex-lvalue.diff | 36 + openembedded/packages/flex/flex.inc | 1 + .../packages/freetype/files/no-hardcode.patch | 11 + openembedded/packages/freetype/freetype_2.1.10.bb | 5 +- .../packages/gcc/gcc-4.0.2/100-uclibc-conf.patch | 556 + .../packages/gcc/gcc-4.0.2/200-uclibc-locale.patch | 3240 ++++++ .../gcc/gcc-4.0.2/301-missing-execinfo_h.patch | 14 + .../packages/gcc/gcc-4.0.2/302-c99-snprintf.patch | 14 + .../gcc/gcc-4.0.2/303-c99-complex-ugly-hack.patch | 15 + .../packages/gcc/gcc-4.0.2/800-arm-bigendian.patch | 70 + .../gcc/gcc-4.0.2/zecke-host-cpp-ac-hack.patch | 140 + openembedded/packages/gcc/gcc-package.inc | 5 +- .../packages/gdbm/gdbm-1.8.3/libtool-mode.patch | 20 + openembedded/packages/gdbm/gdbm_1.8.3.bb | 3 +- .../glibc/files/5090_all_stubs-rule-fix.patch | 39 + openembedded/packages/glibc/files/etc/ld.so.conf | 2 +- .../packages/glibc/glibc_2.3.5+cvs20050627.bb | 1 + openembedded/packages/gnome/gconf-dbus_svn.bb | 2 +- openembedded/packages/gtk+/gtk+_2.8.16.bb | 4 +- openembedded/packages/hostap/files/hostap_cs.conf | 58 +- openembedded/packages/hostap/hostap-conf_1.0.bb | 3 +- .../initscripts-1.0/akita/keymap-2.4.map | 128 - .../initscripts-1.0/akita/keymap-2.6.map | 213 - .../initscripts-1.0/c7x0/keymap-2.6.map | 213 - .../initscripts-1.0/collie/keymap-2.6.map | 393 - .../packages/initscripts/initscripts-1.0/keymap | 16 - .../initscripts-1.0/poodle/keymap-2.6.map | 393 - .../initscripts-1.0/spitz/keymap-2.4.map | 128 - .../initscripts-1.0/spitz/keymap-2.6.map | 213 - .../initscripts-1.0/tosa/keymap-2.4.map | 133 - .../initscripts-1.0/tosa/keymap-2.6.map | 210 - .../packages/initscripts/initscripts_1.0.bb | 21 +- openembedded/packages/ipkg/ipkg.inc | 9 +- openembedded/packages/ipkg/ipkg_0.99.154.bb | 1 + openembedded/packages/irda-utils/files/init | 55 +- .../packages/irda-utils/irda-utils_0.9.16.bb | 2 +- .../packages/keymaps/files/akita/keymap-2.4.map | 128 + .../packages/keymaps/files/akita/keymap-2.6.map | 228 + .../packages/keymaps/files/c7x0/keymap-2.6.map | 213 + .../packages/keymaps/files/collie/keymap-2.4.map | 114 + .../packages/keymaps/files/collie/keymap-2.6.map | 262 + openembedded/packages/keymaps/files/keymap | 16 + .../packages/keymaps/files/poodle/keymap-2.6.map | 262 + .../packages/keymaps/files/spitz/keymap-2.4.map | 128 + .../packages/keymaps/files/spitz/keymap-2.6.map | 228 + .../packages/keymaps/files/tosa/keymap-2.4.map | 133 + .../packages/keymaps/files/tosa/keymap-2.6.map | 210 + openembedded/packages/keymaps/keymaps_1.0.bb | 34 + openembedded/packages/libxml/libxml2_2.6.10.bb | 2 +- openembedded/packages/libxml/libxml2_2.6.22.bb | 39 + .../linux-omap1-2.6.12-rc2/nokia770/defconfig | 760 -- .../linux-omap1-2.6.12-rc2/omap5912osk/defconfig | 1035 -- .../packages/linux/linux-omap1_2.6.12-rc2.bb | 46 - .../linux-openzaurus-2.6.16/24-hostap_cs_id.diff | 107 + .../linux/linux-openzaurus-2.6.16/defconfig-akita | 85 +- .../linux/linux-openzaurus-2.6.16/defconfig-c7x0 | 92 +- .../linux/linux-openzaurus-2.6.16/defconfig-collie | 316 +- .../linux-openzaurus-2.6.16/defconfig-ipaq-pxa270 | 6 +- .../linux/linux-openzaurus-2.6.16/defconfig-poodle | 331 +- .../linux/linux-openzaurus-2.6.16/defconfig-spitz | 85 +- .../linux/linux-openzaurus-2.6.16/defconfig-tosa | 91 +- .../hrw-pcmcia-ids-r2.patch | 35 + .../linux/linux-openzaurus-2.6.16/rmk-mmc1.patch | 61 + .../linux/linux-openzaurus-2.6.16/rmk-mmc2.patch | 26 + openembedded/packages/linux/linux-openzaurus.inc | 10 +- .../packages/linux/linux-openzaurus_2.6.16.bb | 44 +- openembedded/packages/netbase/netbase_4.21.bb | 6 +- openembedded/packages/orinoco/files/hermes.conf | 64 - openembedded/packages/orinoco/orinoco-conf_1.0.bb | 5 +- openembedded/packages/perl/perl-native_5.8.7.bb | 6 +- openembedded/packages/perl/perl.inc | 3 +- openembedded/packages/perl/perl_5.8.7.bb | 4 +- .../packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 | 156 + .../packages/pkgconfig/pkgconfig_0.15.0.bb | 4 +- .../packages/prism3-support/files/hostap-fw-load | 12 +- .../prism3-support/prism3-support_1.0.0.bb | 2 +- openembedded/packages/qemu/files/nodocs_cvs.patch | 44 + .../packages/qemu/files/qemu_nodocs_cvs.patch | 44 - openembedded/packages/qemu/qemu-native_cvs.bb | 1 - openembedded/packages/qemu/qemu_cvs.bb | 4 +- openembedded/packages/quilt/files/autoreconf.patch | 10794 ------------------- openembedded/packages/quilt/files/non-gnu.patch | 13 + openembedded/packages/quilt/files/wiggle.patch | 110 - openembedded/packages/quilt/quilt-native_0.42.bb | 10 +- openembedded/packages/quilt/quilt.inc | 10 +- openembedded/packages/quilt/quilt_0.42.bb | 7 +- .../libsysfs-write-attribute.patch | 29 - .../packages/sysfsutils/sysfsutils_1.1.0.bb | 14 - .../packages/sysfsutils/sysfsutils_1.2.0.bb | 22 - .../packages/sysfsutils/sysfsutils_1.3.0.bb | 21 - .../packages/sysfsutils/sysfsutils_2.0.0.bb | 23 + openembedded/packages/sysvinit/sysvinit_2.86.bb | 21 +- openembedded/packages/tslib/tslib/akita/tslib.sh | 2 +- openembedded/packages/tslib/tslib/c7x0/tslib.sh | 2 +- openembedded/packages/tslib/tslib/collie/tslib.sh | 16 +- openembedded/packages/tslib/tslib/h1940/tslib.sh | 2 +- openembedded/packages/tslib/tslib/h3600/tslib.sh | 2 +- openembedded/packages/tslib/tslib/h6300/tslib.sh | 2 +- .../packages/tslib/tslib/ipaq-pxa270/tslib.sh | 2 +- openembedded/packages/tslib/tslib/poodle/ts.conf | 5 - openembedded/packages/tslib/tslib/poodle/tslib.sh | 16 +- openembedded/packages/tslib/tslib/spitz/tslib.sh | 2 +- openembedded/packages/tslib/tslib/tosa/ts.conf | 5 - openembedded/packages/tslib/tslib/tosa/tslib.sh | 2 +- openembedded/packages/tslib/tslib/ts-2.6.conf | 5 + .../packages/tslib/tslib/ts.conf-collie-2.4 | 5 + openembedded/packages/tslib/tslib/ts.conf-corgi | 5 - openembedded/packages/tslib/tslib/ts.conf-h2200 | 5 - openembedded/packages/tslib/tslib/ts.conf-h3600 | 5 - openembedded/packages/tslib/tslib/ts.conf-h6300 | 5 - openembedded/packages/tslib/tslib/ts.conf-simpad | 5 - openembedded/packages/tslib/tslib/usec_fix.patch | 26 + openembedded/packages/tslib/tslib_cvs.bb | 24 +- .../packages/udev/files/akita/mount.blacklist | 5 + .../packages/udev/files/c7x0/mount.blacklist | 5 + .../packages/udev/files/fix-alignment.patch | 24 + openembedded/packages/udev/files/local.rules | 17 + openembedded/packages/udev/files/mount.blacklist | 1 + .../packages/udev/files/noasmlinkage.patch | 38 + .../packages/udev/files/slugos/mount.blacklist | 4 + .../packages/udev/files/spitz/mount.blacklist | 6 + .../packages/udev/files/tosa/mount.blacklist | 5 + openembedded/packages/udev/files/udev.rules | 2 +- .../packages/udev/files/udev_network_queue.sh | 35 + .../packages/udev/files/udevsynthesize.patch | 776 ++ openembedded/packages/udev/files/udevsynthesize.sh | 51 + openembedded/packages/udev/udev-071/flags.patch | 72 - .../packages/udev/udev-071/noasmlinkage.patch | 38 - .../packages/udev/udev-071/tty-symlinks.patch | 13 - openembedded/packages/udev/udev-084/init | 4 +- openembedded/packages/udev/udev-084/local.rules | 28 + .../packages/udev/udev-084/noasmlinkage.patch | 38 - openembedded/packages/udev/udev-084/udev.rules | 3 +- .../packages/udev/udev-084/udevsynthesize.patch | 776 -- .../packages/udev/udev-084/udevsynthesize.sh | 51 - openembedded/packages/udev/udev.inc | 2 +- openembedded/packages/udev/udev_071.bb | 17 - openembedded/packages/udev/udev_084.bb | 24 +- .../update-modules-1.0/update-modules | 11 +- .../packages/update-modules/update-modules_1.0.bb | 3 +- .../wpa-supplicant/wpa-supplicant_0.3.6.bb | 3 +- .../packages/zaurus-updater/encdec-updater.bb | 2 + .../packages/zaurus-updater/tosa/updater.sh | 2 +- .../packages/zaurus-updater/zaurus-updater.bb | 5 +- openembedded/packages/zaurusd/zaurusd_svn.bb | 13 +- 150 files changed, 8568 insertions(+), 16640 deletions(-) create mode 100644 openembedded/packages/console-tools/console-tools-0.3.2/uclibc-fileno.patch create mode 100644 openembedded/packages/flex/files/flex-lvalue.diff create mode 100644 openembedded/packages/freetype/files/no-hardcode.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/100-uclibc-conf.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/200-uclibc-locale.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/301-missing-execinfo_h.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/302-c99-snprintf.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/303-c99-complex-ugly-hack.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/800-arm-bigendian.patch create mode 100644 openembedded/packages/gcc/gcc-4.0.2/zecke-host-cpp-ac-hack.patch create mode 100644 openembedded/packages/gdbm/gdbm-1.8.3/libtool-mode.patch create mode 100644 openembedded/packages/glibc/files/5090_all_stubs-rule-fix.patch delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/akita/keymap-2.4.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/akita/keymap-2.6.map delete mode 100755 openembedded/packages/initscripts/initscripts-1.0/c7x0/keymap-2.6.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/collie/keymap-2.6.map delete mode 100755 openembedded/packages/initscripts/initscripts-1.0/keymap delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/poodle/keymap-2.6.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/spitz/keymap-2.4.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/spitz/keymap-2.6.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/tosa/keymap-2.4.map delete mode 100644 openembedded/packages/initscripts/initscripts-1.0/tosa/keymap-2.6.map create mode 100644 openembedded/packages/keymaps/files/akita/keymap-2.4.map create mode 100644 openembedded/packages/keymaps/files/akita/keymap-2.6.map create mode 100755 openembedded/packages/keymaps/files/c7x0/keymap-2.6.map create mode 100644 openembedded/packages/keymaps/files/collie/keymap-2.4.map create mode 100644 openembedded/packages/keymaps/files/collie/keymap-2.6.map create mode 100755 openembedded/packages/keymaps/files/keymap create mode 100644 openembedded/packages/keymaps/files/poodle/keymap-2.6.map create mode 100644 openembedded/packages/keymaps/files/spitz/keymap-2.4.map create mode 100644 openembedded/packages/keymaps/files/spitz/keymap-2.6.map create mode 100644 openembedded/packages/keymaps/files/tosa/keymap-2.4.map create mode 100644 openembedded/packages/keymaps/files/tosa/keymap-2.6.map create mode 100644 openembedded/packages/keymaps/keymaps_1.0.bb create mode 100644 openembedded/packages/libxml/libxml2_2.6.22.bb delete mode 100644 openembedded/packages/linux/linux-omap1-2.6.12-rc2/nokia770/defconfig delete mode 100644 openembedded/packages/linux/linux-omap1-2.6.12-rc2/omap5912osk/defconfig delete mode 100644 openembedded/packages/linux/linux-omap1_2.6.12-rc2.bb create mode 100644 openembedded/packages/linux/linux-openzaurus-2.6.16/24-hostap_cs_id.diff create mode 100644 openembedded/packages/linux/linux-openzaurus-2.6.16/hrw-pcmcia-ids-r2.patch create mode 100644 openembedded/packages/linux/linux-openzaurus-2.6.16/rmk-mmc1.patch create mode 100644 openembedded/packages/linux/linux-openzaurus-2.6.16/rmk-mmc2.patch create mode 100644 openembedded/packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 create mode 100644 openembedded/packages/qemu/files/nodocs_cvs.patch delete mode 100644 openembedded/packages/qemu/files/qemu_nodocs_cvs.patch delete mode 100644 openembedded/packages/quilt/files/autoreconf.patch create mode 100644 openembedded/packages/quilt/files/non-gnu.patch delete mode 100644 openembedded/packages/quilt/files/wiggle.patch delete mode 100644 openembedded/packages/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch delete mode 100644 openembedded/packages/sysfsutils/sysfsutils_1.1.0.bb delete mode 100644 openembedded/packages/sysfsutils/sysfsutils_1.2.0.bb delete mode 100644 openembedded/packages/sysfsutils/sysfsutils_1.3.0.bb create mode 100644 openembedded/packages/sysfsutils/sysfsutils_2.0.0.bb delete mode 100644 openembedded/packages/tslib/tslib/poodle/ts.conf delete mode 100644 openembedded/packages/tslib/tslib/tosa/ts.conf create mode 100644 openembedded/packages/tslib/tslib/ts-2.6.conf create mode 100644 openembedded/packages/tslib/tslib/ts.conf-collie-2.4 delete mode 100644 openembedded/packages/tslib/tslib/ts.conf-corgi delete mode 100644 openembedded/packages/tslib/tslib/ts.conf-h2200 delete mode 100644 openembedded/packages/tslib/tslib/ts.conf-h3600 delete mode 100644 openembedded/packages/tslib/tslib/ts.conf-h6300 delete mode 100644 openembedded/packages/tslib/tslib/ts.conf-simpad create mode 100644 openembedded/packages/tslib/tslib/usec_fix.patch create mode 100644 openembedded/packages/udev/files/akita/mount.blacklist create mode 100644 openembedded/packages/udev/files/c7x0/mount.blacklist create mode 100644 openembedded/packages/udev/files/fix-alignment.patch create mode 100644 openembedded/packages/udev/files/mount.blacklist create mode 100644 openembedded/packages/udev/files/noasmlinkage.patch create mode 100644 openembedded/packages/udev/files/slugos/mount.blacklist create mode 100644 openembedded/packages/udev/files/spitz/mount.blacklist create mode 100644 openembedded/packages/udev/files/tosa/mount.blacklist create mode 100644 openembedded/packages/udev/files/udev_network_queue.sh create mode 100644 openembedded/packages/udev/files/udevsynthesize.patch create mode 100644 openembedded/packages/udev/files/udevsynthesize.sh delete mode 100644 openembedded/packages/udev/udev-071/flags.patch delete mode 100644 openembedded/packages/udev/udev-071/noasmlinkage.patch delete mode 100644 openembedded/packages/udev/udev-071/tty-symlinks.patch create mode 100644 openembedded/packages/udev/udev-084/local.rules delete mode 100644 openembedded/packages/udev/udev-084/noasmlinkage.patch delete mode 100644 openembedded/packages/udev/udev-084/udevsynthesize.patch delete mode 100644 openembedded/packages/udev/udev-084/udevsynthesize.sh delete mode 100644 openembedded/packages/udev/udev_071.bb diff --git a/openembedded/packages/cairo/cairo_1.0.4.bb b/openembedded/packages/cairo/cairo_1.0.4.bb index 001a33e33b..61aefa91f5 100644 --- a/openembedded/packages/cairo/cairo_1.0.4.bb +++ b/openembedded/packages/cairo/cairo_1.0.4.bb @@ -1,7 +1,6 @@ SECTION = "libs" PRIORITY = "optional" -MAINTAINER = "Phil Blundell " -DEPENDS = "x11 libpng fontconfig libxrender" +DEPENDS = "libx11 libpng fontconfig libxrender" DESCRIPTION = "Cairo graphics library" LICENSE = "MPL LGPL" @@ -10,5 +9,5 @@ SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz" inherit autotools pkgconfig do_stage () { - autotools_stage_all +autotools_stage_all } diff --git a/openembedded/packages/console-tools/console-tools-0.3.2/uclibc-fileno.patch b/openembedded/packages/console-tools/console-tools-0.3.2/uclibc-fileno.patch new file mode 100644 index 0000000000..c73d8a3d9e --- /dev/null +++ b/openembedded/packages/console-tools/console-tools-0.3.2/uclibc-fileno.patch @@ -0,0 +1,47 @@ +Fixing the locale issues isn't enough, console-tools also does a couple of +other pretty stupid things (like FILE *f; f->_fileno instead of fileno(f)), + +--- console-tools-0.3.2/lib/cfont/fontstruct.c.ark 2005-05-22 19:12:38.000000000 +0000 ++++ console-tools-0.3.2/lib/cfont/fontstruct.c 2005-05-22 19:13:23.000000000 +0000 +@@ -50,8 +50,7 @@ + * get filesize + */ + +- /* FIXME: should not use _fileno ! */ +- if (fstat(fontfile->_fileno, &stbuf) == -1) ++ if (fstat(fileno(fontfile), &stbuf) == -1) + goto rsf_return_error; + + if (S_ISREG(stbuf.st_mode)) +@@ -211,8 +210,7 @@ + * get filesize + */ + +- /* FIXME: should not use _fileno ! */ +- if (fstat(fontfile->_fileno, &stbuf) == -1) ++ if (fstat(fileno(fontfile), &stbuf) == -1) + goto rfg_return_error; + + if (S_ISREG(stbuf.st_mode)) +--- console-tools-0.3.2/lib/console/acm.c.ark 2005-05-22 19:17:15.000000000 +0000 ++++ console-tools-0.3.2/lib/console/acm.c 2005-05-22 19:17:23.000000000 +0000 +@@ -30,7 +30,7 @@ + lct_boolean parse_failed = False; + lct_boolean is_unicode; + +- if (fstat(fp->_fileno, &stbuf)) ++ if (fstat(fileno(fp), &stbuf)) + perror(_("Cannot stat ACM file")), exit(1); + + /* first try a wg15-charmap (glibc) file format */ +--- console-tools-0.3.2/include/lct/local.h.ark 2005-05-22 19:08:54.000000000 +0000 ++++ console-tools-0.3.2/include/lct/local.h 2005-05-22 19:09:12.000000000 +0000 +@@ -8,7 +8,7 @@ + #include + + +-#ifdef HAVE_LOCALE_H ++#if defined(HAVE_LOCALE_H) && defined(HAVE_LIBINTL_H) + # include + # define _(String) gettext (String) + # ifdef gettext_noop diff --git a/openembedded/packages/console-tools/console-tools_0.3.2.bb b/openembedded/packages/console-tools/console-tools_0.3.2.bb index f7455825e0..01c2e42a31 100644 --- a/openembedded/packages/console-tools/console-tools_0.3.2.bb +++ b/openembedded/packages/console-tools/console-tools_0.3.2.bb @@ -8,6 +8,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/lct/console-tools-${PV}.tar.gz \ file://configure.patch;patch=1 \ file://compile.patch;patch=1 \ file://kbdrate.patch;patch=1 \ + file://uclibc-fileno.patch;patch=1 \ file://config/*.m4" export SUBDIRS = "fontfiletools vttools kbdtools screenfonttools contrib \ diff --git a/openembedded/packages/e2fsprogs/e2fsprogs_1.38.bb b/openembedded/packages/e2fsprogs/e2fsprogs_1.38.bb index e13aac5951..c27cf4c3fa 100644 --- a/openembedded/packages/e2fsprogs/e2fsprogs_1.38.bb +++ b/openembedded/packages/e2fsprogs/e2fsprogs_1.38.bb @@ -2,7 +2,7 @@ DESCRIPTION = "EXT2 Filesystem Utilities" HOMEPAGE = "http://e2fsprogs.sourceforge.net" LICENSE = "GPL" SECTION = "base" -PR = "r5" +PR = "r6" SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz \ file://no-hardlinks.patch;patch=1" @@ -38,12 +38,13 @@ do_stage () { # blkid used to be part of e2fsprogs but is useful outside, add it # as an RDEPENDS so that anything relying on it being in e2fsprogs # still works -RDEPENDS_e2fsprogs = "e2fsprogs-blkid e2fsprogs-uuidgen" +RDEPENDS_e2fsprogs = "e2fsprogs-blkid e2fsprogs-uuidgen e2fsprogs-badblocks" -PACKAGES =+ "e2fsprogs-blkid e2fsprogs-uuidgen e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-tune2fs" +PACKAGES =+ "e2fsprogs-blkid e2fsprogs-uuidgen e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-tune2fs e2fsprogs-badblocks" FILES_e2fsprogs-blkid = "${base_sbindir}/blkid" FILES_e2fsprogs-uuidgen = "${bindir}/uuidgen" FILES_e2fsprogs-fsck = "${base_sbindir}/fsck" FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*" FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext*" FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label ${base_sbindir}/findfs" +FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks" \ No newline at end of file diff --git a/openembedded/packages/fakeroot/fakeroot-native_1.2.13.bb b/openembedded/packages/fakeroot/fakeroot-native_1.2.13.bb index 4df6eeb5c5..cc3dfd2231 100644 --- a/openembedded/packages/fakeroot/fakeroot-native_1.2.13.bb +++ b/openembedded/packages/fakeroot/fakeroot-native_1.2.13.bb @@ -6,7 +6,13 @@ inherit native SRC_URI += "file://fix-prefix.patch;patch=1" S = "${WORKDIR}/fakeroot-${PV}" -EXTRA_OECONF = "--program-prefix=" +EXTRA_OECONF = " --program-prefix=" + +# Compatability for the rare systems not using or having SYSV +python () { + if bb.data.getVar('HOST_NONSYSV', d, True) and bb.data.getVar('HOST_NONSYSV', d, True) != '0': + bb.data.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ', d) +} do_stage_append () { oe_libinstall -so libfakeroot ${STAGING_LIBDIR}/libfakeroot/ diff --git a/openembedded/packages/flex/files/flex-lvalue.diff b/openembedded/packages/flex/files/flex-lvalue.diff new file mode 100644 index 0000000000..56ae539a6c --- /dev/null +++ b/openembedded/packages/flex/files/flex-lvalue.diff @@ -0,0 +1,36 @@ +Patch from http://bugs.debian.org/cgi-bin/bugreport.cgi/flex-lvalue.diff?bug=194844;msg=10;att=1 + +according to posix 0,1,2 are already setup and this avoids +the issues with +| filter.c: In function 'filter_apply_chain': +| filter.c:161: error: invalid lvalue in assignment +| filter.c:163: error: invalid lvalue in assignment +| filter.c:184: error: invalid lvalue in assignment + + +diff -ur flex-2.5.31.ORIG/filter.c flex-2.5.31/filter.c +--- flex-2.5.31.ORIG/filter.c 2003-03-25 16:39:08.000000000 +0000 ++++ flex-2.5.31/filter.c 2003-05-27 17:00:26.000000000 +0000 +@@ -157,11 +157,8 @@ + if (chain->filter_func) { + int r; + +- /* setup streams again */ +- if ((stdin = fdopen (0, "r")) == NULL) +- flexfatal (_("fdopen(0) failed")); +- if ((stdout = fdopen (1, "w")) == NULL) +- flexfatal (_("fdopen(1) failed")); ++ /* POSIX says we inherit fd[0-2], so we don't need ++ to do anything to them here */ + + if ((r = chain->filter_func (chain)) == -1) + flexfatal (_("filter_func failed")); +@@ -181,8 +178,6 @@ + if (dup2 (pipes[1], 1) == -1) + flexfatal (_("dup2(pipes[1],1)")); + close (pipes[1]); +- if ((stdout = fdopen (1, "w")) == NULL) +- flexfatal (_("fdopen(1) failed")); + + return true; + } diff --git a/openembedded/packages/flex/flex.inc b/openembedded/packages/flex/flex.inc index 6e605ac9be..d6affad226 100644 --- a/openembedded/packages/flex/flex.inc +++ b/openembedded/packages/flex/flex.inc @@ -3,6 +3,7 @@ SECTION = "devel" LICENSE = "BSD" SRC_URI = "${SOURCEFORGE_MIRROR}/lex/flex-2.5.31.tar.bz2 \ + file://flex-lvalue.diff;patch=1 \ file://fix-gen.patch;patch=1" S = "${WORKDIR}/flex-${PV}" diff --git a/openembedded/packages/freetype/files/no-hardcode.patch b/openembedded/packages/freetype/files/no-hardcode.patch new file mode 100644 index 0000000000..44ae450a14 --- /dev/null +++ b/openembedded/packages/freetype/files/no-hardcode.patch @@ -0,0 +1,11 @@ +--- freetype-2.1.10/builds/unix/freetype-config.in.old 2006-05-01 12:39:20.000000000 +0100 ++++ freetype-2.1.10/builds/unix/freetype-config.in 2006-05-01 12:39:34.000000000 +0100 +@@ -16,7 +16,7 @@ + libdir=@libdir@ + enable_shared=@enable_shared@ + wl=@wl@ +-hardcode_libdir_flag_spec='@hardcode_libdir_flag_spec@' ++hardcode_libdir_flag_spec='' + + usage() + { diff --git a/openembedded/packages/freetype/freetype_2.1.10.bb b/openembedded/packages/freetype/freetype_2.1.10.bb index 772b316cc8..35c0d0cbd6 100644 --- a/openembedded/packages/freetype/freetype_2.1.10.bb +++ b/openembedded/packages/freetype/freetype_2.1.10.bb @@ -2,10 +2,11 @@ DESCRIPTION = "Freetype font rendering library" HOMEPAGE = "http://www.freetype.org" SECTION = "libs" LICENSE = "freetype" -PR = "r0" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \ - file://configure.patch;patch=1" + file://configure.patch;patch=1 \ + file://no-hardcode.patch;patch=1" S = "${WORKDIR}/freetype-${PV}" inherit autotools pkgconfig binconfig diff --git a/openembedded/packages/gcc/gcc-4.0.2/100-uclibc-conf.patch b/openembedded/packages/gcc/gcc-4.0.2/100-uclibc-conf.patch new file mode 100644 index 0000000000..35445522f8 --- /dev/null +++ b/openembedded/packages/gcc/gcc-4.0.2/100-uclibc-conf.patch @@ -0,0 +1,556 @@ +From: +http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/*checkout*/trunk/buildroot/toolchain/gcc/4.0.2/100-uclibc-conf.patch?rev=13898 + +--- gcc-4.0.2/gcc/config/t-linux-uclibc ++++ gcc-4.0.2/gcc/config/t-linux-uclibc +@@ -0,0 +1,5 @@ ++# Remove glibc specific files added in t-linux ++SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES)) ++ ++# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc ++LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH)) +--- gcc-4.0.2/gcc/config.gcc ++++ gcc-4.0.2/gcc/config.gcc +@@ -1778,7 +1778,7 @@ + ;; + sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ + sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ +- sh-*-linux* | sh[346lbe]*-*-linux* | \ ++ sh*-*-linux* | sh[346lbe]*-*-linux* | \ + sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ + sh64-*-netbsd* | sh64l*-*-netbsd*) + tmake_file="${tmake_file} sh/t-sh sh/t-elf" +@@ -2234,10 +2234,16 @@ + *) + echo "*** Configuration ${target} not supported" 1>&2 + exit 1 + ;; + esac ++ ++# Rather than hook into each target, just do it after all the linux ++# targets have been processed ++case ${target} in ++*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc" ++esac + + case ${target} in + i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) + tmake_file="${tmake_file} i386/t-gmm_malloc" + ;; +--- gcc-4.0.2/gcc/config/alpha/linux-elf.h ++++ gcc-4.0.2/gcc/config/alpha/linux-elf.h +@@ -27,7 +27,11 @@ + #define SUBTARGET_EXTRA_SPECS \ + { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else + #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#endif + + #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ +--- gcc-4.0.2/gcc/config/arm/linux-elf.h ++++ gcc-4.0.2/gcc/config/arm/linux-elf.h +@@ -81,14 +81,19 @@ + #define ENDFILE_SPEC \ + "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "%{h*} %{version:-v} \ + %{b} %{Wl,*:%*} \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \ + -X \ + %{mbig-endian:-EB}" \ + SUBTARGET_EXTRA_LINK_SPEC +--- gcc-4.0.2/gcc/config/cris/linux.h ++++ gcc-4.0.2/gcc/config/cris/linux.h +@@ -79,6 +79,25 @@ + #undef CRIS_DEFAULT_CPU_VERSION + #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG + ++#ifdef USE_UCLIBC ++ ++#undef CRIS_SUBTARGET_VERSION ++#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" ++ ++#undef CRIS_LINK_SUBTARGET_SPEC ++#define CRIS_LINK_SUBTARGET_SPEC \ ++ "-mcrislinux\ ++ -rpath-link include/asm/../..%s\ ++ %{shared} %{static}\ ++ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ ++ %{!r:%{O2|O3: --gc-sections}}" ++ ++#else /* USE_UCLIBC */ ++ + #undef CRIS_SUBTARGET_VERSION + #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" + +@@ -93,6 +112,8 @@ + %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ + %{!r:%{O2|O3: --gc-sections}}" + ++#endif /* USE_UCLIBC */ ++ + + /* Node: Run-time Target */ + +--- gcc-4.0.2/gcc/config/i386/linux.h ++++ gcc-4.0.2/gcc/config/i386/linux.h +@@ -107,6 +107,11 @@ + #define LINK_EMULATION "elf_i386" + #define DYNAMIC_LINKER "/lib/ld-linux.so.2" + ++#ifdef USE_UCLIBC ++#undef DYNAMIC_LINKER ++#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#endif ++ + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + { "link_emulation", LINK_EMULATION },\ +--- gcc-4.0.2/gcc/config/i386/linux64.h ++++ gcc-4.0.2/gcc/config/i386/linux64.h +@@ -54,14 +54,21 @@ + When the -shared link option is used a final link is not being + done. */ + ++#ifdef USE_UCLIBC ++#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" ++#else ++#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ +- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ ++ %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \ ++ %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \ + %{static:-static}}" + + #define MULTILIB_DEFAULTS { "m64" } +--- gcc-4.0.2/gcc/config/ia64/linux.h ++++ gcc-4.0.2/gcc/config/ia64/linux.h +@@ -37,13 +37,18 @@ + /* Define this for shared library support because it isn't in the main + linux.h file. */ + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "\ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}}" + + +--- gcc-4.0.2/gcc/config/m68k/linux.h ++++ gcc-4.0.2/gcc/config/m68k/linux.h +@@ -127,12 +127,17 @@ + + /* If ELF is the default format, we should not use /lib/elf. */ + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "-m m68kelf %{shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static}}" + + /* For compatibility with linux/a.out */ +--- gcc-4.0.2/gcc/config/mips/linux.h ++++ gcc-4.0.2/gcc/config/mips/linux.h +@@ -108,14 +108,19 @@ + + /* Borrowed from sparc/linux.h */ + #undef LINK_SPEC ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" ++#endif + #define LINK_SPEC \ + "%(endian_spec) \ + %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}}}" + + #undef SUBTARGET_ASM_SPEC +--- gcc-4.0.2/gcc/config/pa/pa-linux.h ++++ gcc-4.0.2/gcc/config/pa/pa-linux.h +@@ -82,13 +82,18 @@ + /* Define this for shared library support because it isn't in the main + linux.h file. */ + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "\ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}}" + + /* glibc's profiling functions don't need gcc to allocate counters. */ +--- gcc-4.0.2/gcc/config/rs6000/linux.h ++++ gcc-4.0.2/gcc/config/rs6000/linux.h +@@ -69,7 +69,11 @@ + #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" + + #undef LINK_OS_DEFAULT_SPEC ++#ifdef USE_UCLIBC ++#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" ++#else + #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" ++#endif + + #define LINK_GCC_C_SEQUENCE_SPEC \ + "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" +--- gcc-4.0.2/gcc/config/rs6000/sysv4.h ++++ gcc-4.0.2/gcc/config/rs6000/sysv4.h +@@ -949,6 +949,7 @@ + mcall-linux : %(link_os_linux) ; \ + mcall-gnu : %(link_os_gnu) ; \ + mcall-netbsd : %(link_os_netbsd) ; \ ++ mcall-linux-uclibc : %(link_os_linux_uclibc); \ + mcall-openbsd: %(link_os_openbsd) ; \ + : %(link_os_default) }" + +@@ -1127,6 +1128,10 @@ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" + ++#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" ++ + #if defined(HAVE_LD_EH_FRAME_HDR) + # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " + #endif +@@ -1293,6 +1298,7 @@ + { "link_os_sim", LINK_OS_SIM_SPEC }, \ + { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ + { "link_os_linux", LINK_OS_LINUX_SPEC }, \ ++ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ + { "link_os_gnu", LINK_OS_GNU_SPEC }, \ + { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ + { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ +--- gcc-4.0.2/gcc/config/s390/linux.h ++++ gcc-4.0.2/gcc/config/s390/linux.h +@@ -77,6 +77,13 @@ + #define MULTILIB_DEFAULTS { "m31" } + #endif + ++#ifdef USE_UCLIBC ++#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" ++#else ++#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1" ++#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1" ++#endif + #undef LINK_SPEC + #define LINK_SPEC \ + "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ +@@ -86,8 +93,8 @@ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker: \ +- %{m31:-dynamic-linker /lib/ld.so.1} \ +- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" ++ %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \ ++ %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}" + + + #define TARGET_ASM_FILE_END file_end_indicate_exec_stack +--- gcc-4.0.2/gcc/config/sh/linux.h ++++ gcc-4.0.2/gcc/config/sh/linux.h +@@ -67,11 +67,16 @@ + #undef SUBTARGET_LINK_EMUL_SUFFIX + #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" + #undef SUBTARGET_LINK_SPEC ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#endif + #define SUBTARGET_LINK_SPEC \ + "%{shared:-shared} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}" + + #undef LIB_SPEC +--- gcc-4.0.2/gcc/config/sparc/linux.h ++++ gcc-4.0.2/gcc/config/sparc/linux.h +@@ -130,14 +130,19 @@ + + /* If ELF is the default format, we should not use /lib/elf. */ + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#endif + #undef LINK_SPEC + #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}}}" + + /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). +--- gcc-4.0.2/gcc/config/sparc/linux64.h ++++ gcc-4.0.2/gcc/config/sparc/linux64.h +@@ -167,12 +166,17 @@ + { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ + { "link_arch", LINK_ARCH_SPEC }, + ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else ++#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#endif + #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ + %{static:-static}}} \ + " + +--- gcc-4.0.2/libtool.m4 ++++ gcc-4.0.2/libtool.m4 +@@ -682,6 +682,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] +--- gcc-4.0.2/ltconfig ++++ gcc-4.0.2/ltconfig +@@ -603,6 +603,7 @@ + + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in ++linux-uclibc*) ;; + linux-gnu*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac +@@ -1274,6 +1275,23 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + need_lib_prefix=no + need_version=no +--- gcc-4.0.2/libffi/configure ++++ gcc-4.0.2/libffi/configure +@@ -3457,6 +3457,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/libgfortran/configure ++++ gcc-4.0.2/libgfortran/configure +@@ -3681,6 +3681,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/libjava/configure ++++ gcc-4.0.2/libjava/configure +@@ -4351,6 +4351,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/libmudflap/configure ++++ gcc-4.0.2/libmudflap/configure +@@ -5380,6 +5380,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/libobjc/configure ++++ gcc-4.0.2/libobjc/configure +@@ -3283,6 +3283,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/boehm-gc/configure ++++ gcc-4.0.2/boehm-gc/configure +@@ -4320,6 +4320,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gcc-4.0.2/configure ++++ gcc-4.0.2/configure +@@ -1141,7 +1141,7 @@ + ;; + "") + case "${target}" in +- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) ++ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) + # Enable libmudflap by default in GNU and friends. + ;; + *-*-freebsd*) +--- gcc-4.0.2/configure.in ++++ gcc-4.0.2/configure.in +@@ -350,7 +350,7 @@ + ;; + "") + case "${target}" in +- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) ++ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) + # Enable libmudflap by default in GNU and friends. + ;; + *-*-freebsd*) +--- gcc-4.0.2/contrib/regression/objs-gcc.sh ++++ gcc-4.0.2/contrib/regression/objs-gcc.sh +@@ -105,6 +105,10 @@ + then + make all-gdb all-dejagnu all-ld || exit 1 + make install-gdb install-dejagnu install-ld || exit 1 ++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] ++ then ++ make all-gdb all-dejagnu all-ld || exit 1 ++ make install-gdb install-dejagnu install-ld || exit 1 + elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then + make bootstrap || exit 1 + make install || exit 1 +--- gcc-4.0.2/zlib/configure ++++ gcc-4.0.2/zlib/configure +@@ -3426,6 +3426,11 @@ + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff --git a/openembedded/packages/gcc/gcc-4.0.2/200-uclibc-locale.patch b/openembedded/packages/gcc/gcc-4.0.2/200-uclibc-locale.patch new file mode 100644 index 0000000000..8be03a5446 --- /dev/null +++ b/openembedded/packages/gcc/gcc-4.0.2/200-uclibc-locale.patch @@ -0,0 +1,3240 @@ +From: +http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/*checkout*/trunk/buildroot/toolchain/gcc/4.0.2/200-uclibc-locale.patch?rev=11715 + +diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4 +--- gcc-4.0.0-100/libstdc++-v3/acinclude.m4 2005-04-30 13:06:53.000000000 -0500 ++++ gcc-4.0.0/libstdc++-v3/acinclude.m4 2005-04-28 20:19:01.000000000 -0500 +@@ -1104,7 +1104,7 @@ + AC_MSG_CHECKING([for C locale to use]) + GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@], + [use MODEL for target locale package], +- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) ++ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto]) + + # If they didn't use this option switch, or if they specified --enable + # with no specific model, we'll have to look for one. If they +@@ -1120,6 +1120,9 @@ + # Default to "generic". + if test $enable_clocale_flag = auto; then + case ${target_os} in ++ *-uclibc*) ++ enable_clocale_flag=uclibc ++ ;; + linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) + AC_EGREP_CPP([_GLIBCXX_ok], [ + #include +@@ -1263,6 +1266,40 @@ + CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h + ;; ++ uclibc) ++ AC_MSG_RESULT(uclibc) ++ ++ # Declare intention to use gettext, and add support for specific ++ # languages. ++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ++ ALL_LINGUAS="de fr" ++ ++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. ++ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) ++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then ++ USE_NLS=yes ++ fi ++ # Export the build objects. ++ for ling in $ALL_LINGUAS; do \ ++ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ ++ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ ++ done ++ AC_SUBST(glibcxx_MOFILES) ++ AC_SUBST(glibcxx_POFILES) ++ ++ CLOCALE_H=config/locale/uclibc/c_locale.h ++ CLOCALE_CC=config/locale/uclibc/c_locale.cc ++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc ++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc ++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc ++ CMESSAGES_H=config/locale/uclibc/messages_members.h ++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc ++ CMONEY_CC=config/locale/uclibc/monetary_members.cc ++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc ++ CTIME_H=config/locale/uclibc/time_members.h ++ CTIME_CC=config/locale/uclibc/time_members.cc ++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h ++ ;; + esac + + # This is where the testsuite looks for locale catalogs, using the +diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h +--- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2005-04-28 01:13:15.000000000 -0500 +@@ -0,0 +1,59 @@ ++// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- ++ ++// Copyright (C) 2002, 2004 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// Written by Jakub Jelinek ++ ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning clean this up ++#endif ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ ++extern "C" __typeof(iswctype_l) __iswctype_l; ++extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; ++extern "C" __typeof(strcoll_l) __strcoll_l; ++extern "C" __typeof(strftime_l) __strftime_l; ++extern "C" __typeof(strtod_l) __strtod_l; ++extern "C" __typeof(strtof_l) __strtof_l; ++extern "C" __typeof(strtold_l) __strtold_l; ++extern "C" __typeof(strxfrm_l) __strxfrm_l; ++extern "C" __typeof(towlower_l) __towlower_l; ++extern "C" __typeof(towupper_l) __towupper_l; ++extern "C" __typeof(wcscoll_l) __wcscoll_l; ++extern "C" __typeof(wcsftime_l) __wcsftime_l; ++extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; ++extern "C" __typeof(wctype_l) __wctype_l; ++extern "C" __typeof(newlocale) __newlocale; ++extern "C" __typeof(freelocale) __freelocale; ++extern "C" __typeof(duplocale) __duplocale; ++extern "C" __typeof(uselocale) __uselocale; ++ ++#endif // GLIBC 2.3 and later +diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc +--- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc 2005-04-28 01:13:15.000000000 -0500 +@@ -0,0 +1,160 @@ ++// Wrapper for underlying C-language localization -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.8 Standard locale categories. ++// ++ ++// Written by Benjamin Kosnik ++ ++#include // For errno ++#include ++#include ++#include ++#include ++ ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) ++#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) ++#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) ++#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) ++#define __strtof_l(S, E, L) strtof((S), (E)) ++#define __strtod_l(S, E, L) strtod((S), (E)) ++#define __strtold_l(S, E, L) strtold((S), (E)) ++#warning should dummy __newlocale check for C|POSIX ? ++#define __newlocale(a, b, c) NULL ++#define __freelocale(a) ((void)0) ++#define __duplocale(a) __c_locale() ++#endif ++ ++namespace std ++{ ++ template<> ++ void ++ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ float __f = __strtof_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && errno != ERANGE) ++ __v = __f; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ double __d = __strtod_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && errno != ERANGE) ++ __v = __d; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ long double __ld = __strtold_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && errno != ERANGE) ++ __v = __ld; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ void ++ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, ++ __c_locale __old) ++ { ++ __cloc = __newlocale(1 << LC_ALL, __s, __old); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ if (!__cloc) ++ { ++ // This named locale is not supported by the underlying OS. ++ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " ++ "name not valid")); ++ } ++#endif ++ } ++ ++ void ++ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) ++ { ++ if (_S_get_c_locale() != __cloc) ++ __freelocale(__cloc); ++ } ++ ++ __c_locale ++ locale::facet::_S_clone_c_locale(__c_locale& __cloc) ++ { return __duplocale(__cloc); } ++} // namespace std ++ ++namespace __gnu_cxx ++{ ++ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = ++ { ++ "LC_CTYPE", ++ "LC_NUMERIC", ++ "LC_TIME", ++ "LC_COLLATE", ++ "LC_MONETARY", ++ "LC_MESSAGES", ++#if _GLIBCXX_NUM_CATEGORIES != 0 ++ "LC_PAPER", ++ "LC_NAME", ++ "LC_ADDRESS", ++ "LC_TELEPHONE", ++ "LC_MEASUREMENT", ++ "LC_IDENTIFICATION" ++#endif ++ }; ++} ++ ++namespace std ++{ ++ const char* const* const locale::_S_categories = __gnu_cxx::category_names; ++} // namespace std +diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h +--- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h 2005-04-28 01:13:15.000000000 -0500 +@@ -0,0 +1,115 @@ ++// Wrapper for underlying C-language localization -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.8 Standard locale categories. ++// ++ ++// Written by Benjamin Kosnik ++ ++#ifndef _C_LOCALE_H ++#define _C_LOCALE_H 1 ++ ++#pragma GCC system_header ++ ++#include // get std::strlen ++#include // get std::snprintf or std::sprintf ++#include ++#include // For codecvt ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix this ++#endif ++#ifdef __UCLIBC_HAS_LOCALE__ ++#include // For codecvt using iconv, iconv_t ++#endif ++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ ++#include // For messages ++#endif ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning what is _GLIBCXX_C_LOCALE_GNU for ++#endif ++#define _GLIBCXX_C_LOCALE_GNU 1 ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix categories ++#endif ++// #define _GLIBCXX_NUM_CATEGORIES 6 ++#define _GLIBCXX_NUM_CATEGORIES 0 ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++namespace __gnu_cxx ++{ ++ extern "C" __typeof(uselocale) __uselocale; ++} ++#endif ++ ++namespace std ++{ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ typedef __locale_t __c_locale; ++#else ++ typedef int* __c_locale; ++#endif ++ ++ // Convert numeric value of type _Tv to string and return length of ++ // string. If snprintf is available use it, otherwise fall back to ++ // the unsafe sprintf which, in general, can be dangerous and should ++ // be avoided. ++ template ++ int ++ __convert_from_v(char* __out, const int __size, const char* __fmt, ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ _Tv __v, const __c_locale& __cloc, int __prec) ++ { ++ __c_locale __old = __gnu_cxx::__uselocale(__cloc); ++#else ++ _Tv __v, const __c_locale&, int __prec) ++ { ++# ifdef __UCLIBC_HAS_LOCALE__ ++ char* __old = std::setlocale(LC_ALL, NULL); ++ char* __sav = new char[std::strlen(__old) + 1]; ++ std::strcpy(__sav, __old); ++ std::setlocale(LC_ALL, "C"); ++# endif ++#endif ++ ++ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __gnu_cxx::__uselocale(__old); ++#elif defined __UCLIBC_HAS_LOCALE__ ++ std::setlocale(LC_ALL, __sav); ++ delete [] __sav; ++#endif ++ return __ret; ++ } ++} ++ ++#endif +diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc +--- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2005-04-28 01:13:15.000000000 -0500 +@@ -0,0 +1,306 @@ ++// std::codecvt implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.1.5 - Template class codecvt ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++ ++namespace std ++{ ++ // Specializations. ++#ifdef _GLIBCXX_USE_WCHAR_T ++ codecvt_base::result ++ codecvt:: ++ do_out(state_type& __state, const intern_type* __from, ++ const intern_type* __from_end, const intern_type*& __from_next, ++ extern_type* __to, extern_type* __to_end, ++ extern_type*& __to_next) const ++ { ++ result __ret = ok; ++ state_type __tmp_state(__state); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_codecvt); ++#endif ++ ++ // wcsnrtombs is *very* fast but stops if encounters NUL characters: ++ // in case we fall back to wcrtomb and then continue, in a loop. ++ // NB: wcsnrtombs is a GNU extension ++ for (__from_next = __from, __to_next = __to; ++ __from_next < __from_end && __to_next < __to_end ++ && __ret == ok;) ++ { ++ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', ++ __from_end - __from_next); ++ if (!__from_chunk_end) ++ __from_chunk_end = __from_end; ++ ++ __from = __from_next; ++ const size_t __conv = wcsnrtombs(__to_next, &__from_next, ++ __from_chunk_end - __from_next, ++ __to_end - __to_next, &__state); ++ if (__conv == static_cast(-1)) ++ { ++ // In case of error, in order to stop at the exact place we ++ // have to start again from the beginning with a series of ++ // wcrtomb. ++ for (; __from < __from_next; ++__from) ++ __to_next += wcrtomb(__to_next, *__from, &__tmp_state); ++ __state = __tmp_state; ++ __ret = error; ++ } ++ else if (__from_next && __from_next < __from_chunk_end) ++ { ++ __to_next += __conv; ++ __ret = partial; ++ } ++ else ++ { ++ __from_next = __from_chunk_end; ++ __to_next += __conv; ++ } ++ ++ if (__from_next < __from_end && __ret == ok) ++ { ++ extern_type __buf[MB_LEN_MAX]; ++ __tmp_state = __state; ++ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state); ++ if (__conv > static_cast(__to_end - __to_next)) ++ __ret = partial; ++ else ++ { ++ memcpy(__to_next, __buf, __conv); ++ __state = __tmp_state; ++ __to_next += __conv; ++ ++__from_next; ++ } ++ } ++ } ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ ++ return __ret; ++ } ++ ++ codecvt_base::result ++ codecvt:: ++ do_in(state_type& __state, const extern_type* __from, ++ const extern_type* __from_end, const extern_type*& __from_next, ++ intern_type* __to, intern_type* __to_end, ++ intern_type*& __to_next) const ++ { ++ result __ret = ok; ++ state_type __tmp_state(__state); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_codecvt); ++#endif ++ ++ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: ++ // in case we store a L'\0' and then continue, in a loop. ++ // NB: mbsnrtowcs is a GNU extension ++ for (__from_next = __from, __to_next = __to; ++ __from_next < __from_end && __to_next < __to_end ++ && __ret == ok;) ++ { ++ const extern_type* __from_chunk_end; ++ __from_chunk_end = static_cast(memchr(__from_next, '\0', ++ __from_end ++ - __from_next)); ++ if (!__from_chunk_end) ++ __from_chunk_end = __from_end; ++ ++ __from = __from_next; ++ size_t __conv = mbsnrtowcs(__to_next, &__from_next, ++ __from_chunk_end - __from_next, ++ __to_end - __to_next, &__state); ++ if (__conv == static_cast(-1)) ++ { ++ // In case of error, in order to stop at the exact place we ++ // have to start again from the beginning with a series of ++ // mbrtowc. ++ for (;; ++__to_next, __from += __conv) ++ { ++ __conv = mbrtowc(__to_next, __from, __from_end - __from, ++ &__tmp_state); ++ if (__conv == static_cast(-1) ++ || __conv == static_cast(-2)) ++ break; ++ } ++ __from_next = __from; ++ __state = __tmp_state; ++ __ret = error; ++ } ++ else if (__from_next && __from_next < __from_chunk_end) ++ { ++ // It is unclear what to return in this case (see DR 382). ++ __to_next += __conv; ++ __ret = partial; ++ } ++ else ++ { ++ __from_next = __from_chunk_end; ++ __to_next += __conv; ++ } ++ ++ if (__