diff options
Diffstat (limited to 'packages')
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" + |