summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/billiardz/files/.mtn2git_empty (renamed from packages/clamav/clamav-0.88.7/.mtn2git_empty)0
-rw-r--r--packages/billiardz/files/gcc4.patch45
-rw-r--r--packages/binutils/binutils_2.17.bb5
-rw-r--r--packages/clamav/clamav-0.88.7/clamd.conf25
-rw-r--r--packages/clamav/clamav-0.88.7/cross-compile-fix.patch74
-rw-r--r--packages/clamav/clamav-0.88.7/freshclam.conf19
-rw-r--r--packages/clamav/clamav-0.88.7/libtool-fix.patch23
-rw-r--r--packages/clamav/clamav.inc8
-rw-r--r--packages/clamav/clamav_0.88.7.bb5
-rw-r--r--packages/clamav/clamav_0.90.2.bb16
-rw-r--r--packages/clamav/clamav_0.90.3.bb3
-rw-r--r--packages/clamav/files/clamd.conf (renamed from packages/clamav/clamav-0.90.2/clamd.conf)0
-rw-r--r--packages/clamav/files/cross-compile-fix.patch (renamed from packages/clamav/clamav-0.90.2/cross-compile-fix.patch)0
-rw-r--r--packages/clamav/files/freshclam.conf (renamed from packages/clamav/clamav-0.90.2/freshclam.conf)0
-rw-r--r--packages/evince/evince/no-help-dir.patch12
-rw-r--r--packages/evince/evince_0.9.0.bb5
-rw-r--r--packages/gaim/pidgin.inc17
-rw-r--r--packages/gaim/pidgin_2.0.0.bb2
-rw-r--r--packages/gcc/gcc-4.1.2/cache-amnesia.patch13
-rw-r--r--packages/gcc/gcc-4.2.0/.mtn2git_empty (renamed from packages/clamav/clamav-0.90.2/.mtn2git_empty)0
-rw-r--r--packages/gcc/gcc-4.2.0/100-uclibc-conf.patch200
-rw-r--r--packages/gcc/gcc-4.2.0/110-arm-eabi.patch27
-rw-r--r--packages/gcc/gcc-4.2.0/200-uclibc-locale.patch2790
-rw-r--r--packages/gcc/gcc-4.2.0/300-libstdc++-pic.patch46
-rw-r--r--packages/gcc/gcc-4.2.0/301-missing-execinfo_h.patch11
-rw-r--r--packages/gcc/gcc-4.2.0/302-c99-snprintf.patch11
-rw-r--r--packages/gcc/gcc-4.2.0/303-c99-complex-ugly-hack.patch12
-rw-r--r--packages/gcc/gcc-4.2.0/304-index_macro.patch24
-rw-r--r--packages/gcc/gcc-4.2.0/602-sdk-libstdc++-includes.patch20
-rw-r--r--packages/gcc/gcc-4.2.0/740-sh-pr24836.patch25
-rw-r--r--packages/gcc/gcc-4.2.0/800-arm-bigendian.patch67
-rw-r--r--packages/gcc/gcc-4.2.0/801-arm-bigendian-eabi.patch14
-rw-r--r--packages/gcc/gcc-4.2.0/README4
-rw-r--r--packages/gcc/gcc-4.2.0/arm-nolibfloat.patch24
-rw-r--r--packages/gcc/gcc-4.2.0/arm-softfloat.patch16
-rw-r--r--packages/gcc/gcc-4.2.0/arm-thumb-cache.patch29
-rw-r--r--packages/gcc/gcc-4.2.0/arm-thumb.patch64
-rw-r--r--packages/gcc/gcc-4.2.0/cache-amnesia.patch13
-rw-r--r--packages/gcc/gcc-4.2.0/fix-ICE-in-arm_unwind_emit_set.diff18
-rw-r--r--packages/gcc/gcc-4.2.0/gcc41-configure.in.patch22
-rw-r--r--packages/gcc/gcc-4.2.0/ldflags.patch22
-rw-r--r--packages/gcc/gcc-4.2.0/sdk-libstdc++-includes.patch22
-rw-r--r--packages/gcc/gcc-4.2.0/sh3-installfix-fixheaders.patch11
-rw-r--r--packages/gcc/gcc-4.2.0/unbreak-armv4t.patch12
-rw-r--r--packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch31
-rw-r--r--packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch12
-rw-r--r--packages/gcc/gcc-cross-initial_4.1.2.bb30
-rw-r--r--packages/gcc/gcc-cross_4.2.0.bb20
-rw-r--r--packages/gcc/gcc_4.1.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.0.bb52
-rw-r--r--packages/glibc/glibc-initial_2.6.bb46
-rw-r--r--packages/glibc/glibc-intermediate_2.6.bb18
-rw-r--r--packages/glibc/glibc-package.bbclass14
-rw-r--r--packages/glibc/glibc_2.6.bb204
-rw-r--r--packages/icu/icu_3.6.bb2
-rw-r--r--packages/keylaunch/files/akita/keylaunchrc26
-rw-r--r--packages/keylaunch/files/spitz/keylaunchrc22
-rw-r--r--packages/keylaunch/keylaunch_2.0.10.bb9
-rw-r--r--packages/lftp/lftp_3.5.1.bb4
-rw-r--r--packages/libhangul/.mtn2git_empty0
-rw-r--r--packages/libhangul/libhangul_0.0.4.bb14
-rw-r--r--packages/linux/linux-h6300-omap1_2.6.12-rc5.bb2
-rw-r--r--packages/linux/linux-h6300-omap1_2.6.14.3.bb2
-rw-r--r--packages/linux/linux-h6300-omap1_2.6.16.16.bb2
-rw-r--r--packages/linux/linux-mtx-1_2.4.27.bb1
-rw-r--r--packages/linux/linux-mtx-1u_2.4.27.bb2
-rw-r--r--packages/linux/linux-mtx-2_2.4.27.bb1
-rw-r--r--packages/linux/linux-mtx-3_2.6.15.bb1
-rw-r--r--packages/linux/linux-tornado-omap2_2.6.16.16.bb2
-rw-r--r--packages/mplayer/mplayer_0.0+1.0rc1.bb17
-rw-r--r--packages/nabi/.mtn2git_empty0
-rw-r--r--packages/nabi/nabi_0.17.bb9
-rw-r--r--packages/openmoko-base/files/session12
-rw-r--r--packages/openmoko-base/openmoko-session_svn.bb4
-rw-r--r--packages/opie-multikey/files/ru.keymap255
-rw-r--r--packages/opie-multikey/opie-multikey.inc1
-rw-r--r--packages/opie-reader/files/.mtn2git_empty0
-rw-r--r--packages/opie-reader/files/opie-reader-unicode-copy.patch11
-rw-r--r--packages/opie-reader/opie-reader_cvs.bb4
-rw-r--r--packages/perl/libalgorithm-diff-perl_1.1902.bb2
-rw-r--r--packages/perl/libarchive-tar-perl_1.30.bb2
-rw-r--r--packages/perl/libcache-cache-perl_1.05.bb2
-rw-r--r--packages/perl/libclass-container-perl_0.12.bb2
-rw-r--r--packages/perl/libclass-data-inheritable-perl_0.06.bb2
-rw-r--r--packages/perl/libcompress-zlib-perl_1.42.bb2
-rw-r--r--packages/perl/libdata-optlist-perl_0.101.bb2
-rw-r--r--packages/perl/libdevel-stacktrace-perl_1.13.bb2
-rw-r--r--packages/perl/libdigest-sha1-perl_2.11.bb2
-rw-r--r--packages/perl/liberror-perl_0.17004.bb2
-rw-r--r--packages/perl/libexception-class-perl_1.23.bb2
-rw-r--r--packages/perl/libextutils-cbuilder-perl_0.18.bb2
-rw-r--r--packages/perl/libextutils-depends-perl_0.205.bb2
-rw-r--r--packages/perl/libextutils-parsexs-perl_2.16.bb2
-rw-r--r--packages/perl/libextutils-pkgconfig-perl_1.07.bb2
-rw-r--r--packages/perl/libhtml-mason-perl_1.35.bb2
-rw-r--r--packages/perl/libintl-perl_1.16.bb2
-rw-r--r--packages/perl/libio-zlib-perl_1.04.bb2
-rw-r--r--packages/perl/libipc-sharelite-perl_0.09.bb2
-rw-r--r--packages/perl/liblocale-gettext-perl_1.05.bb2
-rw-r--r--packages/perl/liblog-dispatch-perl_2.13.bb2
-rw-r--r--packages/perl/liblog-log4perl-perl_1.06.bb2
-rw-r--r--packages/perl/libmail-sendmail-perl_0.79.bb2
-rw-r--r--packages/perl/libmath-bigint-gmp-perl_1.18.bb2
-rw-r--r--packages/perl/libmodule-build-perl_0.2805.bb2
-rw-r--r--packages/perl/libnet-ip-perl_1.25.bb2
-rw-r--r--packages/perl/libnetserver-generic-perl_1.03.bb2
-rw-r--r--packages/perl/libparams-util-perl_0.20.bb2
-rw-r--r--packages/perl/libparams-validate-perl_0.86.bb2
-rw-r--r--packages/perl/libperl6-junction-perl_1.10.bb2
-rw-r--r--packages/perl/libsub-exporter-perl_0.970.bb2
-rw-r--r--packages/perl/libsub-install-perl_0.922.bb2
-rw-r--r--packages/perl/libsub-uplevel-perl_0.13.bb2
-rw-r--r--packages/perl/libtest-builder-tester-perl_1.01.bb2
-rw-r--r--packages/perl/libtest-differences-perl_0.47.bb2
-rw-r--r--packages/perl/libtest-exception-perl_0.22.bb2
-rw-r--r--packages/perl/libtest-mockmodule-perl_0.05.bb2
-rw-r--r--packages/perl/libtest-output-perl_0.10.bb2
-rw-r--r--packages/perl/libtext-diff-perl_0.35.bb2
-rw-r--r--packages/perl/liburi-perl_1.35.bb1
-rw-r--r--packages/perl/libversion-perl_0.6701.bb2
-rw-r--r--packages/perl/libxml-parser-perl-native_2.34.bb3
-rw-r--r--packages/perl/libxml-parser-perl_2.34.bb2
-rw-r--r--packages/perl/libyaml-perl_0.62.bb2
-rw-r--r--packages/perl/perl-5.8.8/native-makedepend-dash.patch13
-rw-r--r--packages/perl/perl-5.8.8/native-perlinc.patch16
-rw-r--r--packages/perl/perl-native_5.8.8.bb20
-rw-r--r--packages/perl/perl_5.8.8.bb29
-rw-r--r--packages/sdlperl/sdl-perl_1.20.3.bb40
-rw-r--r--packages/telepathy/empathy-0.5/.mtn2git_empty0
-rw-r--r--packages/telepathy/empathy-0.5/no-gnome.diff146
-rw-r--r--packages/telepathy/empathy_0.5.bb6
-rw-r--r--packages/tree/.mtn2git_empty0
-rw-r--r--packages/tree/tree_1.5.1.bb11
-rw-r--r--packages/uclibc/uclibc-0.9.28/avr32/.mtn2git_empty0
-rw-r--r--packages/uclibc/uclibc-0.9.28/avr32/uClibc.config177
-rw-r--r--packages/uclibc/uclibc_0.9.28.bb29
-rw-r--r--packages/webkit/webkit_svn.bb33
-rw-r--r--packages/xorg-app/xrandr/.mtn2git_empty0
-rw-r--r--packages/xorg-app/xrandr/resolve_symbol_clash.patch35
-rw-r--r--packages/xorg-app/xrandr_1.2.0.bb2
-rw-r--r--packages/xqt2/xqt2_20060509.bb6
-rw-r--r--packages/xserver-common/files/Xserver-udev-input-helper.patch11
-rw-r--r--packages/xserver-common/files/at-fix-slcxxxx.patch8
-rw-r--r--packages/xserver-common/files/load-xmodmap-k26.patch23
-rw-r--r--packages/xserver-common/files/softkeys-c7x0.patch52
-rw-r--r--packages/xserver-common/files/softkeys-slcxxxx-xmodmap.patch20
-rw-r--r--packages/xserver-common/xserver-common_1.16.bb10
-rw-r--r--packages/xserver-common/xserver-common_svn.bb10
148 files changed, 5064 insertions, 329 deletions
diff --git a/packages/clamav/clamav-0.88.7/.mtn2git_empty b/packages/billiardz/files/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/clamav/clamav-0.88.7/.mtn2git_empty
+++ b/packages/billiardz/files/.mtn2git_empty
diff --git a/packages/billiardz/files/gcc4.patch b/packages/billiardz/files/gcc4.patch
new file mode 100644
index 0000000000..30d7eda9e8
--- /dev/null
+++ b/packages/billiardz/files/gcc4.patch
@@ -0,0 +1,45 @@
+diff -Naur billiardz-0.1.4-orig/src/ButtonListener.h billiardz-0.1.4/src/ButtonListener.h
+--- billiardz-0.1.4-orig/src/ButtonListener.h 2002-11-05 07:01:51.000000000 +0100
++++ billiardz-0.1.4/src/ButtonListener.h 2007-03-26 21:10:11.000000000 +0200
+@@ -9,6 +9,7 @@
+ {
+ public:
+ virtual void buttonClicked(Button *button) = 0;
++ virtual ~ButtonListener() {}
+ };
+
+ #endif /* _BUTTONLISTENER_H_ */
+diff -Naur billiardz-0.1.4-orig/src/CueStickListener.h billiardz-0.1.4/src/CueStickListener.h
+--- billiardz-0.1.4-orig/src/CueStickListener.h 2002-09-13 02:02:23.000000000 +0200
++++ billiardz-0.1.4/src/CueStickListener.h 2007-03-26 21:11:14.000000000 +0200
+@@ -12,6 +12,7 @@
+ virtual bool cueBallHit(CueStick *stick, Ball *ball) = 0;
+ virtual void stickMoved(CueStick *stick, Fixed oldAngle,
+ Fixed newAngle) = 0;
++ virtual ~CueStickListener() {}
+ };
+
+ #endif /* _CUESTICKLISTENER_H_ */
+diff -Naur billiardz-0.1.4-orig/src/PoolGame.h billiardz-0.1.4/src/PoolGame.h
+--- billiardz-0.1.4-orig/src/PoolGame.h 2002-11-05 07:01:36.000000000 +0100
++++ billiardz-0.1.4/src/PoolGame.h 2007-03-26 21:40:58.000000000 +0200
+@@ -6,6 +6,7 @@
+
+ class Player;
+ class PoolTable;
++class PoolRoom;
+ class Physics;
+ class Rules;
+ class Sprite;
+diff -Naur billiardz-0.1.4-orig/src/main.cpp billiardz-0.1.4/src/main.cpp
+--- billiardz-0.1.4-orig/src/main.cpp 2003-11-03 07:56:29.000000000 +0100
++++ billiardz-0.1.4/src/main.cpp 2007-03-26 23:27:11.000000000 +0200
+@@ -51,7 +51,7 @@
+
+ return interval;
+ }
+-
++#define SDL_main main
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/packages/binutils/binutils_2.17.bb b/packages/binutils/binutils_2.17.bb
index 9610634959..8d38f3a459 100644
--- a/packages/binutils/binutils_2.17.bb
+++ b/packages/binutils/binutils_2.17.bb
@@ -1,6 +1,6 @@
require binutils.inc
-PR = "r0"
+PR = "r1"
SRC_URI = \
"http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2 \
@@ -18,6 +18,9 @@ SRC_URI += "\
file://300-012_check_ldrunpath_length.patch;patch=1 \
file://300-001_ld_makefile_patch.patch;patch=1 \
file://400-mips-ELF_MAXPAGESIZE-4K.patch;patch=1 \
+ http://avr32linux.org/twiki/pub/Main/DevelopmentTools/500-avr32.patch.gz;patch=1 \
+ http://avr32linux.org/twiki/pub/Main/DevelopmentTools/501-avr32-sreldyn-fix.patch.gz;patch=1 \
+ http://avr32linux.org/twiki/pub/Main/DevelopmentTools/502-avr32-bfd-dont-allow-direct-refs-to-bss.patch.gz;patch=1 \
"
# Zecke's OSX fixes
diff --git a/packages/clamav/clamav-0.88.7/clamd.conf b/packages/clamav/clamav-0.88.7/clamd.conf
deleted file mode 100644
index 485c80d420..0000000000
--- a/packages/clamav/clamav-0.88.7/clamd.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-## Please read the clamd.conf(5) manual before editing this file.
-LocalSocket /var/run/clamav/clamd.ctl
-FixStaleSocket
-User clamav
-AllowSupplementaryGroups
-ScanMail
-ScanArchive
-ArchiveMaxRecursion 5
-ArchiveMaxFiles 1000
-ArchiveMaxFileSize 10M
-ArchiveMaxCompressionRatio 250
-ReadTimeout 180
-MaxThreads 12
-MaxConnectionQueueLength 15
-LogFile /var/log/clamav/clamav.log
-LogTime
-LogFileMaxSize 0
-PidFile /var/run/clamav/clamd.pid
-DatabaseDirectory /var/lib/clamav
-SelfCheck 3600
-ScanOLE2
-ScanPE
-DetectBrokenExecutables
-ScanHTML
-ArchiveBlockMax
diff --git a/packages/clamav/clamav-0.88.7/cross-compile-fix.patch b/packages/clamav/clamav-0.88.7/cross-compile-fix.patch
deleted file mode 100644
index 690d680c66..0000000000
--- a/packages/clamav/clamav-0.88.7/cross-compile-fix.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Add some caching of values which can't be determined when
-cross-compiling. This lets us define the values via the site files.
-
---- clamav-0.88.4/configure.in 2006/09/12 05:49:09 1.1
-+++ clamav-0.88.4/configure.in 2006/09/12 06:24:27
-@@ -56,19 +56,18 @@
-
- dnl Check for broken snprintf (code by Phil Oleson <oz*nixil.net>)
- if test "x$ac_cv_func_snprintf" = "xyes" ; then
-- AC_MSG_CHECKING([whether snprintf correctly terminates long strings])
-- AC_TRY_RUN(
-- [
-+ AC_CACHE_CHECK([whether snprintf correctly terminates long strings],
-+ [clamav_av_func_working_snprintf_long], [
-+ AC_TRY_RUN(
-+ [
- #include <stdio.h>
- int main(void){char b[5];snprintf(b,5,"123456789");return(b[4]!='\0');}
-- ],
-- [AC_MSG_RESULT(yes)],
-- [
-- AC_MSG_RESULT(no)
-- AC_DEFINE(BROKEN_SNPRINTF,1,[Define if your snprintf is busted])
-- AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])
-- ]
-- )
-+ ])
-+ ])
-+ if test "x$clamav_av_func_working_snprintf_long" = "xno"; then
-+ AC_DEFINE(BROKEN_SNPRINTF,1,[Define if your snprintf is busted])
-+ AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])
-+ fi
- fi
-
- have_pthreads=no
-@@ -331,18 +330,28 @@
- AC_DEFINE_UNQUOTED(CONFDIR,"$cfg_dir",[where to look for the config file])
-
- dnl check for in_port_t definition
--AC_TRY_RUN([
--#include <sys/types.h>
--#include <netinet/in.h>
--int main(int argc, char **argv) { in_port_t pt; pt = 0; return pt; }
--], AC_DEFINE(HAVE_IN_PORT_T,1,[in_port_t is defined]), AC_MSG_RESULT(in_port_t is not defined))
-+AC_CACHE_CHECK([for in_port_t], [clamav_av_have_in_port_t], [
-+ AC_TRY_RUN([
-+ #include <sys/types.h>
-+ #include <netinet/in.h>
-+ int main(int argc, char **argv) { in_port_t pt; pt = 0; return pt; }
-+ ])
-+ ])
-+if test "$clamav_av_have_in_port_t" = "yes"; then
-+ AC_DEFINE(HAVE_IN_PORT_T,1,[in_port_t is defined])
-+fi
-
- dnl check for in_addr_t definition
--AC_TRY_RUN([
--#include <sys/types.h>
--#include <netinet/in.h>
--int main(int argc, char **argv) { in_addr_t pt; pt = 0; return pt; }
--], AC_DEFINE(HAVE_IN_ADDR_T,1,[in_addr_t is defined]), AC_MSG_RESULT(in_addr_t is not defined))
-+AC_CACHE_CHECK([for in_addr_t], [clamav_av_have_in_addr_t], [
-+ AC_TRY_RUN([
-+ #include <sys/types.h>
-+ #include <netinet/in.h>
-+ int main(int argc, char **argv) { in_addr_t pt; pt = 0; return pt; }
-+ ])
-+ ])
-+if test "$clamav_av_have_in_addr_t" = "yes"; then
-+ AC_DEFINE(HAVE_IN_ADDR_T,1,[in_addr_t is defined])
-+fi
-
- case "$target_os" in
- linux*)
diff --git a/packages/clamav/clamav-0.88.7/freshclam.conf b/packages/clamav/clamav-0.88.7/freshclam.conf
deleted file mode 100644
index 770490b3ab..0000000000
--- a/packages/clamav/clamav-0.88.7/freshclam.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-## Please read the freshclam.conf(5) manual before editing this file.
-
-# Comment or remove the line below.
-Example
-
-# Uncomment the following line and replace XY with your country
-# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
-# Default: There is no default, which results in an error when running freshclam
-#DatabaseMirror db.XY.clamav.net
-
-DatabaseMirror database.clamav.net
-DatabaseOwner clamav
-UpdateLogFile /var/log/clamav/freshclam.log
-LogFileMaxSize 0
-MaxAttempts 5
-Checks 24
-DatabaseDirectory /var/lib/clamav/
-NotifyClamd
-DNSDatabaseInfo current.cvd.clamav.net
diff --git a/packages/clamav/clamav-0.88.7/libtool-fix.patch b/packages/clamav/clamav-0.88.7/libtool-fix.patch
deleted file mode 100644
index 05a4876dd0..0000000000
--- a/packages/clamav/clamav-0.88.7/libtool-fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Use our own libtool that knows about cross compiling, not the libtool
-that is included.
-
---- clamav-0.88.4/acinclude.m4 2006/09/12 08:07:27 1.1
-+++ clamav-0.88.4/acinclude.m4 2006/09/12 08:16:31
-@@ -520,7 +520,7 @@
- LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL="$host_alias-libtool"
- AC_SUBST(LIBTOOL)dnl
-
- # Prevent multiple expansion
-@@ -1238,7 +1238,7 @@
- rm="rm -f"
-
- # Global variables:
--default_ofile=libtool
-+default_ofile=${host_alias}-libtool
- can_build_shared=yes
-
- # All known linkers require a `.a' archive for static linking (except M$VC,
diff --git a/packages/clamav/clamav.inc b/packages/clamav/clamav.inc
index c00da1d6d7..6bdd36c7d2 100644
--- a/packages/clamav/clamav.inc
+++ b/packages/clamav/clamav.inc
@@ -10,7 +10,7 @@ DESCRIPTION_${PN}-daemon = "An on-demand file scanning service for Clam AntiViru
HOMEPAGE = "http://www.clamav.net/"
SECTION = "network"
LICENSE = "GPL"
-DEPENDS = "zlib bzip2 gmp"
+DEPENDS = "zlib bzip2 gmp curl virtual/libintl"
RDEPENDS_${PN} = "${PN}-data"
RDEPENDS_${PN}-daemon = "${PN}-data ${PN}-conf"
RDEPENDS_${PN}-freshclam = "${PN}-conf"
@@ -33,6 +33,8 @@ inherit autotools update-rc.d binconfig
# Don't check for clamav uid/gid - they don't exist on the host
# Put virus definitions in /var/lib not /usr/lib
EXTRA_OECONF = "--disable-clamav \
+ --with-zlib=${STAGING_DIR}/${HOST_SYS} \
+ --with-libcurl \
--with-dbdir=${localstatedir}/lib/clamav"
do_install_append() {
@@ -62,13 +64,15 @@ do_stage () {
install -m 0644 libclamav/clamav.h ${STAGING_INCDIR}
}
-PACKAGES += "${PN}-freshclam ${PN}-daemon ${PN}-conf ${PN}-data ${PN}-lib"
+PACKAGES += "${PN}-freshclam ${PN}-daemon ${PN}-conf ${PN}-data ${PN}-lib \
+ ${PN}-clamconf"
FILES_${PN} = "${bindir}/clamscan \
${bindir}/sigtool \
${bindir}/clamdscan"
FILES_${PN}-lib = "${libdir}/libclamav.so.*"
FILES_${PN}-conf = "${sysconfdir}/clamd.conf"
+FILES_${PN}-clamconf = "${bindir}/clamconf"
FILES_${PN}-freshclam = "${bindir}/freshclam \
${sysconfdir}/freshclam.conf \
${sysconfdir}/init.d/clamav-freshclam \
diff --git a/packages/clamav/clamav_0.88.7.bb b/packages/clamav/clamav_0.88.7.bb
deleted file mode 100644
index 2728c31590..0000000000
--- a/packages/clamav/clamav_0.88.7.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require clamav.inc
-
-PR = "r1"
-
-SRC_URI_append += " file://libtool-fix.patch;patch=1"
diff --git a/packages/clamav/clamav_0.90.2.bb b/packages/clamav/clamav_0.90.2.bb
index fe3061606a..e721558efe 100644
--- a/packages/clamav/clamav_0.90.2.bb
+++ b/packages/clamav/clamav_0.90.2.bb
@@ -1,17 +1,3 @@
require clamav.inc
-PR = "r1"
-
-# 0.9x requires curl for incremental database updates
-DEPENDS += "curl"
-DEPENDS += "virtual/libintl"
-# Don't check for clamav uid/gid - they don't exist on the host
-# Put virus definitions in /var/lib not /usr/lib
-EXTRA_OECONF = "--disable-clamav \
- --with-zlib=${STAGING_DIR}/${HOST_SYS} \
- --with-libcurl \
- --with-dbdir=${localstatedir}/lib/clamav"
-
-# Package up configuration utility - new for 0.9x
-PACKAGES += "${PN}-clamconf"
-FILES_${PN}-clamconf = "${bindir}/clamconf"
+PR = "r1"
diff --git a/packages/clamav/clamav_0.90.3.bb b/packages/clamav/clamav_0.90.3.bb
new file mode 100644
index 0000000000..fec4ae59d8
--- /dev/null
+++ b/packages/clamav/clamav_0.90.3.bb
@@ -0,0 +1,3 @@
+require clamav.inc
+
+PR = "r0"
diff --git a/packages/clamav/clamav-0.90.2/clamd.conf b/packages/clamav/files/clamd.conf
index 74ebcf5c3f..74ebcf5c3f 100644
--- a/packages/clamav/clamav-0.90.2/clamd.conf
+++ b/packages/clamav/files/clamd.conf
diff --git a/packages/clamav/clamav-0.90.2/cross-compile-fix.patch b/packages/clamav/files/cross-compile-fix.patch
index f7ab4aa69f..f7ab4aa69f 100644
--- a/packages/clamav/clamav-0.90.2/cross-compile-fix.patch
+++ b/packages/clamav/files/cross-compile-fix.patch
diff --git a/packages/clamav/clamav-0.90.2/freshclam.conf b/packages/clamav/files/freshclam.conf
index fd45b0dd85..fd45b0dd85 100644
--- a/packages/clamav/clamav-0.90.2/freshclam.conf
+++ b/packages/clamav/files/freshclam.conf
diff --git a/packages/evince/evince/no-help-dir.patch b/packages/evince/evince/no-help-dir.patch
new file mode 100644
index 0000000000..b242b65f76
--- /dev/null
+++ b/packages/evince/evince/no-help-dir.patch
@@ -0,0 +1,12 @@
+Index: evince-0.9.0/Makefile.am
+===================================================================
+--- evince-0.9.0.orig/Makefile.am 2007-05-30 21:17:51.000000000 +0100
++++ evince-0.9.0/Makefile.am 2007-05-30 21:17:58.000000000 +0100
+@@ -6,7 +6,6 @@
+ properties \
+ shell \
+ po \
+- help \
+ test
+
+ if ENABLE_THUMBNAILER
diff --git a/packages/evince/evince_0.9.0.bb b/packages/evince/evince_0.9.0.bb
index 8689d1d371..64e2e41275 100644
--- a/packages/evince/evince_0.9.0.bb
+++ b/packages/evince/evince_0.9.0.bb
@@ -9,7 +9,8 @@ PR = "r1"
inherit gnome pkgconfig gtk-icon-cache
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/evince/0.9/${PN}-${PV}.tar.bz2 \
- file://no-icon-theme.diff;patch=1;pnum=0"
+ file://no-icon-theme.diff;patch=1;pnum=0 \
+ file://no-help-dir.patch;patch=1"
-EXTRA_OECONF = "--without-libgnome --disable-thumbnailer"
+EXTRA_OECONF = "--without-libgnome --disable-thumbnailer --disable-scrollkeeper"
diff --git a/packages/gaim/pidgin.inc b/packages/gaim/pidgin.inc
index 37fa996b53..f0113b0d58 100644
--- a/packages/gaim/pidgin.inc
+++ b/packages/gaim/pidgin.inc
@@ -19,16 +19,19 @@ EXTRA_OECONF = " \
--with-gnutls-libs=${STAGING_LIBDIR} \
"
-PACKAGES =+ "libpurple libpurple-dev libpurple-dbg finch finch-dev finch-dbg"
+PACKAGES =+ "libpurple libpurple-dev libpurple-dbg libpurple-liboscar libpurple-libjabber libpurple-logreader finch finch-dev finch-dbg"
LEAD_SONAME = "libpurple.so.0"
-FILES_libpurple = "${libdir}/libpurple*.so.*"
+FILES_libpurple = "${libdir}/libpurple*.so.* /usr/bin/purple-* /etc/gconf/schemas/purple*"
FILES_libpurple-dev = "${libdir}/libpurple* \
${libdir}/purple-2/*.la "
FILES_libpurple-dbg = "${libdir}/.debug/libpurple* \
${libdir}/purple-2/.debug"
-FILES_finch = "${bindir}/finch"
+FILES_libpurple-liboscar = "${libdir}/purple-2/liboscar.so.*"
+FILES_libpurple-libjabber = "${libdir}/purple-2/libjabber.so.*"
+FILES_libpurple-logreader = "${libdir}/purple-2/log_reader.so"
+FILES_finch = "${bindir}/finch /usr/lib/libgnt.so.*"
FILES_finch-dev = "${libdir}/finch/*.la"
FILES_finch-dbg = "${bindir}/.debug/finch \
${libdir}/finch/.debug"
@@ -53,22 +56,22 @@ python populate_packages_prepend () {
do_split_packages(d, root, '^([^l][^i][^b].*)\.so$',
output_pattern='pidgin-plugin-%s',
description='Pidgin plugin %s',
- prepend=True)
+ prepend=True, extra_depends='')
do_split_packages(d, purple, '^lib(.*)\.so$',
output_pattern='libpurple-protocol-%s',
description='Libpurple protocol plugin for %s',
- prepend=True)
+ prepend=True, extra_depends='')
do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$',
output_pattern='libpurple-plugin-%s',
description='libpurple plugin %s',
- prepend=True)
+ prepend=True, extra_depends='')
do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$',
output_pattern='finch-plugin-%s',
description='Finch plugin %s',
- prepend=True)
+ prepend=True, extra_depends='')
}
diff --git a/packages/gaim/pidgin_2.0.0.bb b/packages/gaim/pidgin_2.0.0.bb
index a39e7aeaf9..411b49ff4b 100644
--- a/packages/gaim/pidgin_2.0.0.bb
+++ b/packages/gaim/pidgin_2.0.0.bb
@@ -5,4 +5,4 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \
file://gconf-no-errors.patch;patch=1 \
"
-
+PR = "r2"
diff --git a/packages/gcc/gcc-4.1.2/cache-amnesia.patch b/packages/gcc/gcc-4.1.2/cache-amnesia.patch
new file mode 100644
index 0000000000..ef7cd111c5
--- /dev/null
+++ b/packages/gcc/gcc-4.1.2/cache-amnesia.patch
@@ -0,0 +1,13 @@
+diff --git a/gcc/configure b/gcc/configure
+index 44620ab..6e1830c 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -12272,7 +12272,7 @@ else
+ esac
+ saved_CFLAGS="${CFLAGS}"
+ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+- ${realsrcdir}/configure \
++ CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
+ --enable-languages=${enable_languages-all} \
+ --target=$target_alias --host=$build_alias --build=$build_alias
+ CFLAGS="${saved_CFLAGS}"
diff --git a/packages/clamav/clamav-0.90.2/.mtn2git_empty b/packages/gcc/gcc-4.2.0/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/clamav/clamav-0.90.2/.mtn2git_empty
+++ b/packages/gcc/gcc-4.2.0/.mtn2git_empty
diff --git a/packages/gcc/gcc-4.2.0/100-uclibc-conf.patch b/packages/gcc/gcc-4.2.0/100-uclibc-conf.patch
new file mode 100644
index 0000000000..4243ff7b91
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/100-uclibc-conf.patch
@@ -0,0 +1,200 @@
+--- gcc/libgomp/configure
++++ gcc/libgomp/configure
+@@ -3771,7 +3771,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/gcc/config/cris/linux.h
++++ gcc/gcc/config/cris/linux.h
+@@ -74,7 +74,11 @@
+ #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
+
+ #undef CRIS_SUBTARGET_VERSION
+-#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
++#if UCLIBC_DEFAULT
++# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
++#else
++# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
++#endif
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
+--- gcc/libstdc++-v3/configure
++++ gcc/libstdc++-v3/configure
+@@ -4276,7 +4276,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/zlib/configure
++++ gcc/zlib/configure
+@@ -3422,7 +3422,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libobjc/configure
++++ gcc/libobjc/configure
+@@ -3309,7 +3309,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libgfortran/configure
++++ gcc/libgfortran/configure
+@@ -3695,7 +3695,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libmudflap/configure
++++ gcc/libmudflap/configure
+@@ -5378,7 +5378,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/boehm-gc/configure
++++ gcc/boehm-gc/configure
+@@ -4316,7 +4316,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libffi/configure
++++ gcc/libffi/configure
+@@ -3453,7 +3453,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libssp/configure
++++ gcc/libssp/configure
+@@ -4409,7 +4409,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/contrib/regression/objs-gcc.sh
++++ gcc/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/libjava/classpath/ltconfig
++++ gcc/libjava/classpath/ltconfig
+@@ -603,7 +603,7 @@
+
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case $host_os in
+-linux-gnu*) ;;
++linux-gnu*|linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -1251,7 +1251,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+--- gcc/libjava/classpath/configure
++++ gcc/libjava/classpath/configure
+@@ -4665,7 +4665,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libjava/configure
++++ gcc/libjava/configure
+@@ -5212,7 +5212,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/libtool.m4
++++ gcc/libtool.m4
+@@ -739,7 +739,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- gcc/ltconfig
++++ gcc/ltconfig
+@@ -603,7 +603,7 @@
+
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case $host_os in
+-linux-gnu*) ;;
++linux-gnu*|linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -1251,7 +1251,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
diff --git a/packages/gcc/gcc-4.2.0/110-arm-eabi.patch b/packages/gcc/gcc-4.2.0/110-arm-eabi.patch
new file mode 100644
index 0000000000..acebe5308f
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/110-arm-eabi.patch
@@ -0,0 +1,27 @@
+--- gcc-2005q3-1.orig/gcc/config.gcc 2005-10-31 19:02:54.000000000 +0300
++++ gcc-2005q3-1/gcc/config.gcc 2006-01-27 01:09:09.000000000 +0300
+@@ -674,7 +674,7 @@
+ tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
+ tmake_file="t-slibgcc-elf-ver t-linux arm/t-arm"
+ case ${target} in
+- arm*-*-linux-gnueabi)
++ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
+ tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
+ tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
+ # The BPABI long long divmod functions return a 128-bit value in
+
+diff -urN gcc-2005q3-2/gcc/config/arm/linux-eabi.h gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h
+--- gcc-2005q3-2/gcc/config/arm/linux-eabi.h 2005-12-07 23:14:16.000000000 +0300
++++ gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h 2006-03-29 19:02:34.000000000 +0400
+@@ -53,7 +53,11 @@
+ /* Use ld-linux.so.3 so that it will be possible to run "classic"
+ GNU/Linux binaries on an EABI system. */
+ #undef LINUX_TARGET_INTERPRETER
++#ifdef USE_UCLIBC
++#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
++#else
+ #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
++#endif
+
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
diff --git a/packages/gcc/gcc-4.2.0/200-uclibc-locale.patch b/packages/gcc/gcc-4.2.0/200-uclibc-locale.patch
new file mode 100644
index 0000000000..c933d1c446
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/200-uclibc-locale.patch
@@ -0,0 +1,2790 @@
+--- gcc/libstdc++-v3/acinclude.m4
++++ gcc/libstdc++-v3/acinclude.m4
+@@ -1369,7 +1369,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
+@@ -1385,6 +1385,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 <features.h>
+@@ -1528,6 +1531,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
+--- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
++++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+@@ -0,0 +1,63 @@
++// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
++
++// Copyright (C) 2002, 2004, 2005 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 <bits/c++config.h>
++#include <clocale>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning clean this up
++#endif
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++
++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(newlocale) __newlocale;
++extern "C" __typeof(freelocale) __freelocale;
++extern "C" __typeof(duplocale) __duplocale;
++extern "C" __typeof(uselocale) __uselocale;
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++extern "C" __typeof(iswctype_l) __iswctype_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;
++#endif
++
++#endif // GLIBC 2.3 and later
+--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc
+@@ -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 <bkoz@redhat.com>
++
++#include <cerrno> // For errno
++#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))
++#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
+--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h
++++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h
+@@ -0,0 +1,117 @@
++// Wrapper for underlying C-language localization -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004, 2005 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 _C_LOCALE_H
++#define _C_LOCALE_H 1
++
++#pragma GCC system_header
++
++#include <cstring> // get std::strlen
++#include <cstdio> // get std::snprintf or std::sprintf
++#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 __attribute__ ((__unused__)),
++ const char* __fmt,
++#ifdef __UCLIBC_HAS_XCLOCALE__
++ _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_XCLOCALE__
++ __gnu_cxx::__uselocale(__old);
++#elif defined __UCLIBC_HAS_LOCALE__
++ std::setlocale(LC_ALL, __sav);
++ delete [] __sav;
++#endif
++ return __ret;
++ }
++}
++
++#endif
+--- gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+@@ -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 <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 = 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<size_t>(-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<size_t>(__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<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 = 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<const extern_type*>(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<size_t>(-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<size_t>(-1)
++ || __conv == static_cast<size_t>(-2))
++ break;
++ }
++ __from_next = __from;
++ __state = __tmp_state;
++ __ret = error;
++ }
++ else if (__from_next && __from_next < __from_chunk_end)
++ {
++ // It is unclear what to return in this case (see DR 382).
++ __to_next += __conv;
++ __ret = partial;
++ }
++ else
++ {
++ __from_next = __from_chunk_end;
++ __to_next += __conv;
++ }
++
++ if (__from_next < __from_end && __ret == ok)
++ {
++ if (__to_next < __to_end)
++ {
++ // XXX Probably wrong for stateful encodings
++ __tmp_state = __state;
++ ++__from_next;
++ *__to_next++ = L'\0';
++ }
++ else
++ __ret = partial;
++ }
++ }
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_encoding() const throw()
++ {
++ // XXX This implementation assumes that the encoding is
++ // stateless and is either single-byte or variable-width.
++ int __ret = 0;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++ if (MB_CUR_MAX == 1)
++ __ret = 1;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_max_length() const throw()
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++ // XXX Probably wrong for stateful encodings.
++ int __ret = MB_CUR_MAX;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_length(state_type& __state, const extern_type* __from,
++ const extern_type* __end, size_t __max) const
++ {
++ int __ret = 0;
++ state_type __tmp_state(__state);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++
++ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
++ // in case we advance past it and then continue, in a loop.
++ // NB: mbsnrtowcs is a GNU extension
++
++ // A dummy internal buffer is needed in order for mbsnrtocws to consider
++ // its fourth parameter (it wouldn't with NULL as first parameter).
++ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
++ * __max));
++ while (__from < __end && __max)
++ {
++ const extern_type* __from_chunk_end;
++ __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
++ __end
++ - __from));
++ if (!__from_chunk_end)
++ __from_chunk_end = __end;
++
++ const extern_type* __tmp_from = __from;
++ size_t __conv = mbsnrtowcs(__to, &__from,
++ __from_chunk_end - __from,
++ __max, &__state);
++ if (__conv == static_cast<size_t>(-1))
++ {
++ // In case of error, in order to stop at the exact place we
++ // have to start again from the beginning with a series of
++ // mbrtowc.
++ for (__from = __tmp_from;; __from += __conv)
++ {
++ __conv = mbrtowc(NULL, __from, __end - __from,
++ &__tmp_state);
++ if (__conv == static_cast<size_t>(-1)
++ || __conv == static_cast<size_t>(-2))
++ break;
++ }
++ __state = __tmp_state;
++ __ret += __from - __tmp_from;
++ break;
++ }
++ if (!__from)
++ __from = __from_chunk_end;
++
++ __ret += __from - __tmp_from;
++ __max -= __conv;
++
++ if (__from < __end && __max)
++ {
++ // XXX Probably wrong for stateful encodings
++ __tmp_state = __state;
++ ++__from;
++ ++__ret;
++ --__max;
++ }
++ }
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++
++ return __ret;
++ }
++#endif
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc
+@@ -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
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+@@ -0,0 +1,300 @@
++// std::ctype implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
++//
++
++// Written by Benjamin Kosnik <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)
++ {
++ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
++ {
++ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
++ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
++#ifdef __UCLIBC_HAS_XLOCALE__
++ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
++ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
++ this->_M_table = this->_M_c_locale_ctype->__ctype_b;
++#endif
++ }
++ }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ ctype<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 = __wmask_type();
++ }
++ 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)
++ if (__m & _M_bit[__bitcur]
++ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
++ {
++ __ret = true;
++ break;
++ }
++ 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)
++ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
++ __m |= _M_bit[__bitcur];
++ *__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
++ { return _M_widen[static_cast<unsigned char>(__c)]; }
++
++ const char*
++ ctype<wchar_t>::
++ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
++ {
++ while (__lo < __hi)
++ {
++ *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
++ ++__lo;
++ ++__dest;
++ }
++ return __hi;
++ }
++
++ char
++ ctype<wchar_t>::
++ do_narrow(wchar_t __wc, char __dfault) const
++ {
++ if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
++ return _M_narrow[__wc];
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_ctype);
++#endif
++ const int __c = wctob(__wc);
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return (__c == EOF ? __dfault : static_cast<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
++ if (_M_narrow_ok)
++ while (__lo < __hi)
++ {
++ if (*__lo >= 0 && *__lo < 128)
++ *__dest = _M_narrow[*__lo];
++ else
++ {
++ const int __c = wctob(*__lo);
++ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
++ }
++ ++__lo;
++ ++__dest;
++ }
++ else
++ while (__lo < __hi)
++ {
++ const int __c = wctob(*__lo);
++ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
++ ++__lo;
++ ++__dest;
++ }
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __hi;
++ }
++
++ void
++ ctype<wchar_t>::_M_initialize_ctype()
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_ctype);
++#endif
++ wint_t __i;
++ for (__i = 0; __i < 128; ++__i)
++ {
++ const int __c = wctob(__i);
++ if (__c == EOF)
++ break;
++ else
++ _M_narrow[__i] = static_cast<char>(__c);
++ }
++ if (__i == 128)
++ _M_narrow_ok = true;
++ else
++ _M_narrow_ok = false;
++ for (size_t __j = 0;
++ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
++ _M_widen[__j] = btowc(__j);
++
++ for (size_t __k = 0; __k <= 11; ++__k)
++ {
++ _M_bit[__k] = static_cast<mask>(_ISbit(__k));
++ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
++ }
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ }
++#endif // _GLIBCXX_USE_WCHAR_T
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc
+@@ -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
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h
++++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h
+@@ -0,0 +1,118 @@
++// std::messages implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.7.1.2 messages functions
++//
++
++// Written by Benjamin Kosnik <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)
++ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
++ _M_name_messages(_S_get_c_name())
++ { }
++
++ template<typename _CharT>
++ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
++ size_t __refs)
++ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
++ _M_name_messages(__s)
++ {
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ _M_name_messages = __tmp;
++ }
++
++ template<typename _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()
++ {
++ if (_M_name_messages != _S_get_c_name())
++ delete [] _M_name_messages;
++ _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)
++ {
++ if (this->_M_name_messages != locale::facet::_S_get_c_name())
++ delete [] this->_M_name_messages;
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ this->_M_name_messages = __tmp;
++
++ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
++ {
++ this->_S_destroy_c_locale(this->_M_c_locale_messages);
++ this->_S_create_c_locale(this->_M_c_locale_messages, __s);
++ }
++ }
+--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+@@ -0,0 +1,692 @@
++// std::moneypunct implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
++//
++
++// Written by Benjamin Kosnik <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.
++ __ret.field[0] = sign;
++ if (__space)
++ {
++ // Pattern starts with sign.
++ if (__precedes)
++ {
++ __ret.field[1] = symbol;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[1] = value;
++ __ret.field[3] = symbol;
++ }
++ __ret.field[2] = space;
++ }
++ else
++ {
++ // Pattern starts with sign and ends with none.
++ if (__precedes)
++ {
++ __ret.field[1] = symbol;
++ __ret.field[2] = value;
++ }
++ else
++ {
++ __ret.field[1] = value;
++ __ret.field[2] = symbol;
++ }
++ __ret.field[3] = none;
++ }
++ break;
++ case 2:
++ // 2 The sign follows the value and symbol.
++ if (__space)
++ {
++ // Pattern either ends with sign.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[2] = value;
++ }
++ else
++ {
++ __ret.field[0] = value;
++ __ret.field[2] = symbol;
++ }
++ __ret.field[1] = space;
++ __ret.field[3] = sign;
++ }
++ else
++ {
++ // Pattern ends with sign then none.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[1] = value;
++ }
++ else
++ {
++ __ret.field[0] = value;
++ __ret.field[1] = symbol;
++ }
++ __ret.field[2] = sign;
++ __ret.field[3] = none;
++ }
++ break;
++ case 3:
++ // 3 The sign immediately precedes the symbol.
++ if (__precedes)
++ {
++ __ret.field[0] = sign;
++ __ret.field[1] = symbol;
++ if (__space)
++ {
++ __ret.field[2] = space;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[2] = value;
++ __ret.field[3] = none;
++ }
++ }
++ else
++ {
++ __ret.field[0] = value;
++ if (__space)
++ {
++ __ret.field[1] = space;
++ __ret.field[2] = sign;
++ __ret.field[3] = symbol;
++ }
++ else
++ {
++ __ret.field[1] = sign;
++ __ret.field[2] = symbol;
++ __ret.field[3] = none;
++ }
++ }
++ break;
++ case 4:
++ // 4 The sign immediately follows the symbol.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[1] = sign;
++ if (__space)
++ {
++ __ret.field[2] = space;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[2] = value;
++ __ret.field[3] = none;
++ }
++ }
++ else
++ {
++ __ret.field[0] = value;
++ if (__space)
++ {
++ __ret.field[1] = space;
++ __ret.field[2] = symbol;
++ __ret.field[3] = sign;
++ }
++ else
++ {
++ __ret.field[1] = symbol;
++ __ret.field[2] = sign;
++ __ret.field[3] = none;
++ }
++ }
++ break;
++ default:
++ ;
++ }
++ 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()
++ { delete _M_data; }
++
++ template<>
++ moneypunct<char, false>::~moneypunct()
++ { delete _M_data; }
++
++#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...
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] =
++ static_cast<wchar_t>(money_base::_S_atoms[__i]);
++ }
++ else
++ {
++ // Named locale.
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(__cloc);
++#else
++ // Switch to named locale so that mbsrtowcs will work.
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, __name);
++#endif
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be monetary
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# else
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++#endif
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++
++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
++ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
++
++ wchar_t* __wcs_ps = 0;
++ wchar_t* __wcs_ns = 0;
++ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
++ try
++ {
++ mbstate_t __state;
++ size_t __len = strlen(__cpossign);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ps = new wchar_t[__len];
++ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
++ _M_data->_M_positive_sign = __wcs_ps;
++ }
++ else
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
++
++ __len = strlen(__cnegsign);
++ if (!__nposn)
++ _M_data->_M_negative_sign = L"()";
++ else if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ns = new wchar_t[__len];
++ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
++ _M_data->_M_negative_sign = __wcs_ns;
++ }
++ else
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
++
++ // _Intl == true.
++ __len = strlen(__ccurr);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ wchar_t* __wcs = new wchar_t[__len];
++ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
++ _M_data->_M_curr_symbol = __wcs;
++ }
++ else
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
++ }
++ catch (...)
++ {
++ delete _M_data;
++ _M_data = 0;
++ delete __wcs_ps;
++ delete __wcs_ns;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ __throw_exception_again;
++ }
++
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
++ __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ }
++ }
++
++ template<>
++ void
++ moneypunct<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...
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] =
++ static_cast<wchar_t>(money_base::_S_atoms[__i]);
++ }
++ else
++ {
++ // Named locale.
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(__cloc);
++#else
++ // Switch to named locale so that mbsrtowcs will work.
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, __name);
++#endif
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be monetary
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# else
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++#endif
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++
++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
++ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
++
++ wchar_t* __wcs_ps = 0;
++ wchar_t* __wcs_ns = 0;
++ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
++ try
++ {
++ mbstate_t __state;
++ size_t __len;
++ __len = strlen(__cpossign);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ps = new wchar_t[__len];
++ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
++ _M_data->_M_positive_sign = __wcs_ps;
++ }
++ else
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
++
++ __len = strlen(__cnegsign);
++ if (!__nposn)
++ _M_data->_M_negative_sign = L"()";
++ else if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ns = new wchar_t[__len];
++ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
++ _M_data->_M_negative_sign = __wcs_ns;
++ }
++ else
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
++
++ // _Intl == true.
++ __len = strlen(__ccurr);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ wchar_t* __wcs = new wchar_t[__len];
++ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
++ _M_data->_M_curr_symbol = __wcs;
++ }
++ else
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
++ }
++ catch (...)
++ {
++ delete _M_data;
++ _M_data = 0;
++ delete __wcs_ps;
++ delete __wcs_ns;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ __throw_exception_again;
++ }
++
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ }
++ }
++
++ template<>
++ moneypunct<wchar_t, true>::~moneypunct()
++ {
++ if (_M_data->_M_positive_sign_size)
++ delete [] _M_data->_M_positive_sign;
++ if (_M_data->_M_negative_sign_size
++ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
++ delete [] _M_data->_M_negative_sign;
++ if (_M_data->_M_curr_symbol_size)
++ delete [] _M_data->_M_curr_symbol;
++ delete _M_data;
++ }
++
++ template<>
++ moneypunct<wchar_t, false>::~moneypunct()
++ {
++ if (_M_data->_M_positive_sign_size)
++ delete [] _M_data->_M_positive_sign;
++ if (_M_data->_M_negative_sign_size
++ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
++ delete [] _M_data->_M_negative_sign;
++ if (_M_data->_M_curr_symbol_size)
++ delete [] _M_data->_M_curr_symbol;
++ delete _M_data;
++ }
++#endif
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+@@ -0,0 +1,160 @@
++// std::numpunct implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions
++//
++
++// Written by Benjamin Kosnik <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_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_use_grouping = false;
++
++ _M_data->_M_decimal_point = '.';
++ _M_data->_M_thousands_sep = ',';
++
++ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
++ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
++
++ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
++ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
++ }
++ else
++ {
++ // Named locale.
++ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
++ __cloc));
++ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
++ __cloc));
++
++ // Check for NULL, which implies no grouping.
++ if (_M_data->_M_thousands_sep == '\0')
++ _M_data->_M_grouping = "";
++ else
++ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ }
++
++ // NB: There is no way to extact this info from posix locales.
++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
++ _M_data->_M_truename = "true";
++ _M_data->_M_truename_size = 4;
++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
++ _M_data->_M_falsename = "false";
++ _M_data->_M_falsename_size = 5;
++ }
++
++ template<>
++ numpunct<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_t>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_use_grouping = false;
++
++ _M_data->_M_decimal_point = L'.';
++ _M_data->_M_thousands_sep = L',';
++
++ // Use ctype::widen code without the facet...
++ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
++ _M_data->_M_atoms_out[__i] =
++ static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
++
++ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
++ _M_data->_M_atoms_in[__j] =
++ static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
++ }
++ else
++ {
++ // Named locale.
++ // NB: In the GNU model wchar_t is always 32 bit wide.
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++
++ if (_M_data->_M_thousands_sep == L'\0')
++ _M_data->_M_grouping = "";
++ else
++ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ }
++
++ // NB: There is no way to extact this info from posix locales.
++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
++ _M_data->_M_truename = L"true";
++ _M_data->_M_truename_size = 4;
++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
++ _M_data->_M_falsename = L"false";
++ _M_data->_M_falsename_size = 5;
++ }
++
++ template<>
++ numpunct<wchar_t>::~numpunct()
++ { delete _M_data; }
++ #endif
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc
++++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc
+@@ -0,0 +1,406 @@
++// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
++// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
++//
++
++// Written by Benjamin Kosnik <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__
++ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
++ _M_c_locale_timepunct);
++#else
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_timepunct);
++ const size_t __len = strftime(__s, __maxlen, __format, __tm);
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ // Make sure __s is null terminated.
++ if (__len == 0)
++ __s[0] = '\0';
++ }
++
++ template<>
++ void
++ __timepunct<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 = "Jul";
++ _M_data->_M_amonth08 = "Aug";
++ _M_data->_M_amonth09 = "Sep";
++ _M_data->_M_amonth10 = "Oct";
++ _M_data->_M_amonth11 = "Nov";
++ _M_data->_M_amonth12 = "Dec";
++ }
++ else
++ {
++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
++
++ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
++ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
++ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
++ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
++ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
++ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
++ __cloc);
++ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
++ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
++ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
++
++ // Day names, starting with "C"'s Sunday.
++ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
++ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
++ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
++ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
++ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
++ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
++ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
++ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
++ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
++ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
++ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
++ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
++ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
++
++ // Month names, starting with "C"'s January.
++ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
++ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
++ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
++ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
++ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
++ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
++ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
++ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
++ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
++ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
++ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
++ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
++ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
++ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
++ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
++ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
++ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
++ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
++ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
++ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
++ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
++ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
++ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
++ }
++ }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ void
++ __timepunct<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);
++ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
++ _M_c_locale_timepunct);
++#else
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_timepunct);
++ const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ // Make sure __s is null terminated.
++ if (__len == 0)
++ __s[0] = L'\0';
++ }
++
++ template<>
++ void
++ __timepunct<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"Jul";
++ _M_data->_M_amonth08 = L"Aug";
++ _M_data->_M_amonth09 = L"Sep";
++ _M_data->_M_amonth10 = L"Oct";
++ _M_data->_M_amonth11 = L"Nov";
++ _M_data->_M_amonth12 = L"Dec";
++ }
++#if 0
++ else
++ {
++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
++
++ union { char *__s; wchar_t *__w; } __u;
++
++ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
++ _M_data->_M_date_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
++ _M_data->_M_date_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
++ _M_data->_M_time_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
++ _M_data->_M_time_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
++ _M_data->_M_date_time_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
++ _M_data->_M_date_time_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
++ _M_data->_M_am = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
++ _M_data->_M_pm = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
++ _M_data->_M_am_pm_format = __u.__w;
++
++ // Day names, starting with "C"'s Sunday.
++ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
++ _M_data->_M_day1 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
++ _M_data->_M_day2 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
++ _M_data->_M_day3 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
++ _M_data->_M_day4 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
++ _M_data->_M_day5 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
++ _M_data->_M_day6 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
++ _M_data->_M_day7 = __u.__w;
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
++ _M_data->_M_aday1 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
++ _M_data->_M_aday2 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
++ _M_data->_M_aday3 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
++ _M_data->_M_aday4 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
++ _M_data->_M_aday5 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
++ _M_data->_M_aday6 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
++ _M_data->_M_aday7 = __u.__w;
++
++ // Month names, starting with "C"'s January.
++ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
++ _M_data->_M_month01 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
++ _M_data->_M_month02 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
++ _M_data->_M_month03 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
++ _M_data->_M_month04 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
++ _M_data->_M_month05 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
++ _M_data->_M_month06 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
++ _M_data->_M_month07 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
++ _M_data->_M_month08 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
++ _M_data->_M_month09 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
++ _M_data->_M_month10 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
++ _M_data->_M_month11 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
++ _M_data->_M_month12 = __u.__w;
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
++ _M_data->_M_amonth01 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
++ _M_data->_M_amonth02 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
++ _M_data->_M_amonth03 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
++ _M_data->_M_amonth04 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
++ _M_data->_M_amonth05 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
++ _M_data->_M_amonth06 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
++ _M_data->_M_amonth07 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
++ _M_data->_M_amonth08 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
++ _M_data->_M_amonth09 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
++ _M_data->_M_amonth10 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
++ _M_data->_M_amonth11 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
++ _M_data->_M_amonth12 = __u.__w;
++ }
++#endif // 0
++ }
++#endif
++}
+--- gcc/libstdc++-v3/config/locale/uclibc/time_members.h
++++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h
+@@ -0,0 +1,68 @@
++// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.5.1.2 - time_get functions
++// ISO C++ 14882: 22.2.5.3.2 - time_put functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(size_t __refs)
++ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(_S_get_c_name())
++ { _M_initialize_timepunct(); }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
++ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(_S_get_c_name())
++ { _M_initialize_timepunct(); }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
++ size_t __refs)
++ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(__s)
++ {
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ _M_name_timepunct = __tmp;
++ _M_initialize_timepunct(__cloc);
++ }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::~__timepunct()
++ {
++ if (_M_name_timepunct != _S_get_c_name())
++ delete [] _M_name_timepunct;
++ delete _M_data;
++ _S_destroy_c_locale(_M_c_locale_timepunct);
++ }
+--- gcc/libstdc++-v3/configure
++++ gcc/libstdc++-v3/configure
+@@ -5764,7 +5764,7 @@
+ enableval="$enable_clocale"
+
+ case "$enableval" in
+- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
++ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
+ *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
+ echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
+ { (exit 1); exit 1; }; } ;;
+@@ -5789,6 +5789,9 @@
+ # Default to "generic".
+ if test $enable_clocale_flag = auto; then
+ case ${target_os} in
++ linux-uclibc*)
++ enable_clocale_flag=uclibc
++ ;;
+ linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+@@ -6019,6 +6022,76 @@
+ CTIME_CC=config/locale/generic/time_members.cc
+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
+ ;;
++ uclibc)
++ echo "$as_me:$LINENO: result: uclibc" >&5
++echo "${ECHO_T}uclibc" >&6
++
++ # Declare intention to use gettext, and add support for specific
++ # languages.
++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
++ ALL_LINGUAS="de fr"
++
++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
++ # Extract the first word of "msgfmt", so it can be a program name with args.
++set dummy msgfmt; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_check_msgfmt+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$check_msgfmt"; then
++ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_check_msgfmt="yes"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
++fi
++fi
++check_msgfmt=$ac_cv_prog_check_msgfmt
++if test -n "$check_msgfmt"; then
++ echo "$as_me:$LINENO: result: $check_msgfmt" >&5
++echo "${ECHO_T}$check_msgfmt" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
++ USE_NLS=yes
++ fi
++ # Export the build objects.
++ for ling in $ALL_LINGUAS; do \
++ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
++ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
++ done
++
++
++
++ CLOCALE_H=config/locale/uclibc/c_locale.h
++ CLOCALE_CC=config/locale/uclibc/c_locale.cc
++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
++ CMESSAGES_H=config/locale/uclibc/messages_members.h
++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
++ CMONEY_CC=config/locale/uclibc/monetary_members.cc
++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
++ CTIME_H=config/locale/uclibc/time_members.h
++ CTIME_CC=config/locale/uclibc/time_members.cc
++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
++ ;;
+ esac
+
+ # This is where the testsuite looks for locale catalogs, using the
+--- gcc/libstdc++-v3/include/c_compatibility/wchar.h
++++ gcc/libstdc++-v3/include/c_compatibility/wchar.h
+@@ -101,7 +101,9 @@
+ using std::wmemcpy;
+ using std::wmemmove;
+ using std::wmemset;
++#if _GLIBCXX_HAVE_WCSFTIME
+ using std::wcsftime;
++#endif
+
+ #if _GLIBCXX_USE_C99
+ using std::wcstold;
+--- gcc/libstdc++-v3/include/c_std/std_cwchar.h
++++ gcc/libstdc++-v3/include/c_std/std_cwchar.h
+@@ -182,7 +182,9 @@
+ using ::wcscoll;
+ using ::wcscpy;
+ using ::wcscspn;
++#if _GLIBCXX_HAVE_WCSFTIME
+ using ::wcsftime;
++#endif
+ using ::wcslen;
+ using ::wcsncat;
+ using ::wcsncmp;
diff --git a/packages/gcc/gcc-4.2.0/300-libstdc++-pic.patch b/packages/gcc/gcc-4.2.0/300-libstdc++-pic.patch
new file mode 100644
index 0000000000..89d03a85e5
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/300-libstdc++-pic.patch
@@ -0,0 +1,46 @@
+# DP: Build and install libstdc++_pic.a library.
+
+--- gcc-4.1.0/libstdc++-v3/src/Makefile.am 2004-11-15 17:33:05.000000000 -0600
++++ gcc-4.1.0-patched/libstdc++-v3/src/Makefile.am 2005-04-25 20:05:59.186930896 -0500
+@@ -214,6 +214,10 @@
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+
+
++install-exec-local:
++ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
++
+ # Added bits to build debug library.
+ if GLIBCXX_BUILD_DEBUG
+ all-local: build_debug
+--- gcc-4.1.0/libstdc++-v3/src/Makefile.in 2005-04-11 19:13:08.000000000 -0500
++++ gcc-4.1.0-patched/libstdc++-v3/src/Makefile.in 2005-04-25 20:12:33.284316275 -0500
+@@ -627,7 +627,7 @@
+
+ install-data-am: install-data-local
+
+-install-exec-am: install-toolexeclibLTLIBRARIES
++install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
+
+ install-info: install-info-am
+
+@@ -660,6 +660,7 @@
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-exec \
++ install-exec-local \
+ install-exec-am install-info install-info-am install-man \
+ install-strip install-toolexeclibLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+@@ -745,6 +746,11 @@
+ install_debug:
+ (cd ${debugdir} && $(MAKE) \
+ toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
++
++install-exec-local:
++ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
++
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff --git a/packages/gcc/gcc-4.2.0/301-missing-execinfo_h.patch b/packages/gcc/gcc-4.2.0/301-missing-execinfo_h.patch
new file mode 100644
index 0000000000..0e2092f3fb
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/301-missing-execinfo_h.patch
@@ -0,0 +1,11 @@
+--- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500
++++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500
+@@ -500,7 +500,7 @@
+ #ifdef __linux__
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+- && !defined(__ia64__)
++ && !defined(__ia64__) && !defined(__UCLIBC__)
+ # ifndef GC_HAVE_BUILTIN_BACKTRACE
+ # define GC_HAVE_BUILTIN_BACKTRACE
+ # endif
diff --git a/packages/gcc/gcc-4.2.0/302-c99-snprintf.patch b/packages/gcc/gcc-4.2.0/302-c99-snprintf.patch
new file mode 100644
index 0000000000..dfb22d681b
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/302-c99-snprintf.patch
@@ -0,0 +1,11 @@
+--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig 2005-04-29 00:08:41.000000000 -0500
++++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h 2005-04-29 00:08:45.000000000 -0500
+@@ -142,7 +142,7 @@
+ using ::vsprintf;
+ }
+
+-#if _GLIBCXX_USE_C99
++#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
+
+ #undef snprintf
+ #undef vfscanf
diff --git a/packages/gcc/gcc-4.2.0/303-c99-complex-ugly-hack.patch b/packages/gcc/gcc-4.2.0/303-c99-complex-ugly-hack.patch
new file mode 100644
index 0000000000..2ccc80d9bb
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/303-c99-complex-ugly-hack.patch
@@ -0,0 +1,12 @@
+--- gcc-4.0.0/libstdc++-v3/configure-old 2005-04-30 22:04:48.061603912 -0500
++++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 22:06:13.678588152 -0500
+@@ -7194,6 +7194,9 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ #include <complex.h>
++#ifdef __UCLIBC__
++#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
++#endif
+ int
+ main ()
+ {
diff --git a/packages/gcc/gcc-4.2.0/304-index_macro.patch b/packages/gcc/gcc-4.2.0/304-index_macro.patch
new file mode 100644
index 0000000000..d8e476555d
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/304-index_macro.patch
@@ -0,0 +1,24 @@
+--- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps 2006-03-24 01:49:51 +0100
++++ gcc-4.1.0/libstdc++-v3/include/ext/rope 2006-03-24 01:49:37 +0100
+@@ -59,6 +59,9 @@
+ #include <bits/allocator.h>
+ #include <ext/hash_fun.h>
+
++/* cope w/ index defined as macro, SuSv3 proposal */
++#undef index
++
+ # ifdef __GC
+ # define __GC_CONST const
+ # else
+--- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps 2006-03-24 01:50:04 +0100
++++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h 2006-03-24 01:50:28 +0100
+@@ -53,6 +53,9 @@
+ #include <ext/memory> // For uninitialized_copy_n
+ #include <ext/numeric> // For power
+
++/* cope w/ index defined as macro, SuSv3 proposal */
++#undef index
++
+ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
+ using std::size_t;
diff --git a/packages/gcc/gcc-4.2.0/602-sdk-libstdc++-includes.patch b/packages/gcc/gcc-4.2.0/602-sdk-libstdc++-includes.patch
new file mode 100644
index 0000000000..23fce7544d
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/602-sdk-libstdc++-includes.patch
@@ -0,0 +1,20 @@
+--- gcc-4.1.0/libstdc++-v3/fragment.am 2005-03-21 11:40:14.000000000 -0600
++++ gcc-4.1.0-patched/libstdc++-v3/fragment.am 2005-04-25 20:14:39.856251785 -0500
+@@ -21,5 +21,5 @@
+ $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
+
+ # -I/-D flags to pass when compiling.
+-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
++AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
+
+--- gcc-4.1.0/libstdc++-v3/libmath/Makefile.am 2005-03-21 11:40:18.000000000 -0600
++++ gcc-4.1.0-patched/libstdc++-v3/libmath/Makefile.am 2005-04-25 20:14:39.682280735 -0500
+@@ -35,7 +35,7 @@
+
+ libmath_la_SOURCES = stubs.c
+
+-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
++AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
+
+ # Only compiling "C" sources in this directory.
+ LIBTOOL = @LIBTOOL@ --tag CC
diff --git a/packages/gcc/gcc-4.2.0/740-sh-pr24836.patch b/packages/gcc/gcc-4.2.0/740-sh-pr24836.patch
new file mode 100644
index 0000000000..7992282cff
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/740-sh-pr24836.patch
@@ -0,0 +1,25 @@
+http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
+
+--- gcc/gcc/configure.ac (revision 106699)
++++ gcc/gcc/configure.ac (working copy)
+@@ -2446,7 +2446,7 @@
+ tls_first_minor=14
+ tls_as_opt="-m64 -Aesame --fatal-warnings"
+ ;;
+- sh-*-* | sh[34]-*-*)
++ sh-*-* | sh[34]*-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+ foo: .long 25
+--- gcc/gcc/configure
++++ gcc/gcc/configure
+@@ -14846,7 +14846,7 @@
+ tls_first_minor=14
+ tls_as_opt="-m64 -Aesame --fatal-warnings"
+ ;;
+- sh-*-* | sh[34]-*-*)
++ sh-*-* | sh[34]*-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+ foo: .long 25
diff --git a/packages/gcc/gcc-4.2.0/800-arm-bigendian.patch b/packages/gcc/gcc-4.2.0/800-arm-bigendian.patch
new file mode 100644
index 0000000000..07c6093379
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/800-arm-bigendian.patch
@@ -0,0 +1,67 @@
+By Lennert Buytenhek <buytenh@wantstofly.org>
+Adds support for arm*b-linux* big-endian ARM targets
+
+See http://gcc.gnu.org/PR16350
+
+--- gcc-4.2.0/gcc/config/arm/linux-elf.h
++++ gcc-4.2.0/gcc/config/arm/linux-elf.h
+@@ -28,19 +28,33 @@
+ #undef TARGET_VERSION
+ #define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
+
++/*
++ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
++ * (big endian) configurations.
++ */
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
++#define TARGET_ENDIAN_OPTION "mbig-endian"
++#define TARGET_LINKER_EMULATION "armelfb_linux"
++#else
++#define TARGET_ENDIAN_DEFAULT 0
++#define TARGET_ENDIAN_OPTION "mlittle-endian"
++#define TARGET_LINKER_EMULATION "armelf_linux"
++#endif
++
+ #undef TARGET_DEFAULT_FLOAT_ABI
+ #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
+
+ #undef TARGET_DEFAULT
+-#define TARGET_DEFAULT (0)
++#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
+
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
+
+-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
++#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
+
+ #undef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
++ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
+
+ /* Now we define the strings used to build the spec file. */
+ #undef LIB_SPEC
+@@ -61,7 +75,7 @@
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
+ -X \
+- %{mbig-endian:-EB}" \
++ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
+ SUBTARGET_EXTRA_LINK_SPEC
+
+ #undef LINK_SPEC
+--- gcc-4.2.0/gcc/config.gcc.orig 2006-09-22 14:53:41.000000000 +0200
++++ gcc-4.2.0/gcc/config.gcc 2006-09-25 10:45:21.000000000 +0200
+@@ -696,6 +696,11 @@
+ tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
+ tmake_file="${tmake_file} t-linux arm/t-arm"
+ case ${target} in
++ arm*b-*)
++ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
++ ;;
++ esac
++ case ${target} in
+ arm*-*-linux-*eabi)
+ tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
+ tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
diff --git a/packages/gcc/gcc-4.2.0/801-arm-bigendian-eabi.patch b/packages/gcc/gcc-4.2.0/801-arm-bigendian-eabi.patch
new file mode 100644
index 0000000000..54490fc24f
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/801-arm-bigendian-eabi.patch
@@ -0,0 +1,14 @@
+Index: gcc-4.1.1/gcc/config/arm/linux-eabi.h
+===================================================================
+--- gcc-4.1.1.orig/gcc/config/arm/linux-eabi.h 2007-02-20 14:51:33.416193250 +0100
++++ gcc-4.1.1/gcc/config/arm/linux-eabi.h 2007-02-20 14:52:11.622581000 +0100
+@@ -48,7 +48,8 @@
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
+
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
++#define SUBTARGET_EXTRA_LINK_SPEC \
++ " %{mbig-endian:-m armelfb_linux_eabi} %{mlittle-endian:-m armelf_linux_eabi} "
+
+ /* Use ld-linux.so.3 so that it will be possible to run "classic"
+ GNU/Linux binaries on an EABI system. */
diff --git a/packages/gcc/gcc-4.2.0/README b/packages/gcc/gcc-4.2.0/README
new file mode 100644
index 0000000000..b85840dc20
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/README
@@ -0,0 +1,4 @@
+The numbered patches come from
+http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/gcc/4.1.1/
+Other patches are locally added to fix things (mostly inherited and reapplied
+from gcc 3.4.4 where applicable)
diff --git a/packages/gcc/gcc-4.2.0/arm-nolibfloat.patch b/packages/gcc/gcc-4.2.0/arm-nolibfloat.patch
new file mode 100644
index 0000000000..c4897c0330
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/arm-nolibfloat.patch
@@ -0,0 +1,24 @@
+# Dimitry Andric <dimitry@andric.com>, 2004-05-01
+#
+# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
+# anymore. (The required functions are now in libgcc.)
+#
+# Fixes errors like
+# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
+# collect2: ld returned 1 exit status
+# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
+# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
+
+Index: gcc-4.0.2/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-4.0.2.orig/gcc/config/arm/linux-elf.h 2005-03-04 16:14:01.000000000 +0000
++++ gcc-4.0.2/gcc/config/arm/linux-elf.h 2005-11-11 18:02:54.000000000 +0000
+@@ -56,7 +56,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/gcc-4.2.0/arm-softfloat.patch b/packages/gcc/gcc-4.2.0/arm-softfloat.patch
new file mode 100644
index 0000000000..c86c83ed15
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/arm-softfloat.patch
@@ -0,0 +1,16 @@
+Index: gcc-4.0.2/gcc/config/arm/t-linux
+===================================================================
+--- gcc-4.0.2.orig/gcc/config/arm/t-linux 2004-05-15 12:41:35.000000000 +0000
++++ gcc-4.0.2/gcc/config/arm/t-linux 2005-11-11 16:07:53.000000000 +0000
+@@ -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 _floatdidf _floatdisf
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
diff --git a/packages/gcc/gcc-4.2.0/arm-thumb-cache.patch b/packages/gcc/gcc-4.2.0/arm-thumb-cache.patch
new file mode 100644
index 0000000000..fa63846c8c
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/arm-thumb-cache.patch
@@ -0,0 +1,29 @@
+--- gcc-4.1.1/gcc/config/arm/linux-gas.h- 2005-06-25 03:22:41.000000000 +0200
++++ gcc-4.1.1/gcc/config/arm/linux-gas.h 2006-06-18 10:23:46.000000000 +0200
+@@ -44,6 +44,7 @@
+
+ /* Clear the instruction cache from `beg' to `end'. This makes an
+ inline system call to SYS_cacheflush. */
++#if !defined(__thumb__)
+ #define CLEAR_INSN_CACHE(BEG, END) \
+ { \
+ register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
+@@ -53,3 +54,18 @@
+ : "=r" (_beg) \
+ : "0" (_beg), "r" (_end), "r" (_flg)); \
+ }
++#else
++#define CLEAR_INSN_CACHE(BEG, END) \
++{ \
++ register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
++ register unsigned long _end __asm ("a2") = (unsigned long) (END); \
++ register unsigned long _flg __asm ("a3") = 0; \
++ register unsigned long _swi __asm ("a4") = 0xf0002; \
++ __asm __volatile ("push {r7}\n" \
++ " mov r7,a4\n" \
++ " swi 0 @ sys_cacheflush\n" \
++ " pop {r7}\n" \
++ : "=r" (_beg) \
++ : "0" (_beg), "r" (_end), "r" (_flg), "r" (_swi)); \
++}
++#endif
diff --git a/packages/gcc/gcc-4.2.0/arm-thumb.patch b/packages/gcc/gcc-4.2.0/arm-thumb.patch
new file mode 100644
index 0000000000..69e2f68cf2
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/arm-thumb.patch
@@ -0,0 +1,64 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- gcc-4.1.1/gcc/config/arm/lib1funcs.asm~gcc
++++ gcc-4.1.1/gcc/config/arm/lib1funcs.asm
+@@ -995,10 +995,24 @@
+ .code 32
+ FUNC_START div0
+
++#if ! defined __thumb__
+ stmfd sp!, {r1, lr}
+ mov r0, #SIGFPE
+ bl SYM(raise) __PLT__
+ RETLDM r1
++#else
++ push {r1, lr}
++ mov r0, #SIGFPE
++ bl SYM(raise) __PLT__
++#if __ARM_ARCH__ > 4
++ pop {r1, pc}
++#else
++ @ on 4T that won't work
++ pop {r1}
++ pop {r3}
++ bx r3
++#endif
++#endif
+
+ FUNC_END div0
+
+@@ -1141,11 +1155,12 @@
+ code here switches to the correct mode before executing the function. */
+
+ .text
+- .align 0
++ .align 1
+ .force_thumb
+
+ .macro call_via register
+ THUMB_FUNC_START _call_via_\register
++ .hidden SYM (_call_via_\register)
+
+ bx \register
+ nop
+@@ -1242,6 +1257,7 @@
+ .code 16
+
+ THUMB_FUNC_START _interwork_call_via_\register
++ .hidden SYM (_interwork_call_via_\register)
+
+ bx pc
+ nop
+--- gcc-4.1.1/gcc/config/arm/t-linux~gcc
++++ gcc-4.1.1/gcc/config/arm/t-linux
+@@ -7,6 +7,7 @@
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
++ _call_via_rX \
+ _fixsfsi _fixunssfsi _floatdidf _floatdisf
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
diff --git a/packages/gcc/gcc-4.2.0/cache-amnesia.patch b/packages/gcc/gcc-4.2.0/cache-amnesia.patch
new file mode 100644
index 0000000000..ef7cd111c5
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/cache-amnesia.patch
@@ -0,0 +1,13 @@
+diff --git a/gcc/configure b/gcc/configure
+index 44620ab..6e1830c 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -12272,7 +12272,7 @@ else
+ esac
+ saved_CFLAGS="${CFLAGS}"
+ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+- ${realsrcdir}/configure \
++ CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
+ --enable-languages=${enable_languages-all} \
+ --target=$target_alias --host=$build_alias --build=$build_alias
+ CFLAGS="${saved_CFLAGS}"
diff --git a/packages/gcc/gcc-4.2.0/fix-ICE-in-arm_unwind_emit_set.diff b/packages/gcc/gcc-4.2.0/fix-ICE-in-arm_unwind_emit_set.diff
new file mode 100644
index 0000000000..568e15abff
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/fix-ICE-in-arm_unwind_emit_set.diff
@@ -0,0 +1,18 @@
+--- trunk/gcc/config/arm/arm.c 2006/09/19 13:18:27 117055
++++ trunk/gcc/config/arm/arm.c 2006/09/19 13:19:24 117056
+@@ -15415,6 +15415,15 @@
+ /* Move from sp to reg. */
+ asm_fprintf (asm_out_file, "\t.movsp %r\n", REGNO (e0));
+ }
++ else if (GET_CODE (e1) == PLUS
++ && GET_CODE (XEXP (e1, 0)) == REG
++ && REGNO (XEXP (e1, 0)) == SP_REGNUM
++ && GET_CODE (XEXP (e1, 1)) == CONST_INT)
++ {
++ /* Set reg to offset from sp. */
++ asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n",
++ REGNO (e0), (int)INTVAL(XEXP (e1, 1)));
++ }
+ else
+ abort ();
+ break;
diff --git a/packages/gcc/gcc-4.2.0/gcc41-configure.in.patch b/packages/gcc/gcc-4.2.0/gcc41-configure.in.patch
new file mode 100644
index 0000000000..3d33bcb978
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/gcc41-configure.in.patch
@@ -0,0 +1,22 @@
+--- gcc-3.4.4/configure.in.orig 2005-08-09 19:57:51.504323183 -0700
++++ gcc-3.4.4/configure.in 2005-08-09 20:00:12.073168623 -0700
+@@ -1907,7 +1907,7 @@
+ *) gxx_include_dir=${with_gxx_include_dir} ;;
+ esac
+
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
+--- gcc-3.4.4/configure.orig 2005-08-09 21:02:29.668360660 -0700
++++ gcc-3.4.4/configure 2005-08-09 21:02:50.157649970 -0700
+@@ -2669,7 +2669,7 @@
+ *) gxx_include_dir=${with_gxx_include_dir} ;;
+ esac
+
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
diff --git a/packages/gcc/gcc-4.2.0/ldflags.patch b/packages/gcc/gcc-4.2.0/ldflags.patch
new file mode 100644
index 0000000000..9576f60778
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/ldflags.patch
@@ -0,0 +1,22 @@
+--- /tmp/Makefile.in 2006-02-23 20:56:01.399758728 +0100
++++ gcc-4.1-20060217/Makefile.in 2006-02-23 20:56:16.874406224 +0100
+@@ -334,7 +334,7 @@
+ CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+-LDFLAGS_FOR_TARGET =
++LDFLAGS_FOR_TARGET = @LDFLAGS@
+ PICFLAG_FOR_TARGET =
+
+ # ------------------------------------
+--- /tmp/Makefile.tpl 2006-02-23 20:50:34.077519272 +0100
++++ gcc-4.1-20060217/Makefile.tpl 2006-02-23 21:04:31.092273688 +0100
+@@ -337,7 +337,7 @@
+ CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+-LDFLAGS_FOR_TARGET =
++LDFLAGS_FOR_TARGET = @LDFLAGS@
+ PICFLAG_FOR_TARGET =
+
+ # ------------------------------------
diff --git a/packages/gcc/gcc-4.2.0/sdk-libstdc++-includes.patch b/packages/gcc/gcc-4.2.0/sdk-libstdc++-includes.patch
new file mode 100644
index 0000000000..4377c2143b
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/sdk-libstdc++-includes.patch
@@ -0,0 +1,22 @@
+--- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~ 2003-08-27 22:29:42.000000000 +0100
++++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am 2004-07-22 16:41:45.152130128 +0100
+@@ -32,7 +32,7 @@
+
+ libmath_la_SOURCES = stubs.c
+
+-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
++AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
+
+ # Only compiling "C" sources in this directory.
+ LIBTOOL = @LIBTOOL@ --tag CC
+--- gcc-3.4.1/libstdc++-v3/fragment.am.old 2004-07-22 18:24:58.024083656 +0100
++++ gcc-3.4.1/libstdc++-v3/fragment.am 2004-07-22 18:24:59.019932264 +0100
+@@ -18,7 +18,7 @@
+ $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
+
+ # -I/-D flags to pass when compiling.
+-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
++AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
+
+
+
diff --git a/packages/gcc/gcc-4.2.0/sh3-installfix-fixheaders.patch b/packages/gcc/gcc-4.2.0/sh3-installfix-fixheaders.patch
new file mode 100644
index 0000000000..a06cd2e075
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/sh3-installfix-fixheaders.patch
@@ -0,0 +1,11 @@
+--- gcc-4.1.1/gcc/Makefile.in_orig 2007-01-31 21:24:23.000000000 +0000
++++ gcc-4.1.1/gcc/Makefile.in 2007-01-31 21:24:43.000000000 +0000
+@@ -3772,8 +3772,6 @@
+ $(INSTALL_SCRIPT) $(mkinstalldirs) \
+ $(DESTDIR)$(itoolsdir)/mkinstalldirs ; \
+ $(INSTALL_SCRIPT) $(srcdir)/fixproto $(DESTDIR)$(itoolsdir)/fixproto ; \
+- $(INSTALL_PROGRAM) build/fix-header$(build_exeext) \
+- $(DESTDIR)$(itoolsdir)/fix-header$(build_exeext) ; \
+ else :; fi
+ echo 'SYSTEM_HEADER_DIR="'"$(SYSTEM_HEADER_DIR)"'"' \
+ > $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
diff --git a/packages/gcc/gcc-4.2.0/unbreak-armv4t.patch b/packages/gcc/gcc-4.2.0/unbreak-armv4t.patch
new file mode 100644
index 0000000000..b3399abfdb
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/unbreak-armv4t.patch
@@ -0,0 +1,12 @@
+diff -urN gcc-4.1.1/gcc/config/arm/linux-eabi.h gcc-4.1.1-arm9tdmi/gcc/config/arm/linux-eabi.h
+--- gcc-4.1.1/gcc/config/arm/linux-eabi.h 2006-10-22 11:11:49.000000000 -0700
++++ gcc-4.1.1-arm9tdmi/gcc/config/arm/linux-eabi.h 2006-10-24 21:34:01.000000000 -0700
+@@ -45,7 +45,7 @@
+ The ARM10TDMI core is the default for armv5t, so set
+ SUBTARGET_CPU_DEFAULT to achieve this. */
+ #undef SUBTARGET_CPU_DEFAULT
+-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
+
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
diff --git a/packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch b/packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch
new file mode 100644
index 0000000000..6afb10d6ef
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch
@@ -0,0 +1,31 @@
+Index: gcc-4.0.2/gcc/c-incpath.c
+===================================================================
+--- gcc-4.0.2.orig/gcc/c-incpath.c 2005-01-23 16:05:27.000000000 +0100
++++ gcc-4.0.2/gcc/c-incpath.c 2006-05-15 21:23:02.000000000 +0200
+@@ -350,6 +350,26 @@
+ p->construct = 0;
+ p->user_supplied_p = user_supplied_p;
+
++#ifdef CROSS_COMPILE
++ /* A common error when cross compiling is including
++ host headers. This code below will try to fail fast
++ for cross compiling. Currently we consider /usr/include,
++ /opt/include and /sw/include as harmful. */
++ {
++ /* printf("Adding Path: %s\n", p->name ); */
++ if( strstr(p->name, "/usr/include" ) == p->name ) {
++ fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name);
++ abort();
++ } else if( strstr(p->name, "/sw/include") == p->name ) {
++ fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name);
++ abort();
++ } else if( strstr(p->name, "/opt/include") == p->name ) {
++ fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name);
++ abort();
++ }
++ }
++#endif
++
+ add_cpp_dir_path (p, chain);
+ }
+
diff --git a/packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch b/packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch
new file mode 100644
index 0000000000..42ec190600
--- /dev/null
+++ b/packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch
@@ -0,0 +1,12 @@
+Index: gcc-4.1.1/Makefile.in
+===================================================================
+--- gcc-4.1.1.orig/Makefile.in 2006-08-06 13:32:44.000000000 +0200
++++ gcc-4.1.1/Makefile.in 2006-08-06 13:32:46.000000000 +0200
+@@ -194,6 +194,7 @@
+ AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ CC="$(CC_FOR_TARGET)"; export CC; \
+ CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CPP="$(CC_FOR_TARGET) -E"; export CCP; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
diff --git a/packages/gcc/gcc-cross-initial_4.1.2.bb b/packages/gcc/gcc-cross-initial_4.1.2.bb
new file mode 100644
index 0000000000..1e23ef9330
--- /dev/null
+++ b/packages/gcc/gcc-cross-initial_4.1.2.bb
@@ -0,0 +1,30 @@
+require gcc-cross_${PV}.bb
+
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel']]}"
+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 \
+ --disable-libmudflap \
+ --disable-libssp \
+ --enable-languages=c \
+ --enable-target-optspace \
+ --program-prefix=${TARGET_PREFIX} \
+ ${@get_gcc_fpu_setting(bb, d)}"
+
+do_stage_prepend () {
+ mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}
+ ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/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/gcc-cross_4.2.0.bb b/packages/gcc/gcc-cross_4.2.0.bb
new file mode 100644
index 0000000000..9025a98f3c
--- /dev/null
+++ b/packages/gcc/gcc-cross_4.2.0.bb
@@ -0,0 +1,20 @@
+require gcc_${PV}.bb
+# path mangling, needed by the cross packaging
+require gcc-paths-cross.inc
+inherit cross
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
+# NOTE: split PR. If the main .oe changes something that affects its *build*
+# remember to increment this one too.
+PR = "r1"
+
+DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
+
+# cross build
+require gcc3-build-cross.inc
+# cross packaging
+require gcc-package-cross.inc
+
+SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
+
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR}/${BUILD_SYS}"
diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb
index 417909eb1b..2557a2694e 100644
--- a/packages/gcc/gcc_4.1.2.bb
+++ b/packages/gcc/gcc_4.1.2.bb
@@ -29,6 +29,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 \
file://zecke-xgcc-cpp.patch;patch=1 \
file://unbreak-armv4t.patch;patch=1 \
file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \
+ file://cache-amnesia.patch;patch=1 \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
@@ -45,6 +46,7 @@ JAVA = ""
LANGUAGES = "c,c++${FORTRAN}${JAVA}"
require gcc3-build.inc
+ARCH_FLAGS_FOR_TARGET=-isystem${STAGING_INCDIR}
EXTRA_OECONF += " --disable-libssp "
diff --git a/packages/gcc/gcc_4.2.0.bb b/packages/gcc/gcc_4.2.0.bb
new file mode 100644
index 0000000000..b5c4b3c936
--- /dev/null
+++ b/packages/gcc/gcc_4.2.0.bb
@@ -0,0 +1,52 @@
+PR = "r0"
+DESCRIPTION = "The GNU cc and gcc C compilers."
+HOMEPAGE = "http://www.gnu.org/software/gcc/"
+SECTION = "devel"
+LICENSE = "GPL"
+
+inherit autotools gettext
+
+require gcc-package.inc
+
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
+ file://100-uclibc-conf.patch;patch=1 \
+ file://200-uclibc-locale.patch;patch=1 \
+ file://300-libstdc++-pic.patch;patch=1 \
+ file://301-missing-execinfo_h.patch;patch=1 \
+ file://302-c99-snprintf.patch;patch=1 \
+ file://303-c99-complex-ugly-hack.patch;patch=1 \
+ file://304-index_macro.patch;patch=1 \
+ file://602-sdk-libstdc++-includes.patch;patch=1 \
+ file://740-sh-pr24836.patch;patch=1 \
+ file://800-arm-bigendian.patch;patch=1 \
+ file://arm-nolibfloat.patch;patch=1 \
+ file://arm-softfloat.patch;patch=1 \
+ file://gcc41-configure.in.patch;patch=1 \
+ file://arm-thumb.patch;patch=1 \
+ file://arm-thumb-cache.patch;patch=1 \
+ file://ldflags.patch;patch=1 \
+ file://zecke-xgcc-cpp.patch;patch=1 \
+ file://unbreak-armv4t.patch;patch=1 \
+ file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \
+ file://cache-amnesia.patch;patch=1 \
+ "
+
+SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
+
+#Set the fortran bits
+# 'fortran' or '', not 'f77' like gcc3 had
+FORTRAN = ""
+HAS_GFORTRAN = "no"
+HAS_G2C = "no"
+
+#Set the java bits
+JAVA_arm = ""
+JAVA = ""
+
+LANGUAGES = "c,c++${FORTRAN}${JAVA}"
+require gcc3-build.inc
+ARCH_FLAGS_FOR_TARGET=-isystem${STAGING_INCDIR}
+
+
+EXTRA_OECONF += " --disable-libssp --disable-bootstrap "
+
diff --git a/packages/glibc/glibc-initial_2.6.bb b/packages/glibc/glibc-initial_2.6.bb
new file mode 100644
index 0000000000..0d4a79f2a4
--- /dev/null
+++ b/packages/glibc/glibc-initial_2.6.bb
@@ -0,0 +1,46 @@
+require glibc_${PV}.bb
+
+DEPENDS = "linux-libc-headers"
+PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+PACKAGES = ""
+
+do_configure () {
+ sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
+ chmod +x ${S}/configure
+ unset CFLAGS
+ CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ --without-cvs --disable-sanity-checks \
+ --with-headers=${CROSS_DIR}/${TARGET_SYS}/include \
+ --enable-hacker-mode
+ if grep -q GLIBC_2.3 ${S}/ChangeLog; then
+ # glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, which fails without a real cross-compiler.
+ # Fortunately, we don't need errlist-compat.c, since we just need .h files,
+ # so work around this by creating a fake errlist-compat.c and satisfying its dependencies.
+ # Another workaround might be to tell configure to not use any cross options to $(CC).
+ # The real fix would be to get install-headers to not generate errlist-compat.c.
+ make sysdeps/gnu/errlist.c
+ mkdir -p stdio-common
+ touch stdio-common/errlist-compat.c
+ fi
+}
+
+do_compile () {
+ :
+}
+
+do_stage () {
+ oe_runmake cross-compiling=yes install_root=${CROSS_DIR}/${TARGET_SYS} prefix="" install-headers
+
+ # Two headers -- stubs.h and features.h -- aren't installed by install-headers,
+ # so do them by hand. We can tolerate an empty stubs.h for the moment.
+ # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
+ mkdir -p ${CROSS_DIR}/${TARGET_SYS}/include/gnu
+ touch ${CROSS_DIR}/${TARGET_SYS}/include/gnu/stubs.h
+ cp ${S}/include/features.h ${CROSS_DIR}/${TARGET_SYS}/include/features.h
+}
+
+do_install () {
+ :
+}
diff --git a/packages/glibc/glibc-intermediate_2.6.bb b/packages/glibc/glibc-intermediate_2.6.bb
new file mode 100644
index 0000000000..7f34af2b0d
--- /dev/null
+++ b/packages/glibc/glibc-intermediate_2.6.bb
@@ -0,0 +1,18 @@
+require glibc_${PV}.bb
+
+do_install () {
+ :
+}
+
+# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
+do_configure_prepend() {
+ sed -i s:-Werror:: ${S}/configure
+}
+
+
+
+PACKAGES = ""
+PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
+GLIBC_ADDONS = "nptl,ports"
+GLIBC_EXTRA_OECONF = ""
diff --git a/packages/glibc/glibc-package.bbclass b/packages/glibc/glibc-package.bbclass
index 4bd4223657..ae6a085e74 100644
--- a/packages/glibc/glibc-package.bbclass
+++ b/packages/glibc/glibc-package.bbclass
@@ -175,10 +175,10 @@ python package_do_split_gconvs () {
bb.error("datadir not defined")
return
- gconv_libdir = os.path.join(libdir, "gconv")
- charmap_dir = os.path.join(datadir, "i18n", "charmaps")
- locales_dir = os.path.join(datadir, "i18n", "locales")
- binary_locales_dir = os.path.join(libdir, "locale")
+ gconv_libdir = base_path_join(libdir, "gconv")
+ charmap_dir = base_path_join(datadir, "i18n", "charmaps")
+ locales_dir = base_path_join(datadir, "i18n", "locales")
+ binary_locales_dir = base_path_join(libdir, "locale")
do_split_packages(d, gconv_libdir, file_regex='^(.*)\.so$', output_pattern='glibc-gconv-%s', description='gconv module for character set %s', extra_depends='glibc-gconv')
@@ -204,7 +204,7 @@ python package_do_split_gconvs () {
supported = bb.data.getVar('GLIBC_GENERATE_LOCALES', d, 1)
if not supported or supported == "all":
- f = open(os.path.join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
+ f = open(base_path_join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
supported = f.readlines()
f.close()
else:
@@ -257,9 +257,9 @@ python package_do_split_gconvs () {
bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
- treedir = os.path.join(bb.data.getVar("WORKDIR", d, 1), "locale-tree")
+ treedir = base_path_join(bb.data.getVar("WORKDIR", d, 1), "locale-tree")
path = bb.data.getVar("PATH", d, 1)
- i18npath = os.path.join(treedir, datadir, "i18n")
+ i18npath = base_path_join(treedir, datadir, "i18n")
localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, name)
cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, treedir, localedef_opts)
diff --git a/packages/glibc/glibc_2.6.bb b/packages/glibc/glibc_2.6.bb
new file mode 100644
index 0000000000..d4803fa5cc
--- /dev/null
+++ b/packages/glibc/glibc_2.6.bb
@@ -0,0 +1,204 @@
+require glibc.inc
+
+ARM_INSTRUCTION_SET = "arm"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev"
+
+PR = "r0"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_DIR}/${BUILD_SYS}/include"
+TARGET_CPPFLAGS = "-I${STAGING_DIR}/${TARGET_SYS}/include"
+
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
+
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+
+# file://noinfo.patch;patch=1
+# file://ldconfig.patch;patch=1;pnum=0
+# file://arm-machine-gmon.patch;patch=1;pnum=0 \
+# \
+# file://arm-ioperm.patch;patch=1;pnum=0 \
+# file://ldd.patch;patch=1;pnum=0 \
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
+ file://arm-memcpy.patch;patch=1 \
+ file://arm-longlong.patch;patch=1 \
+ file://fhs-linux-paths.patch;patch=1 \
+ file://dl-cache-libcmp.patch;patch=1 \
+ file://ldsocache-varrun.patch;patch=1 \
+ file://nptl-crosscompile.patch;patch=1 \
+ file://glibc-check_pf.patch;patch=1;pnum=0 \
+# file://glibc-2.4-compile.patch;patch=1 \
+# file://glibc-2.4-openat-3.patch;patch=1 \
+# file://fixup-aeabi-syscalls.patch;patch=1 \
+ file://zecke-sane-readelf.patch;patch=1 \
+ file://ldd-unbash.patch;patch=1 \
+ file://generic-bits_select.h \
+ file://generic-bits_types.h \
+ file://generic-bits_typesizes.h \
+ file://generic-bits_time.h \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk"
+
+
+# Build fails on sh3 and sh4 without additional patches
+SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
+SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
+
+#powerpc patches to add support for soft-float
+SRC_URI_append_powerpc= " file://ppc-sfp-machine.patch;patch=1 \
+ file://ppc-soft-fp-20070115.patch;patch=1 \
+ file://ppc-ld-nofpu-20070104.patch;patch=1 \
+ file://ppc-ports-ld-nofpu-20070114.patch;patch=1 \
+ file://powerpc-sqrt-hack.diff;patch=1""
+
+S = "${WORKDIR}/glibc-${PV}"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS} \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
+
+do_munge() {
+ # Integrate ports and libidn into tree
+ mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
+ mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
+
+ # Ports isn't really working... Fix it
+ # Some of this is rather dirty, but it seems to be the only
+ # quick way to get this cruft to compile
+ rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
+ cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
+ cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
+ cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
+ # Copy in generic stuff for not yet implemented headers
+ for i in ${S}/bits/*.h; do
+ F=`basename $i`
+ [ "$F" = "local_lim.h" ] && continue
+ [ "$F" = "errno.h" ] && continue
+ test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ done
+ # This is harmful; we need to get the one from nptl/sysdeps/pthreads
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
+ # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
+ # Obsoleted by sysdeps/gnu/bits/utmp.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
+}
+
+addtask munge before do_patch after do_unpack
+
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+do_stage() {
+ rm -f ${STAGING_LIBDIR}/libc.so.6
+ oe_runmake 'install_root=${STAGING_DIR}/${HOST_SYS}' \
+ 'includedir=/include' 'libdir=/lib' 'slibdir=/lib' \
+ '${STAGING_LIBDIR}/libc.so.6' \
+ install-headers install-lib
+
+ install -d ${STAGING_INCDIR}/gnu \
+ ${STAGING_INCDIR}/bits \
+ ${STAGING_INCDIR}/rpcsvc
+ install -m 0644 ${S}/include/gnu/stubs.h ${STAGING_INCDIR}/gnu/
+ install -m 0644 ${B}/bits/stdio_lim.h ${STAGING_INCDIR}/bits/
+ install -m 0644 misc/syscall-list.h ${STAGING_INCDIR}/bits/syscall.h
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/
+ done
+ for i in libc.a libc_pic.a libc_nonshared.a; do
+ install -m 0644 ${B}/$i ${STAGING_LIBDIR}/ || die "failed to install $i"
+ done
+ echo 'GROUP ( libpthread.so.0 libpthread_nonshared.a )' > ${STAGING_LIBDIR}/libpthread.so
+ echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${STAGING_LIBDIR}/libc.so
+
+ rm -f ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so.6
+ oe_runmake 'install_root=${CROSS_DIR}/${TARGET_SYS}' \
+ 'includedir=/include' 'libdir=/lib' 'slibdir=/lib' \
+ '${CROSS_DIR}/${TARGET_SYS}/lib/libc.so.6' \
+ install-headers install-lib
+
+ install -d ${CROSS_DIR}/${TARGET_SYS}/include/gnu \
+ ${CROSS_DIR}/${TARGET_SYS}/include/bits \
+ ${CROSS_DIR}/${TARGET_SYS}/include/rpcsvc
+ install -m 0644 ${S}/include/gnu/stubs.h ${CROSS_DIR}/${TARGET_SYS}/include/gnu/
+ install -m 0644 ${B}/bits/stdio_lim.h ${CROSS_DIR}/${TARGET_SYS}/include/bits/
+ install -m 0644 misc/syscall-list.h ${CROSS_DIR}/${TARGET_SYS}/include/bits/syscall.h
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ install -m 0644 ${S}/sunrpc/rpcsvc/$h ${CROSS_DIR}/${TARGET_SYS}/include/rpcsvc/
+ done
+
+ for i in libc.a libc_pic.a libc_nonshared.a; do
+ install -m 0644 ${B}/$i ${CROSS_DIR}/${TARGET_SYS}/lib/ || die "failed to install $i"
+ done
+ echo 'GROUP ( libpthread.so.0 libpthread_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libpthread.so
+ echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so
+}
+
+require glibc-package.bbclass
diff --git a/packages/icu/icu_3.6.bb b/packages/icu/icu_3.6.bb
index d67d565aa1..39162d2179 100644
--- a/packages/icu/icu_3.6.bb
+++ b/packages/icu/icu_3.6.bb
@@ -1,5 +1,7 @@
require icu-3.6.inc
+DEPENDS += "icu-native"
+
PR = "r1"
do_configure_append() {
diff --git a/packages/keylaunch/files/akita/keylaunchrc b/packages/keylaunch/files/akita/keylaunchrc
index 27cce24e93..a6c0f78b3b 100644
--- a/packages/keylaunch/files/akita/keylaunchrc
+++ b/packages/keylaunch/files/akita/keylaunchrc
@@ -1,5 +1,5 @@
-key=....F9:-:gpe-calendar
-key=....F10:-:gpe-contacts
+key=....F9:-:gpe-contacts
+key=....F10:-:gpe-calendar
key=....F13:-:sylpheed
key=....F12:-:~matchbox-remote -next
key=...*F12:-:~matchbox-remote -desktop
@@ -11,17 +11,17 @@ key=...*4:-:~display-brightness.sh up
# LCD Softkeys
# Please note that the space _between_ two softkeys can be used, too ;)
-#key=....F5:-:
-key=....F15:-:~matchbox-remote -next
-#key=....F6:-:
-key=....F16:-:sylpheed
-#key=....F7:-:
-key=....F17:-:gpe-contacts
-#key=....F8:-:
-key=....F18:-:gpe-calendar
-#key=....F19:-:
-#key=....F19:-:
-#key=....F10:-:
+#key=....F20:-:
+key=....F21:-:~matchbox-remote -next
+#key=....F22:-:
+key=....F23:-:sylpheed
+#key=....F24:-:
+key=....F25:-:gpe-contacts
+#key=....F26:-:
+key=....F27:-:gpe-calendar
+#key=....F28:-:
+#key=....F29:-:
+#key=....F30:-:
# VT changing
key=...*Left:-:~chvt 1
diff --git a/packages/keylaunch/files/spitz/keylaunchrc b/packages/keylaunch/files/spitz/keylaunchrc
index 433221a586..a6c0f78b3b 100644
--- a/packages/keylaunch/files/spitz/keylaunchrc
+++ b/packages/keylaunch/files/spitz/keylaunchrc
@@ -11,17 +11,17 @@ key=...*4:-:~display-brightness.sh up
# LCD Softkeys
# Please note that the space _between_ two softkeys can be used, too ;)
-#key=....F5:-:
-key=....F15:-:~matchbox-remote -next
-#key=....F6:-:
-key=....F16:-:sylpheed
-#key=....F7:-:
-key=....F17:-:gpe-contacts
-#key=....F8:-:
-key=....F18:-:gpe-calendar
-#key=....F19:-:
-#key=....F19:-:
-#key=....F10:-:
+#key=....F20:-:
+key=....F21:-:~matchbox-remote -next
+#key=....F22:-:
+key=....F23:-:sylpheed
+#key=....F24:-:
+key=....F25:-:gpe-contacts
+#key=....F26:-:
+key=....F27:-:gpe-calendar
+#key=....F28:-:
+#key=....F29:-:
+#key=....F30:-:
# VT changing
key=...*Left:-:~chvt 1
diff --git a/packages/keylaunch/keylaunch_2.0.10.bb b/packages/keylaunch/keylaunch_2.0.10.bb
index 8b6d2b5aa2..d1258b89db 100644
--- a/packages/keylaunch/keylaunch_2.0.10.bb
+++ b/packages/keylaunch/keylaunch_2.0.10.bb
@@ -1,7 +1,10 @@
inherit gpe
-DEPENDS = "virtual/xserver libxtst libxau libxpm libgpelaunch"
-RDEPENDS_append_openzaurus = " display-brightness"
+DEPENDS = "virtual/xserver libxtst libxau libxpm libgpelaunch display-brightness"
+
+RDEPENDS_append_spitz = " display-brightness"
+RDEPENDS_append_akita = " display-brightness"
+RDEPENDS_append_c7x0 = " display-brightness"
SECTION = "gpe"
LICENSE = "GPL"
@@ -12,7 +15,7 @@ DESCRIPTION = "A small utility for binding commands to a hot key.\
program is already running, keylaunch can bring its window to the front\
rather than just running another copy."
PACKAGE_ARCH = "${MACHINE_ARCH}"
-PR = "r7"
+PR = "r10"
SRC_URI += " file://keylaunchrc"
SRC_URI += " file://makefile-fix.patch;patch=1"
diff --git a/packages/lftp/lftp_3.5.1.bb b/packages/lftp/lftp_3.5.1.bb
index df184ae9ca..1390f0b22f 100644
--- a/packages/lftp/lftp_3.5.1.bb
+++ b/packages/lftp/lftp_3.5.1.bb
@@ -10,4 +10,8 @@ SRC_URI = "ftp://ftp.wiretapped.net/pub/mirrors/lftp/old/lftp-3.5.1.tar.bz2"
EXTRA_OECONF = "--disable-largefile --disable-rpath --with-included-readline=no"
+do_configure_prepend () {
+ rm ${S}/m4/iconv.m4
+}
+
inherit autotools gettext
diff --git a/packages/libhangul/.mtn2git_empty b/packages/libhangul/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libhangul/.mtn2git_empty
diff --git a/packages/libhangul/libhangul_0.0.4.bb b/packages/libhangul/libhangul_0.0.4.bb
new file mode 100644
index 0000000000..289dc33dc1
--- /dev/null
+++ b/packages/libhangul/libhangul_0.0.4.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "libhangul is a generalized and portable library for processing hangul (Korean)."
+HOMEPAGE = "http://kldp.net/projects/hangul/"
+SECTION = "x11/input"
+LICENSE = "GPL"
+DEPENDS = "gtk+ glib-2.0"
+PR = "r0"
+
+SRC_URI = "http://kldp.net/frs/download.php/3733/${PN}-${PV}.tar.gz"
+
+inherit autotools pkgconfig lib_package
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/packages/linux/linux-h6300-omap1_2.6.12-rc5.bb b/packages/linux/linux-h6300-omap1_2.6.12-rc5.bb
index 299d813964..58e85781a3 100644
--- a/packages/linux/linux-h6300-omap1_2.6.12-rc5.bb
+++ b/packages/linux/linux-h6300-omap1_2.6.12-rc5.bb
@@ -11,6 +11,8 @@ S = "${WORKDIR}/linux-2.6.12-rc5"
inherit kernel
+COMPATIBLE_MACHINE = "h6300"
+
do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
oe_runmake oldconfig
diff --git a/packages/linux/linux-h6300-omap1_2.6.14.3.bb b/packages/linux/linux-h6300-omap1_2.6.14.3.bb
index ea5aeeea1a..7726bad494 100644
--- a/packages/linux/linux-h6300-omap1_2.6.14.3.bb
+++ b/packages/linux/linux-h6300-omap1_2.6.14.3.bb
@@ -11,6 +11,8 @@ S = "${WORKDIR}/linux-2.6.14"
inherit kernel
+COMPATIBLE_MACHINE = "h6300"
+
do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
oe_runmake oldconfig
diff --git a/packages/linux/linux-h6300-omap1_2.6.16.16.bb b/packages/linux/linux-h6300-omap1_2.6.16.16.bb
index d1d82adde9..8b5f627846 100644
--- a/packages/linux/linux-h6300-omap1_2.6.16.16.bb
+++ b/packages/linux/linux-h6300-omap1_2.6.16.16.bb
@@ -12,6 +12,8 @@ S = "${WORKDIR}/linux-2.6.16"
inherit kernel
+COMPATIBLE_MACHINE = "h6300"
+
do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
oe_runmake oldconfig
diff --git a/packages/linux/linux-mtx-1_2.4.27.bb b/packages/linux/linux-mtx-1_2.4.27.bb
index 09916c9022..512f3ac14d 100644
--- a/packages/linux/linux-mtx-1_2.4.27.bb
+++ b/packages/linux/linux-mtx-1_2.4.27.bb
@@ -43,6 +43,7 @@ S = "${WORKDIR}/linux"
inherit kernel
+COMPATIBLE_MACHINE = "mtx-1"
COMPATIBLE_HOST = "mipsel.*-linux"
ARCH = "mips"
KERNEL_OUTPUT = "arch/mips/zboot/images/mtx-1.flash.bin"
diff --git a/packages/linux/linux-mtx-1u_2.4.27.bb b/packages/linux/linux-mtx-1u_2.4.27.bb
index 8ab1c5bbd1..00132f54cd 100644
--- a/packages/linux/linux-mtx-1u_2.4.27.bb
+++ b/packages/linux/linux-mtx-1u_2.4.27.bb
@@ -1,5 +1,7 @@
include linux-mtx-1_2.4.27.bb
+COMPATIBLE_MACHINE = "mtx-1u"
+
PR = "r11"
SRC_URI += "\
diff --git a/packages/linux/linux-mtx-2_2.4.27.bb b/packages/linux/linux-mtx-2_2.4.27.bb
index 9a64ebb492..29c938a5c4 100644
--- a/packages/linux/linux-mtx-2_2.4.27.bb
+++ b/packages/linux/linux-mtx-2_2.4.27.bb
@@ -51,6 +51,7 @@ S = "${WORKDIR}/linux"
inherit kernel
+COMPATIBLE_MACHINE = "mtx-2"
COMPATIBLE_HOST = "mipsel.*-linux"
ARCH = "mips"
KERNEL_OUTPUT = "arch/mips/zboot/images/mtx-2.flash.bin"
diff --git a/packages/linux/linux-mtx-3_2.6.15.bb b/packages/linux/linux-mtx-3_2.6.15.bb
index a5ea530425..178519d798 100644
--- a/packages/linux/linux-mtx-3_2.6.15.bb
+++ b/packages/linux/linux-mtx-3_2.6.15.bb
@@ -18,6 +18,7 @@ S = "${WORKDIR}/linux"
inherit kernel
+COMPATIBLE_MACHINE = "mtx-3"
COMPATIBLE_HOST = "arm.*-linux"
ARCH = "arm"
KERNEL_OUTPUT = "arch/arm/zboot/images/mtx-3.flash.bin"
diff --git a/packages/linux/linux-tornado-omap2_2.6.16.16.bb b/packages/linux/linux-tornado-omap2_2.6.16.16.bb
index 2115a275ef..f76442401f 100644
--- a/packages/linux/linux-tornado-omap2_2.6.16.16.bb
+++ b/packages/linux/linux-tornado-omap2_2.6.16.16.bb
@@ -12,6 +12,8 @@ S = "${WORKDIR}/linux-2.6.16"
inherit kernel
+COMPATIBLE_MACHINE = "htctornado"
+
do_configure() {
rm -f ${S}/.config
diff --git a/packages/mplayer/mplayer_0.0+1.0rc1.bb b/packages/mplayer/mplayer_0.0+1.0rc1.bb
index 2910cbd0a4..34fe1ac123 100644
--- a/packages/mplayer/mplayer_0.0+1.0rc1.bb
+++ b/packages/mplayer/mplayer_0.0+1.0rc1.bb
@@ -34,7 +34,7 @@ PACKAGE_ARCH_mencoder_collie = "collie"
RCONFLICTS_${PN} = "mplayer-atty"
RREPLACES_${PN} = "mplayer-atty"
-PR = "r12"
+PR = "r13"
PARALLEL_MAKE = ""
@@ -177,13 +177,24 @@ EXTRA_OECONF = " \
EXTRA_OECONF_append_arm = " --disable-decoder=vorbis_decoder \
--disable-encoder=vorbis_encoder"
-EXTRA_OECONF_append_c7x0 = " --enable-w100 --enable-imageon "
-EXTRA_OECONF_append_hx4700 = " --enable-imageon "
EXTRA_OECONF_append_progear = " --disable-sse --disable-3dnow --disable-mmxext --disable-sse2"
+
+#enable support for the ati imageon series (w100 and w3220)
+EXTRA_OECONF_append_c7x0 = " --enable-w100 "
+EXTRA_OECONF_append_hx4700 = " --enable-imageon "
+
+#enable pxa270 overlay support
EXTRA_OECONF_append_spitz = " --enable-pxa "
+EXTRA_OECONF_append_a780 = " --enable-pxa "
+#build with support for the iwmmxt instruction support (pxa270 and up)
TARGET_CC_ARCH_spitz = "-march=iwmmxt -mtune=iwmmxt"
PACKAGE_ARCH_spitz = "iwmmxt"
+TARGET_CC_ARCH_a780 = "-march=iwmmxt -mtune=iwmmxt"
+PACKAGE_ARCH_a780 = "iwmmxt"
+TARGET_CC_ARCH_hx4700 = "-march=iwmmxt -mtune=iwmmxt"
+PACKAGE_ARCH_hx4700= "iwmmxt"
+
do_configure() {
cp ${WORKDIR}/vo_w100.c ${S}/libvo
diff --git a/packages/nabi/.mtn2git_empty b/packages/nabi/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/nabi/.mtn2git_empty
diff --git a/packages/nabi/nabi_0.17.bb b/packages/nabi/nabi_0.17.bb
new file mode 100644
index 0000000000..d4a9e3b2f6
--- /dev/null
+++ b/packages/nabi/nabi_0.17.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Nabi is an easy and powerful GNU XIM"
+HOMEPAGE = "http://nabi.kldp.net/"
+SECTION = "x11/input"
+LICENSE = "GPL"
+DEPENDS = "gtk+ libhangul"
+
+SRC_URI = "http://kldp.net/frs/download.php/3742/${PN}-${PV}.tar.gz"
+
+inherit autotools pkgconfig
diff --git a/packages/openmoko-base/files/session b/packages/openmoko-base/files/session
index 1ac858f7b9..91b38a0bea 100644
--- a/packages/openmoko-base/files/session
+++ b/packages/openmoko-base/files/session
@@ -2,18 +2,16 @@
SHOWCURSOR="no"
-matchbox-desktop --icon-size 96 \
- --icon-padding 60 \
- --font sans-16 \
- --titlefont sans-20:bold \
- --bg img-tiled:/usr/share/themes/openmoko-standard/gtk-2.0/mokopanedwindow-upper-enclosing.png &
-# --bg col-gradient-vertical:#000000,#aaaaaa &
-matchbox-panel-2 --start-applets=openmoko-panel-mainmenu,showdesktop,systray,windowselector --end-applets=openmoko-panel-battery,openmoko-panel-clock,openmoko-panel-gsm &
+matchbox-panel-2 \
+ --start-applets=openmoko-panel-mainmenu,systray \
+ --end-applets=openmoko-panel-battery,openmoko-panel-gsm,openmoko-panel-gps,openmoko-panel-usb,openmoko-panel-bt,openmoko-panel-clock &
#start some old-style panel plugins to get a keyboard and battery status
mbinputmgr &
+mb-applet-startup-monitor &
openmoko-footer &
+openmoko-today --desktop &
openmoko-dialer &
exec matchbox-window-manager -use_titlebar no -use_cursor $SHOWCURSOR $@
diff --git a/packages/openmoko-base/openmoko-session_svn.bb b/packages/openmoko-base/openmoko-session_svn.bb
index 6daacb2842..18781493f6 100644
--- a/packages/openmoko-base/openmoko-session_svn.bb
+++ b/packages/openmoko-base/openmoko-session_svn.bb
@@ -1,8 +1,8 @@
DESCRIPTION = "Matchbox session files for OpenMoko"
SECTION = "openmoko/base"
-RDEPENDS = "matchbox-panel-2 matchbox-wm gconf matchbox-applet-startup-monitor gtk-theme-clearlooks"
+RDEPENDS = "matchbox-panel-2 matchbox-wm openmoko-today gconf matchbox-applet-startup-monitor gtk-theme-clearlooks"
PV = "0.0+svn${SRCDATE}"
-PR = "r9"
+PR = "r11"
inherit openmoko-base
diff --git a/packages/opie-multikey/files/ru.keymap b/packages/opie-multikey/files/ru.keymap
new file mode 100644
index 0000000000..9f5d1e360b
--- /dev/null
+++ b/packages/opie-multikey/files/ru.keymap
@@ -0,0 +1,255 @@
+# Created by Anton Kachalov (mouse@altlinux.ru)
+title = Russian
+sw = RU
+
+1 0x1000 0 2 # and you can write whatever you want after the last element
+
+
+ "9 9 2 1"
+ ". c None"
+ "a c #000000"
+ "........."
+ "........."
+ ".aa.aa.aa"
+ ".a..a..a."
+ ".aa.aa.a."
+ ".a...a.a."
+ ".aa.aa.aa"
+ "........."
+ "........."
+
+1 0 0x0451 2 # CYRILLIC SMALL LETTER IO
+1 0 0x31 2 # 1
+1 0 0x32 2 # 2
+1 0 0x33 2 # 3
+1 0 0x34 2 # 4
+1 0 0x35 2 # 5
+1 0 0x36 2 # 6
+1 0 0x37 2 # 7
+1 0 0x38 2 # 8
+1 0 0x39 2 # 9
+1 0 0x30 2 # 0
+1 0 0x2d 2 # -
+1 0 0x3d 2 # =
+1 0x1003 0 2
+
+ "9 9 2 1"
+ ". c None"
+ "a c #000000"
+ "........."
+ "........."
+ "...a....."
+ "..aa....."
+ ".aaaaaaaa"
+ "..aa....."
+ "...a....."
+ "........."
+ "........."
+
+
+2 0x1001 0x9 3 # tab char, but why doesnt this work...?
+
+
+ "11 9 2 1"
+ ". c None"
+ "a c #000000"
+ "..........."
+ "..........."
+ ".....a..a.."
+ ".....aa.a.."
+ ".aaaaaaaa.."
+ ".....aa.a.."
+ ".....a..a.."
+ "..........."
+ "..........."
+2 0 0x0439 2 # CYRILLIC SMALL LETTER SHORT I
+2 0 0x0446 2 # CYRILLIC SMALL LETTER TSE
+2 0 0x0443 2 # CYRILLIC SMALL LETTER U
+2 0 0x043a 2 # CYRILLIC SMALL LETTER KA
+2 0 0x0435 2 # CYRILLIC SMALL LETTER IE
+2 0 0x043d 2 # CYRILLIC SMALL LETTER EN
+2 0 0x0433 2 # CYRILLIC SMALL LETTER GHE
+2 0 0x0448 2 # CYRILLIC SMALL LETTER SHA
+2 0 0x0449 2 # CYRILLIC SMALL LETTER SHCHA
+2 0 0x0437 2 # CYRILLIC SMALL LETTER ZE
+2 0 0x0445 2 # CYRILLIC SMALL LETTER HA
+2 0 0x044a 2 # CYRILLIC SMALL LETTER HARD SIGN
+2 0 0x2f 4 # /
+
+3 0x1024 0 4
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . .. .. "
+ " . . . . . . "
+ " . ... .. . "
+ " . . . . . "
+ " .. . . . .. "
+ " "
+3 0 0x0444 2 # CYRILLIC SMALL LETTER EF
+3 0 0x044b 2 # CYRILLIC SMALL LETTER YERU
+3 0 0x0432 2 # CYRILLIC SMALL LETTER VE
+3 0 0x0430 2 # CYRILLIC SMALL LETTER A
+3 0 0x043f 2 # CYRILLIC SMALL LETTER PE
+3 0 0x0440 2 # CYRILLIC SMALL LETTER ER
+3 0 0x043e 2 # CYRILLIC SMALL LETTER O
+3 0 0x043b 2 # CYRILLIC SMALL LETTER EL
+3 0 0x0434 2 # CYRILLIC SMALL LETTER DE
+3 0 0x0436 2 # CYRILLIC SMALL LETTER ZHE
+3 0 0x044d 2 # CYRILLIC SMALL LETTER E
+3 0x1004 0 5 # ENTER
+ "16 9 2 1"
+ ". c None"
+ "a c #000000"
+ "................"
+ "................"
+ "...........a...."
+ "....aa.....a...."
+ "...aa......a...."
+ "..aaaaaaaaaa...."
+ "...aa..........."
+ "....aa.........."
+ "................"
+
+4 0x1020 0 5
+ "21 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . . ... ... ... "
+ " . . . . . . "
+ " . ... . .. . "
+ " . . . . . . "
+ " .. . . ... . . "
+ " "
+4 0 0x044f 2 # CYRILLIC SMALL LETTER YA
+4 0 0x0447 2 # CYRILLIC SMALL LETTER CHE
+4 0 0x0441 2 # CYRILLIC SMALL LETTER ES
+4 0 0x043c 2 # CYRILLIC SMALL LETTER EM
+4 0 0x0438 2 # CYRILLIC SMALL LETTER I
+4 0 0x0442 2 # CYRILLIC SMALL LETTER TE
+4 0 0x044c 2 # CYRILLIC SMALL LETTER SOFT SIGN
+4 0 0x0431 2 # CYRILLIC SMALL LETTER BE
+4 0 0x044e 2 # CYRILLIC SMALL LETTER YU
+4 0 0x2e 2 # .
+4 0x1020 0 5 # SHIFT
+ "21 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . . ... ... ... "
+ " . . . . . . "
+ " . ... . .. . "
+ " . . . . . . "
+ " .. . . ... . . "
+ " "
+
+5 0x1021 0 3
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. ... .. . "
+ " . . . . . "
+ " . . .. . "
+ " . . . . . "
+ " .. . . . ... "
+ " "
+5 0x1023 0 3
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . . ... "
+ " . . . . "
+ " ... . . "
+ " . . . . "
+ " . . ... . "
+ " "
+5 0 0x20 16
+5 0x1023 0 3
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . . ... "
+ " . . . . "
+ " ... . . "
+ " . . . . "
+ " . . ... . "
+ " "
+5 0x1021 0 3
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. ... .. . "
+ " . . . . . "
+ " . . .. . "
+ " . . . . . "
+ " .. . . . ... "
+ " "
+5 0x1030 0 2 #original code is F1, but i'll use it for turning on/off the config dialog
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . "
+ " ... "
+ " ..... "
+ " . "
+ " . "
+ " "
+
+# shift table
+0x0451 0x0401 # CYRILLIC SMALL LETTER IO -> CYRILLIC CAPITAL LETTER IO
+0x31 0x21 # 1 -> !
+0x32 0x22 # 2 -> "
+0x33 0x4e # 3 -> N
+0x34 0x3b # 4 -> ;
+0x35 0x25 # 5 -> %
+0x36 0x3a # 6 -> :
+0x37 0x3f # 7 -> ?
+0x38 0x2a # 8 -> *
+0x39 0x28 # 9 -> (
+0x30 0x29 # 0 -> )
+0x2d 0x5f # - -> _
+0x3d 0x2b # = -> +
+
+0x0439 0x0419 # CYRILLIC SMALL LETTER SHORT I -> CYRILLIC CAPITAL LETTER SHORT I
+0x0446 0x0426 # CYRILLIC SMALL LETTER TSE -> CYRILLIC CAPITAL LETTER TSE
+0x0443 0x0423 # CYRILLIC SMALL LETTER U -> CYRILLIC CAPITAL LETTER U
+0x043a 0x041a # CYRILLIC SMALL LETTER KA -> CYRILLIC CAPITAL LETTER KA
+0x0435 0x0415 # CYRILLIC SMALL LETTER IE -> CYRILLIC CAPITAL LETTER IE
+0x043d 0x041d # CYRILLIC SMALL LETTER EN -> CYRILLIC CAPITAL LETTER EN
+0x0433 0x0413 # CYRILLIC SMALL LETTER GHE -> CYRILLIC CAPITAL LETTER GHE
+0x0448 0x0428 # CYRILLIC SMALL LETTER SHA -> CYRILLIC CAPITAL LETTER SHA
+0x0449 0x0429 # CYRILLIC SMALL LETTER SHCHA -> CYRILLIC CAPITAL LETTER SHCHA
+0x0437 0x0417 # CYRILLIC SMALL LETTER ZE -> CYRILLIC CAPITAL LETTER ZE
+0x0445 0x0425 # CYRILLIC SMALL LETTER HA -> CYRILLIC CAPITAL LETTER HA
+0x044a 0x042a # CYRILLIC SMALL LETTER HARD SIGN -> CYRILLIC CAPITAL LETTER HARD SIGN
+
+0x0444 0x0424 # CYRILLIC SMALL LETTER EF -> CYRILLIC CAPITAL LETTER EF
+0x044b 0x042b # CYRILLIC SMALL LETTER YERU -> CYRILLIC CAPITAL LETTER YERU
+0x0432 0x0412 # CYRILLIC SMALL LETTER VE -> CYRILLIC CAPITAL LETTER VE
+0x0430 0x0410 # CYRILLIC SMALL LETTER A -> CYRILLIC CAPITAL LETTER A
+0x043f 0x041f # CYRILLIC SMALL LETTER PE -> CYRILLIC CAPITAL LETTER PE
+0x0440 0x0420 # CYRILLIC SMALL LETTER ER -> CYRILLIC CAPITAL LETTER ER
+0x043e 0x041e # CYRILLIC SMALL LETTER O -> CYRILLIC CAPITAL LETTER O
+0x043b 0x041b # CYRILLIC SMALL LETTER EL -> CYRILLIC CAPITAL LETTER EL
+0x0434 0x0414 # CYRILLIC SMALL LETTER DE -> CYRILLIC CAPITAL LETTER DE
+0x0436 0x0416 # CYRILLIC SMALL LETTER ZHE -> CYRILLIC CAPITAL LETTER ZHE
+0x044d 0x042d # CYRILLIC SMALL LETTER E -> CYRILLIC CAPITAL LETTER E
+
+0x044f 0x042f # CYRILLIC SMALL LETTER YA -> CYRILLIC CAPITAL LETTER YA
+0x0447 0x0427 # CYRILLIC SMALL LETTER CHE -> CYRILLIC CAPITAL LETTER CHE
+0x0441 0x0421 # CYRILLIC SMALL LETTER ES -> CYRILLIC CAPITAL LETTER ES
+0x043c 0x041c # CYRILLIC SMALL LETTER EM -> CYRILLIC CAPITAL LETTER EM
+0x0438 0x0418 # CYRILLIC SMALL LETTER I -> CYRILLIC CAPITAL LETTER I
+0x0442 0x0422 # CYRILLIC SMALL LETTER TE -> CYRILLIC CAPITAL LETTER TE
+0x044c 0x042c # CYRILLIC SMALL LETTER SOFT SIGN -> CYRILLIC CAPITAL LETTER SOFT SIGN
+0x0431 0x0411 # CYRILLIC SMALL LETTER BE -> CYRILLIC CAPITAL LETTER BE
+0x044e 0x042e # CYRILLIC SMALL LETTER YU -> CYRILLIC CAPITAL LETTER YU
+0x2f 0x7c # / -> |
+0x2e 0x2c # . -> ,
diff --git a/packages/opie-multikey/opie-multikey.inc b/packages/opie-multikey/opie-multikey.inc
index e936072b4c..9676111efa 100644
--- a/packages/opie-multikey/opie-multikey.inc
+++ b/packages/opie-multikey/opie-multikey.inc
@@ -32,5 +32,6 @@ do_install() {
install -d ${D}${palmtopdir}/share/multikey/
install -m 0644 ${WORKDIR}/share/multikey/*.keymap ${D}${palmtopdir}/share/multikey/
install -m 0644 ${WORKDIR}/share/multikey/README ${D}${palmtopdir}/share/multikey/
+ install -m 0644 ${FILESDIR}/ru.keymap ${D}${palmtopdir}/share/multikey/
}
diff --git a/packages/opie-reader/files/.mtn2git_empty b/packages/opie-reader/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/opie-reader/files/.mtn2git_empty
diff --git a/packages/opie-reader/files/opie-reader-unicode-copy.patch b/packages/opie-reader/files/opie-reader-unicode-copy.patch
new file mode 100644
index 0000000000..d7d1ae24bd
--- /dev/null
+++ b/packages/opie-reader/files/opie-reader-unicode-copy.patch
@@ -0,0 +1,11 @@
+--- opie-reader/QTReaderApp.cpp.orig 2005-05-18 00:48:25.000000000 +0200
++++ opie-reader/QTReaderApp.cpp 2006-04-08 15:55:43.000000000 +0200
+@@ -2558,7 +2558,7 @@
+ reader->jumpto(m_savedpos);
+ while (reader->explocate() < endpos && (ch = reader->getch()) != UEOF)
+ {
+- text += ch;
++ text += QChar(ch);
+ }
+ cb->setText(text);
+ reader->locate(currentpos);
diff --git a/packages/opie-reader/opie-reader_cvs.bb b/packages/opie-reader/opie-reader_cvs.bb
index 2f844d8dfd..82b3547ae1 100644
--- a/packages/opie-reader/opie-reader_cvs.bb
+++ b/packages/opie-reader/opie-reader_cvs.bb
@@ -1,8 +1,10 @@
require ${PN}.inc
PV = "${OPIE_CVS_PV}"
+PR = r1
SRC_URI = "${HANDHELDS_CVS};module=opie/noncore/apps/opie-reader \
${HANDHELDS_CVS};module=opie/pics \
- ${HANDHELDS_CVS};module=opie/apps"
+ ${HANDHELDS_CVS};module=opie/apps \
+ file://opie-reader-unicode-copy.patch;patch=1"
diff --git a/packages/perl/libalgorithm-diff-perl_1.1902.bb b/packages/perl/libalgorithm-diff-perl_1.1902.bb
index 947b1a1191..4adc4e81f0 100644
--- a/packages/perl/libalgorithm-diff-perl_1.1902.bb
+++ b/packages/perl/libalgorithm-diff-perl_1.1902.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-exporter perl-module-strict perl-module-vars \
perl-module-strict perl-module-vars"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TY/TYEMQ/Algorithm-Diff-${PV}.tar.gz"
diff --git a/packages/perl/libarchive-tar-perl_1.30.bb b/packages/perl/libarchive-tar-perl_1.30.bb
index 1c7a1d88c9..f9485a7548 100644
--- a/packages/perl/libarchive-tar-perl_1.30.bb
+++ b/packages/perl/libarchive-tar-perl_1.30.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS += "libio-zlib-perl-native"
RDEPENDS += "libio-zlib-perl"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/K/KA/KANE/Archive-Tar-${PV}.tar.gz"
diff --git a/packages/perl/libcache-cache-perl_1.05.bb b/packages/perl/libcache-cache-perl_1.05.bb
index 2a810b7815..60908ad648 100644
--- a/packages/perl/libcache-cache-perl_1.05.bb
+++ b/packages/perl/libcache-cache-perl_1.05.bb
@@ -4,7 +4,7 @@ LICENSE = "Artistic|GPL"
DEPENDS = "libdigest-sha1-perl-native liberror-perl-native \
libipc-sharelite-perl-native"
RDEPENDS = "libdigest-sha1-perl liberror-perl libipc-sharelite-perl"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DC/DCLINTON/Cache-Cache-${PV}.tar.gz"
diff --git a/packages/perl/libclass-container-perl_0.12.bb b/packages/perl/libclass-container-perl_0.12.bb
index 7122d83601..81b00f544a 100644
--- a/packages/perl/libclass-container-perl_0.12.bb
+++ b/packages/perl/libclass-container-perl_0.12.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "libparams-validate-perl-native"
RDEPENDS = "libparams-validate-perl"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/Class-Container-${PV}.tar.gz"
diff --git a/packages/perl/libclass-data-inheritable-perl_0.06.bb b/packages/perl/libclass-data-inheritable-perl_0.06.bb
index 837968f93a..6bb5c597ed 100644
--- a/packages/perl/libclass-data-inheritable-perl_0.06.bb
+++ b/packages/perl/libclass-data-inheritable-perl_0.06.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Class::Data::Inheritable - Inheritable, overridable class data"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TM/TMTM/Class-Data-Inheritable-${PV}.tar.gz"
diff --git a/packages/perl/libcompress-zlib-perl_1.42.bb b/packages/perl/libcompress-zlib-perl_1.42.bb
index 3447db0a5a..3326d961bf 100644
--- a/packages/perl/libcompress-zlib-perl_1.42.bb
+++ b/packages/perl/libcompress-zlib-perl_1.42.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Compress::Zlib - Interface to zlib compression library"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r8"
+PR = "r9"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Zlib-${PV}.tar.gz"
diff --git a/packages/perl/libdata-optlist-perl_0.101.bb b/packages/perl/libdata-optlist-perl_0.101.bb
index 2b3cc2a979..084a055329 100644
--- a/packages/perl/libdata-optlist-perl_0.101.bb
+++ b/packages/perl/libdata-optlist-perl_0.101.bb
@@ -4,7 +4,7 @@ LICENSE = "Artistic|GPL"
DEPENDS += "libsub-install-perl-native libparams-util-perl-native"
RDEPENDS += "perl-module-list-util libparams-util-perl perl-module-strict \
libsub-install-perl perl-module-warnings "
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Data-OptList-${PV}.tar.gz"
diff --git a/packages/perl/libdevel-stacktrace-perl_1.13.bb b/packages/perl/libdevel-stacktrace-perl_1.13.bb
index e5e3dcaada..fd1b290364 100644
--- a/packages/perl/libdevel-stacktrace-perl_1.13.bb
+++ b/packages/perl/libdevel-stacktrace-perl_1.13.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Devel::StackTrace - Stack trace and stack trace frame objects"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Devel-StackTrace-${PV}.tar.gz"
diff --git a/packages/perl/libdigest-sha1-perl_2.11.bb b/packages/perl/libdigest-sha1-perl_2.11.bb
index c851ec87c0..c6d629417f 100644
--- a/packages/perl/libdigest-sha1-perl_2.11.bb
+++ b/packages/perl/libdigest-sha1-perl_2.11.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Digest::SHA1 - Perl interface to the SHA-1 algorithm"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r12"
+PR = "r13"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-SHA1-${PV}.tar.gz"
diff --git a/packages/perl/liberror-perl_0.17004.bb b/packages/perl/liberror-perl_0.17004.bb
index a2ba120148..9e5b2b4d71 100644
--- a/packages/perl/liberror-perl_0.17004.bb
+++ b/packages/perl/liberror-perl_0.17004.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Error - Error/exception handling in an OO-ish way"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r6"
+PR = "r7"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PEVANS/Error-${PV}.tar.gz"
diff --git a/packages/perl/libexception-class-perl_1.23.bb b/packages/perl/libexception-class-perl_1.23.bb
index 62df7e58c6..b26af13d84 100644
--- a/packages/perl/libexception-class-perl_1.23.bb
+++ b/packages/perl/libexception-class-perl_1.23.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "libclass-data-inheritable-perl-native libdevel-stacktrace-perl-native"
RDEPENDS = "libclass-data-inheritable-perl libdevel-stacktrace-perl"
-PR = "r6"
+PR = "r7"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Exception-Class-${PV}.tar.gz"
diff --git a/packages/perl/libextutils-cbuilder-perl_0.18.bb b/packages/perl/libextutils-cbuilder-perl_0.18.bb
index d446c9934a..aedb04f707 100644
--- a/packages/perl/libextutils-cbuilder-perl_0.18.bb
+++ b/packages/perl/libextutils-cbuilder-perl_0.18.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "ExtUtils::CBuilder - Compile and link C code for Perl modules"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/ExtUtils-CBuilder-${PV}.tar.gz"
diff --git a/packages/perl/libextutils-depends-perl_0.205.bb b/packages/perl/libextutils-depends-perl_0.205.bb
index 274550dbd3..af4f6ffd8f 100644
--- a/packages/perl/libextutils-depends-perl_0.205.bb
+++ b/packages/perl/libextutils-depends-perl_0.205.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "ExtUtils::Depends - Easily build XS extensions that depend on XS extensions"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RM/RMCFARLA/Gtk2-Perl/ExtUtils-Depends-${PV}.tar.gz"
diff --git a/packages/perl/libextutils-parsexs-perl_2.16.bb b/packages/perl/libextutils-parsexs-perl_2.16.bb
index bf18dadd38..431b04127b 100644
--- a/packages/perl/libextutils-parsexs-perl_2.16.bb
+++ b/packages/perl/libextutils-parsexs-perl_2.16.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "ExtUtils::ParseXS - converts Perl XS code into C code"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/ExtUtils-ParseXS-${PV}.tar.gz"
diff --git a/packages/perl/libextutils-pkgconfig-perl_1.07.bb b/packages/perl/libextutils-pkgconfig-perl_1.07.bb
index e0b807f374..d023beac69 100644
--- a/packages/perl/libextutils-pkgconfig-perl_1.07.bb
+++ b/packages/perl/libextutils-pkgconfig-perl_1.07.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "ExtUtils::PkgConfig - simplistic interface to pkg-config"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RM/RMCFARLA/Gtk2-Perl/ExtUtils-PkgConfig-${PV}.tar.gz"
diff --git a/packages/perl/libhtml-mason-perl_1.35.bb b/packages/perl/libhtml-mason-perl_1.35.bb
index 7b6ede5d49..71e96005e8 100644
--- a/packages/perl/libhtml-mason-perl_1.35.bb
+++ b/packages/perl/libhtml-mason-perl_1.35.bb
@@ -10,7 +10,7 @@ RDEPENDS_${PN} = "libexception-class-perl libparams-validate-perl \
perl-module-exporter-heavy perl-module-cwd perl-module-scalar-util \
perl-module-list-util perl-module-bytes perl-module-file-glob \
perl-module-data-dumper"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/HTML-Mason-${PV}.tar.gz"
diff --git a/packages/perl/libintl-perl_1.16.bb b/packages/perl/libintl-perl_1.16.bb
index e987934c65..e7cebd7458 100644
--- a/packages/perl/libintl-perl_1.16.bb
+++ b/packages/perl/libintl-perl_1.16.bb
@@ -3,7 +3,7 @@ LICENSE = "Artistic|GPL"
RDEPENDS = "perl-module-vars perl-module-locale perl-module-io-handle \
perl-module-symbol perl-module-selectsaver perl-module-io \
perl-module-integer perl-module-exporter-heavy"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://www.cpan.org/authors/id/G/GU/GUIDO/libintl-perl-${PV}.tar.gz"
diff --git a/packages/perl/libio-zlib-perl_1.04.bb b/packages/perl/libio-zlib-perl_1.04.bb
index 1c99166e16..40292f1a95 100644
--- a/packages/perl/libio-zlib-perl_1.04.bb
+++ b/packages/perl/libio-zlib-perl_1.04.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "libcompress-zlib-perl-native"
RDEPENDS += "libcompress-zlib-perl"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TO/TOMHUGHES/IO-Zlib-${PV}.tar.gz"
diff --git a/packages/perl/libipc-sharelite-perl_0.09.bb b/packages/perl/libipc-sharelite-perl_0.09.bb
index 5c2f7fcae2..6cef180374 100644
--- a/packages/perl/libipc-sharelite-perl_0.09.bb
+++ b/packages/perl/libipc-sharelite-perl_0.09.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "IPC::ShareLite - Light-weight interface to shared memory"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r12"
+PR = "r13"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MAURICE/IPC-ShareLite-${PV}.tar.gz"
diff --git a/packages/perl/liblocale-gettext-perl_1.05.bb b/packages/perl/liblocale-gettext-perl_1.05.bb
index 621243cd8f..763a5680cf 100644
--- a/packages/perl/liblocale-gettext-perl_1.05.bb
+++ b/packages/perl/liblocale-gettext-perl_1.05.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Locale::gettext - message handling functions"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/libintl"
-PR = "r8"
+PR = "r9"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PV/PVANDRY/gettext-${PV}.tar.gz"
diff --git a/packages/perl/liblog-dispatch-perl_2.13.bb b/packages/perl/liblog-dispatch-perl_2.13.bb
index 85fdf7e616..ee4a2198c1 100644
--- a/packages/perl/liblog-dispatch-perl_2.13.bb
+++ b/packages/perl/liblog-dispatch-perl_2.13.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Log::Dispatch - Dispatches messages to one or more outputs"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Log-Dispatch-${PV}.tar.gz"
diff --git a/packages/perl/liblog-log4perl-perl_1.06.bb b/packages/perl/liblog-log4perl-perl_1.06.bb
index 16ec9f57f9..beecaad0fb 100644
--- a/packages/perl/liblog-log4perl-perl_1.06.bb
+++ b/packages/perl/liblog-log4perl-perl_1.06.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Log::Log4perl - Log4j implementation for Perl"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MS/MSCHILLI/Log-Log4perl-${PV}.tar.gz"
diff --git a/packages/perl/libmail-sendmail-perl_0.79.bb b/packages/perl/libmail-sendmail-perl_0.79.bb
index 1ed84fd150..b333c8239b 100644
--- a/packages/perl/libmail-sendmail-perl_0.79.bb
+++ b/packages/perl/libmail-sendmail-perl_0.79.bb
@@ -1,6 +1,6 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://www.cpan.org/modules/by-module/Mail/Mail-Sendmail-${PV}.tar.gz"
diff --git a/packages/perl/libmath-bigint-gmp-perl_1.18.bb b/packages/perl/libmath-bigint-gmp-perl_1.18.bb
index 3eb24eda10..6a0e91d00c 100644
--- a/packages/perl/libmath-bigint-gmp-perl_1.18.bb
+++ b/packages/perl/libmath-bigint-gmp-perl_1.18.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS += "gmp-native"
RDEPENDS += "gmp"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TE/TELS/math/Math-BigInt-GMP-${PV}.tar.gz"
diff --git a/packages/perl/libmodule-build-perl_0.2805.bb b/packages/perl/libmodule-build-perl_0.2805.bb
index ae7ac7e973..8a7ce9fa04 100644
--- a/packages/perl/libmodule-build-perl_0.2805.bb
+++ b/packages/perl/libmodule-build-perl_0.2805.bb
@@ -8,7 +8,7 @@ DEPENDS = "libyaml-perl-native libversion-perl-native \
libarchive-tar-perl-native"
RDEPENDS = "libyaml-perl libversion-perl libextutils-cbuilder-perl \
libextutils-parsexs-perl libarchive-tar-perl"
-PR = "r4"
+PR = "r5"
S = "${WORKDIR}/Module-Build-${PV}"
diff --git a/packages/perl/libnet-ip-perl_1.25.bb b/packages/perl/libnet-ip-perl_1.25.bb
index f51cc18fc7..351e96187e 100644
--- a/packages/perl/libnet-ip-perl_1.25.bb
+++ b/packages/perl/libnet-ip-perl_1.25.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS += "libio-zlib-perl-native"
RDEPENDS += "libio-zlib-perl perl-module-math-bigint"
-PR = "r4"
+PR = "r5"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MANU/Net-IP-${PV}.tar.gz"
diff --git a/packages/perl/libnetserver-generic-perl_1.03.bb b/packages/perl/libnetserver-generic-perl_1.03.bb
index 5b0ecb1800..c4153b8c4c 100644
--- a/packages/perl/libnetserver-generic-perl_1.03.bb
+++ b/packages/perl/libnetserver-generic-perl_1.03.bb
@@ -1,6 +1,6 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://www.cpan.org/modules/by-module/NetServer/NetServer-Generic-${PV}.tar.gz"
diff --git a/packages/perl/libparams-util-perl_0.20.bb b/packages/perl/libparams-util-perl_0.20.bb
index b6d1feabaf..ef5b6e186a 100644
--- a/packages/perl/libparams-util-perl_0.20.bb
+++ b/packages/perl/libparams-util-perl_0.20.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-exporter perl-module-overload \
perl-module-scalar-util perl-module-strict perl-module-vars"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Params-Util-${PV}.tar.gz"
diff --git a/packages/perl/libparams-validate-perl_0.86.bb b/packages/perl/libparams-validate-perl_0.86.bb
index db1a7bd812..52c23333e9 100644
--- a/packages/perl/libparams-validate-perl_0.86.bb
+++ b/packages/perl/libparams-validate-perl_0.86.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Params::Validate - Validate method/function parameters"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r12"
+PR = "r13"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Params-Validate-${PV}.tar.gz"
diff --git a/packages/perl/libperl6-junction-perl_1.10.bb b/packages/perl/libperl6-junction-perl_1.10.bb
index 81840b0b11..8cfef00670 100644
--- a/packages/perl/libperl6-junction-perl_1.10.bb
+++ b/packages/perl/libperl6-junction-perl_1.10.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Perl6::Junction - Perl6 style Junction operators in Perl5."
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/C/CF/CFRANKS/Perl6-Junction-${PV}.tar.gz"
diff --git a/packages/perl/libsub-exporter-perl_0.970.bb b/packages/perl/libsub-exporter-perl_0.970.bb
index b6ac2b17ee..44756601a2 100644
--- a/packages/perl/libsub-exporter-perl_0.970.bb
+++ b/packages/perl/libsub-exporter-perl_0.970.bb
@@ -5,7 +5,7 @@ DEPENDS += "libdata-optlist-perl-native libsub-install-perl-native \
libparams-util-perl-native"
RDEPENDS += "perl-module-carp libdata-optlist-perl libparams-util-perl \
perl-module-strict libsub-install-perl perl-module-warnings"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Exporter-${PV}.tar.gz"
diff --git a/packages/perl/libsub-install-perl_0.922.bb b/packages/perl/libsub-install-perl_0.922.bb
index 119094bf95..72bbfcc73b 100644
--- a/packages/perl/libsub-install-perl_0.922.bb
+++ b/packages/perl/libsub-install-perl_0.922.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-carp perl-module-scalar-util perl-module-strict \
perl-module-warnings"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Install-${PV}.tar.gz"
diff --git a/packages/perl/libsub-uplevel-perl_0.13.bb b/packages/perl/libsub-uplevel-perl_0.13.bb
index 38d3fcd593..032d924856 100644
--- a/packages/perl/libsub-uplevel-perl_0.13.bb
+++ b/packages/perl/libsub-uplevel-perl_0.13.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Sub::Uplevel - apparently run a function in a higher stack frame"
SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-exporter perl-module-strict perl-module-vars"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-${PV}.tar.gz"
diff --git a/packages/perl/libtest-builder-tester-perl_1.01.bb b/packages/perl/libtest-builder-tester-perl_1.01.bb
index 1fd884cfff..0704506ac7 100644
--- a/packages/perl/libtest-builder-tester-perl_1.01.bb
+++ b/packages/perl/libtest-builder-tester-perl_1.01.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-strict perl-module-carp perl-module-exporter \
perl-module-symbol perl-module-vars"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKF/Test-Builder-Tester-${PV}.tar.gz"
diff --git a/packages/perl/libtest-differences-perl_0.47.bb b/packages/perl/libtest-differences-perl_0.47.bb
index a66a39182e..e76f35ff0d 100644
--- a/packages/perl/libtest-differences-perl_0.47.bb
+++ b/packages/perl/libtest-differences-perl_0.47.bb
@@ -4,7 +4,7 @@ LICENSE = "Artistic|GPL"
DEPENDS += "libtext-diff-perl-native"
RDEPENDS += "perl-module-carp perl-module-constant perl-module-exporter \
perl-module-strict libtext-diff-perl"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RB/RBS/Test-Differences-${PV}.tar.gz"
diff --git a/packages/perl/libtest-exception-perl_0.22.bb b/packages/perl/libtest-exception-perl_0.22.bb
index b095ea3e4a..021770b01a 100644
--- a/packages/perl/libtest-exception-perl_0.22.bb
+++ b/packages/perl/libtest-exception-perl_0.22.bb
@@ -5,7 +5,7 @@ DEPENDS += "libsub-uplevel-perl-native"
RDEPENDS += "perl-module-base perl-module-carp perl-module-strict \
libsub-uplevel-perl perl-module-test-builder \
perl-module-warnings"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/A/AD/ADIE/Test-Exception-${PV}.tar.gz"
diff --git a/packages/perl/libtest-mockmodule-perl_0.05.bb b/packages/perl/libtest-mockmodule-perl_0.05.bb
index e30a81cb18..422bd41ed0 100644
--- a/packages/perl/libtest-mockmodule-perl_0.05.bb
+++ b/packages/perl/libtest-mockmodule-perl_0.05.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
RDEPENDS += "perl-module-carp perl-module-scalar-util perl-module-strict \
perl-module-vars "
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SI/SIMONFLK/Test-MockModule-${PV}.tar.gz"
diff --git a/packages/perl/libtest-output-perl_0.10.bb b/packages/perl/libtest-output-perl_0.10.bb
index fb5bebdefe..3a2452ecfd 100644
--- a/packages/perl/libtest-output-perl_0.10.bb
+++ b/packages/perl/libtest-output-perl_0.10.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS += "libsub-exporter-perl-native"
RDEPENDS += "libsub-exporter-perl"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SS/SSORICHE/Test-Output-${PV}.tar.gz"
diff --git a/packages/perl/libtext-diff-perl_0.35.bb b/packages/perl/libtext-diff-perl_0.35.bb
index 126d091d8e..07dde46945 100644
--- a/packages/perl/libtext-diff-perl_0.35.bb
+++ b/packages/perl/libtext-diff-perl_0.35.bb
@@ -5,7 +5,7 @@ DEPENDS += "libalgorithm-diff-perl-native"
RDEPENDS += "libalgorithm-diff-perl perl-module-carp perl-module-constant \
perl-module-exporter perl-module-strict perl-module-carp \
perl-module-strict "
-PR = "r2"
+PR = "r3"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RB/RBS/Text-Diff-${PV}.tar.gz"
diff --git a/packages/perl/liburi-perl_1.35.bb b/packages/perl/liburi-perl_1.35.bb
index c62de2c0fa..23116aced9 100644
--- a/packages/perl/liburi-perl_1.35.bb
+++ b/packages/perl/liburi-perl_1.35.bb
@@ -2,6 +2,7 @@ DESCRIPTION = "Manipulates and accesses URI strings"
SECTION = "libs"
LICENSE = "Artistic|GPL"
#RDEPENDS += " libmime-base64-perl libnet-perl"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-${PV}.tar.gz"
diff --git a/packages/perl/libversion-perl_0.6701.bb b/packages/perl/libversion-perl_0.6701.bb
index 246a663d10..817824edec 100644
--- a/packages/perl/libversion-perl_0.6701.bb
+++ b/packages/perl/libversion-perl_0.6701.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "version - Perl extension for Version Objects"
SECTION = "libs"
LICENSE = "Artistic|GPL"
-PR = "r7"
+PR = "r8"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JP/JPEACOCK/version-${PV}.tar.gz"
diff --git a/packages/perl/libxml-parser-perl-native_2.34.bb b/packages/perl/libxml-parser-perl-native_2.34.bb
index 8932656171..193de60c80 100644
--- a/packages/perl/libxml-parser-perl-native_2.34.bb
+++ b/packages/perl/libxml-parser-perl-native_2.34.bb
@@ -3,6 +3,3 @@ SECTION = "libs"
inherit native
require libxml-parser-perl_${PV}.bb
-
-DEPENDS = "perl-native expat-native"
-EXTRA_CPANFLAGS += " EXPATINCPATH='${STAGING_INCDIR}' EXPATLIBPATH='${STAGING_LIBDIR}'"
diff --git a/packages/perl/libxml-parser-perl_2.34.bb b/packages/perl/libxml-parser-perl_2.34.bb
index 52adf2b2bf..46ce6512ca 100644
--- a/packages/perl/libxml-parser-perl_2.34.bb
+++ b/packages/perl/libxml-parser-perl_2.34.bb
@@ -1,7 +1,7 @@
SECTION = "libs"
LICENSE = "Artistic"
DEPENDS += "expat-native"
-PR = "r8"
+PR = "r10"
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
diff --git a/packages/perl/libyaml-perl_0.62.bb b/packages/perl/libyaml-perl_0.62.bb
index f8b75b10b7..f6398097b8 100644
--- a/packages/perl/libyaml-perl_0.62.bb
+++ b/packages/perl/libyaml-perl_0.62.bb
@@ -4,7 +4,7 @@ LICENSE = "Artistic|GPL"
DEPENDS = "libdigest-sha1-perl-native liberror-perl-native \
libipc-sharelite-perl-native"
RDEPENDS = "libdigest-sha1-perl liberror-perl libipc-sharelite-perl"
-PR = "r3"
+PR = "r4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IN/INGY/YAML-${PV}.tar.gz"
diff --git a/packages/perl/perl-5.8.8/native-makedepend-dash.patch b/packages/perl/perl-5.8.8/native-makedepend-dash.patch
new file mode 100644
index 0000000000..1f15474377
--- /dev/null
+++ b/packages/perl/perl-5.8.8/native-makedepend-dash.patch
@@ -0,0 +1,13 @@
+Index: perl-5.8.8/makedepend.SH
+===================================================================
+--- perl-5.8.8.orig/makedepend.SH 2007-05-24 12:06:52.000000000 +1000
++++ perl-5.8.8/makedepend.SH 2007-05-24 12:27:33.000000000 +1000
+@@ -128,7 +128,7 @@
+ *.y) filebase=`basename $file .y` ;;
+ esac
+ case "$file" in
+- */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;;
++ */*) finc="-I`echo $file | sed 's#/[^/]*$##'`" ;;
+ *) finc= ;;
+ esac
+ $echo "Finding dependencies for $filebase$_o."
diff --git a/packages/perl/perl-5.8.8/native-perlinc.patch b/packages/perl/perl-5.8.8/native-perlinc.patch
new file mode 100644
index 0000000000..aea38a0b56
--- /dev/null
+++ b/packages/perl/perl-5.8.8/native-perlinc.patch
@@ -0,0 +1,16 @@
+Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
+===================================================================
+--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2007-05-30 15:16:47.000000000 +1000
++++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2007-05-30 15:18:12.000000000 +1000
+@@ -1597,6 +1597,11 @@
+ $self->{PERL_LIB} ||= $Config{privlibexp};
+ $self->{PERL_ARCHLIB} ||= $Config{archlibexp};
+ $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
++ # Check for environment override so we'll find the headers in the correct place
++ if (defined $ENV{PERL_INC})
++ {
++ $self->{PERL_INC} = $ENV{PERL_INC};
++ }
+ my $perl_h;
+
+ if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
diff --git a/packages/perl/perl-native_5.8.8.bb b/packages/perl/perl-native_5.8.8.bb
index c9d9b51771..d4896daa12 100644
--- a/packages/perl/perl-native_5.8.8.bb
+++ b/packages/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r7"
+PR = "r10"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
@@ -12,7 +12,9 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://Configure-multilib.patch;patch=1 \
file://perl-configpm-switch.patch;patch=1 \
file://native-nopacklist.patch;patch=1 \
- file://native-no-gdbminc.patch;patch=1"
+ file://native-no-gdbminc.patch;patch=1 \
+ file://native-perlinc.patch;patch=1 \
+ file://native-makedepend-dash.patch;patch=1"
S = "${WORKDIR}/perl-${PV}"
@@ -26,7 +28,16 @@ do_configure () {
-Dcf_by="Open Embedded" \
-Dprefix=${prefix} \
-Dvendorprefix=${prefix} \
- -Dsiteprefix=${prefix}/local \
+ -Dvendorprefix=${prefix} \
+ -Dsiteprefix=${prefix} \
+ \
+ -Dprivlib=${STAGING_LIBDIR}/perl/${PV} \
+ -Darchlib=${STAGING_LIBDIR}/perl/${PV} \
+ -Dvendorlib=${STAGING_LIBDIR}/perl/${PV} \
+ -Dvendorarch=${STAGING_LIBDIR}/perl/${PV} \
+ -Dsitelib=${STAGING_LIBDIR}/perl/${PV} \
+ -Dsitearch=${STAGING_LIBDIR}/perl/${PV} \
+ \
-Duseshrplib \
-Dusethreads \
-Duseithreads \
@@ -50,6 +61,9 @@ do_configure () {
do_stage_append() {
# We need a hostperl link for building perl
ln -sf ${STAGING_BINDIR_NATIVE}/perl${PV} ${STAGING_BINDIR_NATIVE}/hostperl
+ # Store native config in non-versioned directory
+ install -d ${STAGING_DIR}/${HOST_SYS}/perl
+ install config.sh ${STAGING_DIR}/${HOST_SYS}/perl
}
PARALLEL_MAKE = ""
diff --git a/packages/perl/perl_5.8.8.bb b/packages/perl/perl_5.8.8.bb
index 3dfe17cad8..d603c9d67d 100644
--- a/packages/perl/perl_5.8.8.bb
+++ b/packages/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPL"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r17"
+PR = "r19"
# Major part of version
PVM = "5.8"
@@ -37,7 +37,7 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
HOSTPERL = "${STAGING_BINDIR_NATIVE}/perl${PV}"
# Where to find .so files - use the -native versions not those from the target build
-export PERLHOSTLIB = "${STAGING_DIR}/${BUILD_SYS}/lib/perl5/${PV}/${BUILD_ARCH}-${BUILD_OS}-thread-multi/"
+export PERLHOSTLIB = "${STAGING_DIR}/${BUILD_SYS}/lib/perl/${PV}/"
do_configure() {
# Make hostperl in build directory be the native perl
@@ -58,10 +58,15 @@ do_configure() {
# Fixups for uclibc
if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
sed -i -e "s,\(d_crypt_r=\)'define',\1'undef',g" \
+ -e "s,\(crypt_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
+ -e "s,\(getnetbyname_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetbyaddr_r=\)'define',\1'undef',g" \
+ -e "s,\(getnetbyaddr_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_getnetent_r=\)'define',\1'undef',g" \
+ -e "s,\(getnetent_r_proto=\)'\w+',\1'0',g" \
-e "s,\(d_sockatmark=\)'define',\1'undef',g" \
+ -e "s,\(d_sockatmarkproto=\)'\w+',\1'0',g" \
config.sh-${TARGET_ARCH}-${TARGET_OS}
fi
@@ -121,9 +126,25 @@ do_install() {
fi
}
do_stage() {
- install -d ${STAGING_DIR}/${HOST_SYS}/perl/
+ install -d ${STAGING_DIR}/${HOST_SYS}/perl \
+ ${STAGING_DIR}/${BUILD_SYS}/lib/perl/${PV} \
+ ${STAGING_LIBDIR}/perl/${PV}/CORE
+ # target config, used by cpan.bbclass to extract version information
install config.sh ${STAGING_DIR}/${HOST_SYS}/perl/
- install lib/Config_heavy.pl ${STAGING_DIR}/${BUILD_SYS}/lib/perl5/${PV}/Config_heavy-target.pl
+ # target configuration, used by native perl when cross-compiling
+ install lib/Config_heavy.pl ${STAGING_DIR}/${BUILD_SYS}/lib/perl/${PV}/Config_heavy-target.pl
+ # perl shared library headers
+ for i in av.h embed.h gv.h keywords.h op.h perlio.h pp.h regexp.h \
+ uconfig.h XSUB.h cc_runtime.h embedvar.h handy.h opnames.h \
+ perliol.h pp_proto.h regnodes.h unixish.h config.h EXTERN.h \
+ hv.h malloc_ctl.h pad.h perlsdio.h proto.h scope.h utf8.h \
+ cop.h fakesdio.h INTERN.h mg.h patchlevel.h perlsfio.h \
+ reentr.h sv.h utfebcdic.h cv.h fakethr.h intrpvar.h \
+ nostdio.h perlapi.h perlvars.h reentr.inc thrdvar.h util.h \
+ dosish.h form.h iperlsys.h opcode.h perl.h perly.h regcomp.h \
+ thread.h warnings.h; do
+ install $i ${STAGING_LIBDIR}/perl/${PV}/CORE
+ done
}
PACKAGES = "perl-dbg perl perl-misc perl-lib perl-dev perl-pod perl-doc"
diff --git a/packages/sdlperl/sdl-perl_1.20.3.bb b/packages/sdlperl/sdl-perl_1.20.3.bb
index 80bd899dfc..6820fa05ce 100644
--- a/packages/sdlperl/sdl-perl_1.20.3.bb
+++ b/packages/sdlperl/sdl-perl_1.20.3.bb
@@ -1,40 +1,18 @@
DESCRIPTION = "Perl bindings for SDL"
-HOMEPAGE = "http://bloodgate.com/perl"
SECTION = "libs"
+HOMEPAGE = "http://sdl.perl.org/"
LICENSE = "GPL"
DEPENDS = "perl virtual/libsdl libsdl-image libsdl-gfx libsdl-ttf libsdl-mixer libsdl-net smpeg"
+PR = "r1"
-SRC_URI = "http://bloodgate.com/perl/sdl/pub/SDL_perl-${PV}.tar.gz \
- file://Makefile.patch;patch=1;pnum=0"
+SRC_URI = "http://bloodgate.com/perl/sdl/pub/SDL_perl-${PV}.tar.gz"
S = "${WORKDIR}/SDL_perl-${PV}"
-do_configure () {
- if [ -x ${S}/configure ] ; then
- cfgcmd="${S}/configure \
- -GL -GLU"
- oenote "Running $cfgcmd..."
- $cfgcmd || oefatal "oe_runconf failed"
- if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
- . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
- sed -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:; s:\(SITEARCHEXP = \).*:\1${sitearchexp}:; s:\(INSTALLVENDORLIB = \).*:\1${D}${libdir}/perl5:; s:\(INSTALLVENDORARCH = \).*:\1${D}${libdir}/perl5:" < Makefile > Makefile.new
- mv Makefile.new Makefile
- fi
- else
- oefatal "no configure script found"
- fi
-}
-
-do_stage () {
- install -d ${STAGING_LIBDIR}/perl5/vendor_perl
- install -m 0644 ${S}/lib/SDL.pm ${STAGING_LIBDIR}/perl5/vendor_perl
-}
+inherit cpan
-do_compile () {
- oe_runmake PASTHRU_INC="${CFLAGS}"
+do_configure_prepend() {
+ # Search staging area for includes
+ sed -i -e 's:/usr/\(local/\)\{0,1\}include:${STAGING_INCDIR}:g' Makefile.linux
+ # smpeg.h isn't in a subdirectry
+ sed -i -e 's:#include <smpeg/smpeg.h>:#include <smpeg.h>:g' SDL_perl.xs
}
-
-do_install () {
- oe_runmake install_vendor
-}
-
-FILES_${PN} += '${libdir}/perl5'
diff --git a/packages/telepathy/empathy-0.5/.mtn2git_empty b/packages/telepathy/empathy-0.5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/telepathy/empathy-0.5/.mtn2git_empty
diff --git a/packages/telepathy/empathy-0.5/no-gnome.diff b/packages/telepathy/empathy-0.5/no-gnome.diff
new file mode 100644
index 0000000000..29d6276f51
--- /dev/null
+++ b/packages/telepathy/empathy-0.5/no-gnome.diff
@@ -0,0 +1,146 @@
+Index: libempathy-gtk/gossip-ui-utils.c
+===================================================================
+--- libempathy-gtk/gossip-ui-utils.c (revision 99)
++++ libempathy-gtk/gossip-ui-utils.c (working copy)
+@@ -33,7 +33,7 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ #include <glade/glade.h>
+-#include <libgnome/libgnome.h>
++#include <libgnomevfs/gnome-vfs-utils.h>
+
+ #include <libmissioncontrol/mc-profile.h>
+
+@@ -1280,13 +1280,14 @@
+ gossip_url_show (const char *url)
+ {
+ gchar *real_url;
+- GError *error = NULL;
++ GnomeVFSResult res;
+
+ real_url = fixup_url (url);
+- gnome_url_show (real_url, &error);
+- if (error) {
+- g_warning ("Couldn't show URL:'%s'", real_url);
+- g_error_free (error);
++ res = gnome_vfs_url_show (real_url);
++ if (res != GNOME_VFS_OK) {
++ g_warning ("Couldn't show URL %s: %s",
++ real_url,
++ gnome_vfs_result_to_string (res));
+ }
+
+ g_free (real_url);
+Index: src/empathy-chat-main.c
+===================================================================
+--- src/empathy-chat-main.c (revision 99)
++++ src/empathy-chat-main.c (working copy)
+@@ -28,9 +28,6 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+
+-#include <libgnome/gnome-program.h>
+-#include <libgnomeui/gnome-ui-init.h>
+-
+ #include <libtelepathy/tp-conn.h>
+ #include <libtelepathy/tp-chan.h>
+ #include <libmissioncontrol/mc-account.h>
+@@ -162,7 +159,6 @@
+ main (int argc, char *argv[])
+ {
+ EmpathyChandler *chandler;
+- GnomeProgram *program;
+ gchar *localedir;
+
+ localedir = gossip_paths_get_locale_path ();
+@@ -171,14 +167,8 @@
+ textdomain (GETTEXT_PACKAGE);
+ g_free (localedir);
+
+- program = gnome_program_init ("empathy-chat",
+- PACKAGE_VERSION,
+- LIBGNOMEUI_MODULE,
+- argc, argv,
+- GNOME_PROGRAM_STANDARD_PROPERTIES,
+- GNOME_PARAM_HUMAN_READABLE_NAME, PACKAGE_NAME,
+- NULL);
+-
++ gtk_init (&argc, &argv);
++
+ gtk_window_set_default_icon_name ("empathy");
+
+ if (g_getenv ("EMPATHY_DEBUG")) {
+@@ -194,7 +184,6 @@
+
+ gtk_main ();
+
+- g_object_unref (program);
+ g_object_unref (chandler);
+
+ return EXIT_SUCCESS;
+Index: src/empathy-main.c
+===================================================================
+--- src/empathy-main.c (revision 99)
++++ src/empathy-main.c (working copy)
+@@ -28,9 +28,6 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+
+-#include <libgnome/gnome-program.h>
+-#include <libgnomeui/gnome-ui-init.h>
+-
+ #include <libmissioncontrol/mc-account.h>
+ #include <libmissioncontrol/mc-account-monitor.h>
+ #include <libmissioncontrol/mission-control.h>
+@@ -136,7 +133,6 @@
+ McAccountMonitor *monitor;
+ EmpathyFilter *filter;
+ gchar *localedir;
+- GnomeProgram *program;
+ gboolean no_connect = FALSE;
+ GOptionContext *context;
+ GOptionEntry options[] = {
+@@ -157,14 +153,8 @@
+
+ g_set_application_name (PACKAGE_NAME);
+
+- program = gnome_program_init ("empathy",
+- PACKAGE_VERSION,
+- LIBGNOMEUI_MODULE,
+- argc, argv,
+- GNOME_PROGRAM_STANDARD_PROPERTIES,
+- "goption-context", context,
+- GNOME_PARAM_HUMAN_READABLE_NAME, PACKAGE_NAME,
+- NULL);
++ gtk_init (&argc, &argv);
++ /* TODO: option parsing */
+
+ gtk_window_set_default_icon_name ("empathy");
+
+@@ -204,7 +194,6 @@
+ g_object_unref (monitor);
+ g_object_unref (mc);
+ g_object_unref (icon);
+- g_object_unref (program);
+
+ return EXIT_SUCCESS;
+ }
+Index: configure.ac
+===================================================================
+--- configure.ac (revision 99)
++++ configure.ac (working copy)
+@@ -62,12 +62,13 @@
+
+ PKG_CHECK_MODULES(EMPATHY,
+ [
++ libxml-2.0
+ glib-2.0 >= $GLIB_REQUIRED
+ gobject-2.0
+ gtk+-2.0 >= $GTK_REQUIRED
+ gconf-2.0 >= $GCONF_REQUIRED
+ libglade-2.0 >= $LIBGLADE_REQUIRED
+- libgnomeui-2.0
++ gnome-vfs-2.0
+ libtelepathy >= $TELEPATHY_REQUIRED
+ libmissioncontrol >= $MISSION_CONTROL_REQUIRED
+ ])
diff --git a/packages/telepathy/empathy_0.5.bb b/packages/telepathy/empathy_0.5.bb
index 39cccfbdf0..e7b2af1d57 100644
--- a/packages/telepathy/empathy_0.5.bb
+++ b/packages/telepathy/empathy_0.5.bb
@@ -1,16 +1,16 @@
DESCRIPTION = "Empathy: a Telepathy based IM client"
HOMEPAGE = "http://blogs.gnome.org/view/xclaesse/2007/04/26/0"
LICENSE = "GPL"
-DEPENDS = "libgnomeui telepathy-mission-control libtelepathy gtk+ gconf libglade"
+DEPENDS = "telepathy-mission-control libtelepathy gtk+ gconf libglade gnome-vfs"
RDEPENDS = "telepathy-mission-control"
RRECOMMENDS = "telepathy-gabble"
-PR="r0"
+PR="r1"
inherit gnome
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/empathy/0.5/empathy-${PV}.tar.bz2 \
- "
+ file://no-gnome.diff;patch=1;pnum=0"
FILES_${PN} += "${datadir}/mission-control/profiles/*.profile \
${datadir}/dbus-1/services/*.service \
diff --git a/packages/tree/.mtn2git_empty b/packages/tree/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/tree/.mtn2git_empty
diff --git a/packages/tree/tree_1.5.1.bb b/packages/tree/tree_1.5.1.bb
new file mode 100644
index 0000000000..8bca919b22
--- /dev/null
+++ b/packages/tree/tree_1.5.1.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "a recursive directory listing program"
+HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
+SECTION = "console/utils"
+LICENSE = "GPL"
+
+SRC_URI = "ftp://mama.indstate.edu/linux/tree/tree-${PV}.tgz"
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/tree ${D}${bindir}/tree
+}
diff --git a/packages/uclibc/uclibc-0.9.28/avr32/.mtn2git_empty b/packages/uclibc/uclibc-0.9.28/avr32/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/avr32/.mtn2git_empty
diff --git a/packages/uclibc/uclibc-0.9.28/avr32/uClibc.config b/packages/uclibc/uclibc-0.9.28/avr32/uClibc.config
new file mode 100644
index 0000000000..0d348c7fb2
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/avr32/uClibc.config
@@ -0,0 +1,177 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+TARGET_avr32=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+TARGET_ARCH="avr32"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+UCLIBC_COMPLETELY_PIC=y
+CONFIG_AP7000=y
+LINKRELAX=y
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_SOURCE="/usr/src/linux"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+FORCE_SHAREABLE_TEXT_SEGMENTS=y
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+LDSO_RUNPATH=y
+# DL_FINI_CRT_COMPAT is not set
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+# PTHREADS_DEBUG_SUPPORT is not set
+UCLIBC_HAS_LFS=y
+UCLIBC_STATIC_LDCONFIG=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+# UCLIBC_HAS_IPV6 is not set
+# UCLIBC_HAS_RPC is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+# UCLIBC_HAS_WCHAR is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+# UCLIBC_HAS_PRINTF_M_SPEC is not set
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/usr/"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+WARNINGS="-Wall"
+# UCLIBC_MJN3_ONLY is not set
diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb
index 4cc39fcd07..2c557ec606 100644
--- a/packages/uclibc/uclibc_0.9.28.bb
+++ b/packages/uclibc/uclibc_0.9.28.bb
@@ -22,20 +22,31 @@ S = "${WORKDIR}/uClibc-${PV}"
#SRC_URI += "file://nokernelheadercheck.patch;patch=1"
#
# Thumb support
-SRC_URI += " file://thumb-defined-arm-or-thumb.patch;patch=1"
#
# Thumb interworking support
-SRC_URI += " file://thumb-mov-pc-bx.patch;patch=1"
-SRC_URI += " file://thumb-swi-r7.patch;patch=1"
-SRC_URI += " file://thumb-sysnum-h.patch;patch=1"
-SRC_URI += " file://thumb-asm-swi.patch;patch=1"
-SRC_URI += " file://thumb-call-via-rx.patch;patch=1"
-SRC_URI += " file://dl-startup.h.patch;patch=1"
-SRC_URI += " file://dl-string.h.patch;patch=1"
-SRC_URI += " file://dl-sysdep.h.patch;patch=1"
+THUMBSTUFF = " \
+ file://thumb-defined-arm-or-thumb.patch;patch=1 \
+ file://thumb-mov-pc-bx.patch;patch=1 \
+ file://thumb-swi-r7.patch;patch=1 \
+ file://thumb-sysnum-h.patch;patch=1 \
+ file://thumb-asm-swi.patch;patch=1 \
+ file://thumb-call-via-rx.patch;patch=1 \
+ file://dl-startup.h.patch;patch=1 \
+ file://dl-string.h.patch;patch=1 \
+ file://dl-sysdep.h.patch;patch=1 \
+ "
+
+SRC_URI_append_arm = " ${THUMBSTUFF} "
+
#
# This is a core change and is controversial, maybe even wrong
# on some architectures
THUMB_INTERWORK_RESOLVE_PATCH = ""
THUMB_INTERWORK_RESOLVE_PATCH_thumb-interwork = " file://thumb-resolve.patch;patch=1"
SRC_URI += " ${THUMB_INTERWORK_RESOLVE_PATCH}"
+
+
+DEFAULT_PREFERENCE_avr32 = "6000"
+SRC_URI_append_avr32 = " http://avr32linux.org/twiki/pub/Main/MicroClibcPatches/uClibc-0.9.28-avr1.patch.bz2;patch=1 "
+
+
diff --git a/packages/webkit/webkit_svn.bb b/packages/webkit/webkit_svn.bb
index 7e221f4113..433afb52d2 100644
--- a/packages/webkit/webkit_svn.bb
+++ b/packages/webkit/webkit_svn.bb
@@ -1,9 +1,10 @@
-DEPENDS = "flex-native icu uicmoc4-native qmake2-native libxml2 sqlite3 cairo gtk+"
+DEPENDS = "flex-native gperf-native gperf perl-native curl icu uicmoc4-native qmake2-native libxml2 sqlite3 cairo libxslt libidn gnutls gtk+"
# Yes, this is wrong...
PV = "0.0+svn${SRCDATE}"
+PR = "r1"
-inherit qmake
+inherit qmake pkgconfig
SRC_URI = "\
svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptCore;proto=http \
@@ -22,14 +23,32 @@ SRC_URI = "\
S = "${WORKDIR}/"
-do_configure() {
- qmake2 CONFIG+=gdk-port CONFIG-=qt CONFIG-=release CONFIG+=debug
+do_configure_append() {
+ qmake2 -spec ${QMAKESPEC} CONFIG+=gdk-port CONFIG-=qt CONFIG-=release CONFIG+=debug
mkdir -p WebKitBuilds/Debug
cd WebKitBuilds/Debug
- PWD=`pwd` qmake2 -r OUTPUT_DIR=$PWD/ CONFIG-=qt CONFIG+=gdk-port $PWD/../../WebKit.pro
+ PWD=`pwd` qmake2 -spec ${QMAKESPEC} -r OUTPUT_DIR=$PWD/ CONFIG-=qt CONFIG+=gdk-port $PWD/../../WebKit.pro
}
-do_compile() {
+do_compile_prepend() {
cd ${S}/WebKitBuilds/Debug
- oe_runmake
}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${libdir}
+ install -d ${D}${libdir}/pkgconfig
+
+ install -m 0755 ${S}/WebKitBuilds/Debug/WebKitTools/GdkLauncher/GdkLauncher ${D}${bindir}
+ cp -pPR WebKitBuilds/Debug/lib/*.so* ${D}${libdir}
+ cp -pPR WebKitBuilds/Debug/lib/*.pc ${D}${libdir}/pkgconfig/
+}
+
+
+PACKAGES =+ "webkit-gdklauncher-dbg webkit-gdklauncher"
+
+FILES_webkit-gdklauncher = "${bindir}/GdkLauncher"
+FILES_webkit-gdklauncher-dbg = "${bindir}/.debug/GdkLauncher"
+
+
+
diff --git a/packages/xorg-app/xrandr/.mtn2git_empty b/packages/xorg-app/xrandr/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-app/xrandr/.mtn2git_empty
diff --git a/packages/xorg-app/xrandr/resolve_symbol_clash.patch b/packages/xorg-app/xrandr/resolve_symbol_clash.patch
new file mode 100644
index 0000000000..80d8960c94
--- /dev/null
+++ b/packages/xorg-app/xrandr/resolve_symbol_clash.patch
@@ -0,0 +1,35 @@
+---
+ xrandr.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: xrandr-1.2.0/xrandr.c
+===================================================================
+--- xrandr-1.2.0.orig/xrandr.c 2007-02-19 05:26:50.000000000 +0000
++++ xrandr-1.2.0/xrandr.c 2007-05-28 19:22:30.000000000 +0100
+@@ -163,7 +163,7 @@ reflection_name (Rotation rotation)
+
+ #if HAS_RANDR_1_2
+ typedef enum _policy {
+- clone, extend
++ policy_clone, extend
+ } policy_t;
+
+ typedef enum _relation {
+@@ -1398,7 +1398,7 @@ main (int argc, char **argv)
+ #if HAS_RANDR_1_2
+ output_t *output = NULL;
+ char *crtc;
+- policy_t policy = clone;
++ policy_t policy = policy_clone;
+ Bool setit_1_2 = False;
+ Bool query_1_2 = False;
+ Bool query_1 = False;
+@@ -1634,7 +1634,7 @@ main (int argc, char **argv)
+ continue;
+ }
+ if (!strcmp ("--clone", argv[i])) {
+- policy = clone;
++ policy = policy_clone;
+ setit_1_2 = True;
+ continue;
+ }
diff --git a/packages/xorg-app/xrandr_1.2.0.bb b/packages/xorg-app/xrandr_1.2.0.bb
index 57bd51fd65..f876ba6b47 100644
--- a/packages/xorg-app/xrandr_1.2.0.bb
+++ b/packages/xorg-app/xrandr_1.2.0.bb
@@ -5,4 +5,6 @@ LICENSE= "BSD-X"
DEPENDS += " libxrandr libxrender virtual/libx11"
PE = "1"
+PR = "r1"
+SRC_URI += "file://resolve_symbol_clash.patch;patch=1" \ No newline at end of file
diff --git a/packages/xqt2/xqt2_20060509.bb b/packages/xqt2/xqt2_20060509.bb
index 7f49cccb17..f1c839da86 100644
--- a/packages/xqt2/xqt2_20060509.bb
+++ b/packages/xqt2/xqt2_20060509.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL"
SECTION = "opie/applications"
APPTYPE = "binary"
APPNAME = "Xqt"
-PR = "r0"
+PR = "r1"
inherit palmtop
@@ -100,8 +100,8 @@ do_install() {
oe_runmake -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" \
CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
- install -d ${D}${palmtopdir}/Apps/applications/
- install -m 0644 ${WORKDIR}/xqt2/xfree86/files/Xqt.desktop ${D}${palmtopdir}/Apps/applications
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/xqt2/xfree86/files/Xqt.desktop ${D}${palmtopdir}/apps/Applications
install -d ${D}${palmtopdir}/bin/
install -m 0755 ${D}${bindir}/Xqt ${D}${palmtopdir}/bin/Xqt
install -d ${D}${palmtopdir}/pics
diff --git a/packages/xserver-common/files/Xserver-udev-input-helper.patch b/packages/xserver-common/files/Xserver-udev-input-helper.patch
new file mode 100644
index 0000000000..b4adc9ab96
--- /dev/null
+++ b/packages/xserver-common/files/Xserver-udev-input-helper.patch
@@ -0,0 +1,11 @@
+--- xserver-common-1.8/X11/Xserver.orig 2006-05-07 17:40:10.540539080 +0200
++++ xserver-common-1.8/X11/Xserver 2006-05-07 17:40:35.187792128 +0200
+@@ -27,7 +27,7 @@
+
+ export USER=root
+
+-ARGS="-br -pn"
++ARGS="-br -pn $INPUT_EXTRA_ARGS"
+
+ # use ucb 1x00 touchscreen if present
+ if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/touchscreen/ucb1x00 ]; then
diff --git a/packages/xserver-common/files/at-fix-slcxxxx.patch b/packages/xserver-common/files/at-fix-slcxxxx.patch
new file mode 100644
index 0000000000..cc2af5a245
--- /dev/null
+++ b/packages/xserver-common/files/at-fix-slcxxxx.patch
@@ -0,0 +1,8 @@
+--- xserver-common-1.8/X11/slcXXXX.xmodmap.orig 2006-05-07 14:22:14.500971520 +0200
++++ xserver-common-1.8/X11/slcXXXX.xmodmap 2006-05-07 14:22:28.955774056 +0200
+@@ -10,3 +10,5 @@
+ keycode 80 = F28
+ keycode 81 = F29
+ keycode 86 = F30
++
++keycode 20 = minus at at
diff --git a/packages/xserver-common/files/load-xmodmap-k26.patch b/packages/xserver-common/files/load-xmodmap-k26.patch
new file mode 100644
index 0000000000..bc5a20bb6f
--- /dev/null
+++ b/packages/xserver-common/files/load-xmodmap-k26.patch
@@ -0,0 +1,23 @@
+--- xserver-common-1.8/X11/Xinit.d/12keymap.orig 2006-04-14 22:57:16.200518376 +0200
++++ xserver-common-1.8/X11/Xinit.d/12keymap 2006-04-14 23:01:46.938359968 +0200
+@@ -4,18 +4,10 @@
+
+ case $MACHINE in
+ "SHARP Shepherd" | "SHARP Husky" | "SHARP Corgi")
+- case `uname -r` in
+- 2.4*)
+- xmodmap - < /etc/X11/shepherd.xmodmap
+- ;;
+- esac
++ xmodmap - < /etc/X11/shepherd.xmodmap
+ ;;
+ "SHARP Akita" | "SHARP Borzoi" | "SHARP Spitz")
+- case `uname -r` in
+- 2.4*)
+- xmodmap - < /etc/X11/slcXXXX.xmodmap
+- ;;
+- esac
++ xmodmap - < /etc/X11/slcXXXX.xmodmap
+ ;;
+ "Sharp-Collie")
+ xmodmap - < /etc/X11/collie.xmodmap
diff --git a/packages/xserver-common/files/softkeys-c7x0.patch b/packages/xserver-common/files/softkeys-c7x0.patch
new file mode 100644
index 0000000000..6ef2d9fb59
--- /dev/null
+++ b/packages/xserver-common/files/softkeys-c7x0.patch
@@ -0,0 +1,52 @@
+--- xserver-common-1.8/X11/shepherd.xmodmap.orig 2006-04-15 13:10:03.845853928 +0200
++++ xserver-common-1.8/X11/shepherd.xmodmap 2006-04-15 13:11:14.996037456 +0200
+@@ -1,49 +0,0 @@
+-keycode 38 = Mode_switch
+-keycode 31 = w W caret
+-keycode 13 = e E equal
+-keycode 26 = r R plus
+-keycode 28 = t T bracketleft
+-keycode 33 = y y bracketright
+-keycode 29 = u U braceleft
+-keycode 17 = i I braceright
+-!keycode 73 = Tab Tab Caps_Lock
+-keycode 12 = d D periodcentered
+-keycode 14 = f F backslash
+-keycode 15 = g G semicolon
+-keycode 16 = h H colon
+-keycode 18 = j J asterisk
+-keycode 19 = k K currency
+-keycode 20 = l L bar
+-keycode 10 = b B underscore
+-keycode 66 = minus minus at
+-keycode 71 = comma slash less
+-keycode 72 = period question greater
+-
+-! Side keys
+-keycode 134 = Down
+-keycode 133 = Up
+-keycode 131 = Return
+-keycode 132 = Escape
+-
+-!Special keys
+-!keycode 96 = XF86Calendar
+-!keycode 97 = telephone
+-!keycode 98 = XF86Mail
+-!keycode 48 = XF86HomePage
+-!keycode 37 = XF86Start
+-
+-clear Shift
+-clear Lock
+-clear Control
+-clear Mod1
+-clear Mod2
+-clear Mod3
+-clear Mod4
+-clear Mod5
+-
+-add Shift = Shift_L Shift_R
+-!add Lock = Caps_Lock
+-add Control = Control_L Control_R
+-add Mod1 = Alt_L Alt_R
+-add Mod2 = Mode_switch
+-
diff --git a/packages/xserver-common/files/softkeys-slcxxxx-xmodmap.patch b/packages/xserver-common/files/softkeys-slcxxxx-xmodmap.patch
new file mode 100644
index 0000000000..2f029e5352
--- /dev/null
+++ b/packages/xserver-common/files/softkeys-slcxxxx-xmodmap.patch
@@ -0,0 +1,20 @@
+--- xserver-common-1.8/X11/slcXXXX.xmodmap.orig 2006-04-15 13:03:51.471463440 +0200
++++ xserver-common-1.8/X11/slcXXXX.xmodmap 2006-04-15 13:05:04.576349808 +0200
+@@ -1,5 +1,12 @@
+-keycode 88 = XF86Calendar
+-keycode 89 = telephone
+-keycode 40 = XF86Start
+-keycode 90 = XF86Mail
+-
++
++keycode 90 = F20
++keycode 87 = F21
++keycode 88 = F22
++keycode 89 = F23
++keycode 83 = F24
++keycode 84 = F25
++keycode 85 = F26
++keycode 79 = F27
++keycode 80 = F28
++keycode 81 = F29
++keycode 86 = F30
diff --git a/packages/xserver-common/xserver-common_1.16.bb b/packages/xserver-common/xserver-common_1.16.bb
index 48320ba006..388f477606 100644
--- a/packages/xserver-common/xserver-common_1.16.bb
+++ b/packages/xserver-common/xserver-common_1.16.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files"
LICENSE = "GPL"
SECTION = "x11"
RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
-PR = "r2"
+PR = "r4"
PACKAGE_ARCH = "all"
@@ -11,7 +11,13 @@ inherit gpe
SRC_URI_append = " file://setDPI.sh \
file://xserver-imageon.patch;patch=1 \
- file://calibrate-only-if-ts.patch;patch=1"
+ file://calibrate-only-if-ts.patch;patch=1 \
+ file://softkeys-slcxxxx-xmodmap.patch;patch=1 \
+ file://softkeys-c7x0.patch;patch=1 \
+ file://at-fix-slcxxxx.patch;patch=1 \
+ file://load-xmodmap-k26.patch;patch=1 \
+ file://Xserver-udev-input-helper.patch;patch=1 \
+ "
do_install_append() {
install -m 0755 "${WORKDIR}/setDPI.sh" "${D}/etc/X11/Xinit.d/50setdpi"
diff --git a/packages/xserver-common/xserver-common_svn.bb b/packages/xserver-common/xserver-common_svn.bb
index e272ac1a87..bf5b70a84f 100644
--- a/packages/xserver-common/xserver-common_svn.bb
+++ b/packages/xserver-common/xserver-common_svn.bb
@@ -6,8 +6,16 @@ DEPENDS = "xmodmap xrandr xdpyinfo xtscal"
PV = "1.12+svn${SRCDATE}"
S = "${WORKDIR}/xserver-common"
+PR = "r1"
+
SRC_URI = "${GPE_SVN} \
file://Makefile.translation \
file://Makefile.dpkg_ipkg \
file://svn_makefiles.patch;patch=1 \
- file://keyboardless-buttonmap.patch;patch=1"
+ file://keyboardless-buttonmap.patch;patch=1 \
+ file://softkeys-slcxxxx-xmodmap.patch;patch=1 \
+ file://softkeys-c7x0.patch;patch=1 \
+ file://at-fix-slcxxxx.patch;patch=1 \
+ file://load-xmodmap-k26.patch;patch=1 \
+ file://Xserver-udev-input-helper.patch;patch=1"
+